[PYTHON] Erstellen Sie die Embulk-Konfiguration und führen Sie sie in Jupyter aus

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.

Erstellen Sie eine Embulk-Konfiguration

    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.

Embulk Run

  os.system('embulk run [file name]')

Mach es und achte auf den Weg.

Anwendungsfall

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.

Beispiel

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)

Schließlich

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

Erstellen Sie die Embulk-Konfiguration und führen Sie sie in Jupyter aus
Erstellen und lesen Sie Messagepacks in Python
Erstellen und Bereitstellen von Flask-Apps mit PTVS
Erstellen Sie automatisch Wort- und Excel-Berichte mit Python
Bash in Jupyter
Koexistenz von Anaconda 2 und Anaconda 3 in Jupyter + Bonus (Julia)
Erstellen Sie erste Einstellungen und Mitarbeiter-Apps in Django
jupyter qtconsole config
Erstellen Sie Discord Bot und führen Sie es auf einem Android-Gerät aus
Erstellen Sie Amazon Linux mit AWS EC2 und melden Sie sich an
Erstellen Sie ein Plug-In, das Python Doctest auf Vim ausführt (2)
Erstellen Sie ein Plug-In, um Python Doctest mit Vim (1) auszuführen.
Speichern Sie .py- und .html-Dateien automatisch im Jupyter-Notizbuch.
Führen Sie pandas-highcharts display_charts in einer anderen Umgebung als jupyter aus
Holen Sie sich Aktienkurse und erstellen Sie mit Python Kerzendiagramme
Erstellen Sie Spatia Lite in Python
Jupyter in Cloud9 IDE
Bearbeiten Sie die Einstellungsdatei und führen Sie Docker-Compose Up aus (Django + MySQL ④).
Bis Sie Python Virtualenv unter Windows erstellen und Jupyter starten
Abrufen und Erstellen von Knoten, die in der neuen Version hinzugefügt und aktualisiert wurden
Erstellen und Verwenden von statischen / dynamischen Bibliotheken in C-Sprache
Erstellen Sie den Code, der in Python "A und vorgeben B" ausgibt
Erstellen Sie eine Authentifizierungsfunktion mit django-allauth und CustomUser in Django
So erstellen Sie einen Datenrahmen und spielen mit Elementen mit Pandas