Générer dynamiquement de nombreux fichiers de configuration embulk (ci-après embulk config) Et je pense qu'il y a des cas occasionnels où vous voulez faire cela.
Pour embulk, veuillez vous référer à la page suivante. http://qiita.com/hiroysato/items/397f36c4838a0a93e352 http://qiita.com/hiroysato/items/da45e52fb79c39547f69
Quand Jupyter peut générer et exécuter le fichier de configuration embulk Il est pratique de procéder par essais et erreurs. Je pense que l'efficacité de la création de la configuration d'embulk augmentera également.
f=open('[file name]','w')
setting = '''in:\n\
type: gcs\n\
bucket: xxxx\n\
path_prefix: aaa/bbb/ccc_\n\
auth_method: private_key\n\
service_account_email: {{ env.SERVICE_ACCOUNT_EMAIL }}\n\
p12_keyfile: ../key/{{ env.P12_FILENAME }}\n\
application_name: zzz\n\
tasks: 1\n\
parser:\n\
charset: UTF-8\n\
newline: LF\n\
header_line: true\n\
type: csv \n\
delimiter: \',\' \n\
quote: \'\"\' \n\
columns: \n\
- {name: name, type: string}\n\
- {name: title, type: string}\n\
- {name: words, type: string}\n\
\n
out: \n\
type: file \n\
path_prefix: tmp \n\
file_ext: txt \n\
formatter: \n\
type: csv \n\
charset: UTF-8 \n\
delimiter: \'\\\' \n\
header_line: false \n\
newline: LF'''
f.write(setting)
f.close()
Je suis désolé qu'il n'y ait rien de spécial à ce sujet, Écrivez simplement le contenu de la configuration d'embulk dans le fichier. Pour les sauts de ligne, attachez "\ n " pour rendre la configuration d'embulk de sortie plus facile à voir.
os.system('embulk run [file name]')
Faites-le, en faisant attention au chemin.
Si vous souhaitez migrer de nombreuses tables ou si vous souhaitez séparer les fichiers pour chaque type de données, Il est pratique à utiliser. Lorsqu'il devient possible de créer dynamiquement de nombreuses configurations d'embulk en utilisant des instructions for, etc. Il devient difficile de créer manuellement la configuration d'embulk une par une.
Générer et exécuter un fichier selon le produit des catégories 1 à 5
for a in [1, 2, 3, 4, 5]:
for b in [1, 2, 3, 4, 5]:
filename = a + '-' + b '_xxx.yml.liquid'
f.open(filename,'w')
setting = '''in:\n\
[embulk setting]
'''
f.write(setting)
f.close()
os.system('embulk run ' + filename)
Avoir embulk in, out, filter, etc. en tant que chaînes de caractères séparées Ce sera plus pratique si vous générez la configuration embulk en les combinant.
Fichiers Jupyter runipy Vous pouvez également exécuter par lots en utilisant Il était également facile d'exécuter périodiquement le processus terminé après essais et erreurs.
Je pense que le contenu décrit cette fois ne peut se faire que sans Jupyter, Générez et exécutez la configuration d'embulk à partir du dernier Jupyter, Il était facile d'utiliser d'autres traitements connexes avec Jupyter. Je l'ai répertorié ici.
Recommended Posts