Generieren Sie dynamisch viele Embulk-Konfigurationsdateien (im Folgenden Embulk-Konfiguration). Und ich denke, es gibt gelegentliche Fälle, in denen Sie das tun möchten.
Informationen zum Einbetten finden Sie auf der folgenden Seite. http://qiita.com/hiroysato/items/397f36c4838a0a93e352 http://qiita.com/hiroysato/items/da45e52fb79c39547f69
Wenn Jupyter eine Embulk-Konfigurationsdatei generieren und ausführen kann Es ist bequem, durch Versuch und Irrtum fortzufahren. Ich denke, dass die Effizienz beim Erstellen von Embulk-Konfigurationen ebenfalls steigen wird.
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()
Es tut mir leid, dass daran nichts Besonderes ist, Schreiben Sie einfach den Inhalt der Embulk-Konfiguration in die Datei. Fügen Sie bei Zeilenumbrüchen "\ n " hinzu, damit die Ausgabe-Embulk-Konfiguration besser sichtbar ist.
os.system('embulk run [file name]')
Mach es und achte auf den Weg.
Wenn Sie viele Tabellen haben, die Sie migrieren möchten, oder wenn Sie Dateien für jeden Datentyp trennen möchten, Es ist bequem zu bedienen. Wenn es möglich wird, viele Embulk-Konfigurationen mithilfe von for-Anweisungen usw. dynamisch zu erstellen. Es wird schwierig, die Embulk-Konfiguration einzeln manuell zu erstellen.
Generieren und Ausführen einer Datei gemäß der Multiplikation der Kategorien 1 bis 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)
Lassen Sie sich als separate Zeichenfolgen ein-, aus-, filtern usw. einbetten Es ist bequemer, wenn Sie durch Kombinieren eine Embulk-Konfiguration generieren.
Jupyter-Dateien runipy Sie können die Ausführung auch mit Batch ausführen Es war auch einfach, den abgeschlossenen Prozess nach Versuch und Irrtum regelmäßig auszuführen.
Ich denke, dass der diesmal beschriebene Inhalt nur ohne Jupyter möglich ist. Generieren Sie die Embulk-Konfiguration und führen Sie sie aus dem neuesten Jupyter aus. Es war einfach, andere verwandte Prozesse mit Jupyter zu betreiben. Ich habe es hier aufgelistet.
Recommended Posts