[PYTHON] Créer et exécuter la configuration d'embulk dans Jupyter

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.

Créer une configuration embulk

    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.

embulk run

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

Faites-le, en faisant attention au chemin.

Cas d'utilisation

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.

Exemple

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)

finalement

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

Créer et exécuter la configuration d'embulk dans Jupyter
Créer et lire des paquets de messages en Python
Créez et déployez des applications Flask avec PTVS
Créez automatiquement des rapports Word et Excel avec Python
Bash dans Jupyter
Coexistence d'Anaconda 2 et Anaconda 3 dans Jupyter + Bonus (Julia)
Créer les paramètres initiaux et les applications de personnel dans Django
configuration de jupyter qtconsole
Créez et exécutez Discord Bot sur un appareil Android
Créez Amazon Linux avec AWS EC2 et connectez-vous
Créer un plugin pour exécuter Python Doctest sur Vim (2)
Créez un plug-in pour exécuter Python Doctest avec Vim (1)
Enregistrez automatiquement les fichiers .py et .html dans le bloc-notes Jupyter.
Exécutez pandas-highcharts display_charts dans un environnement autre que jupyter
Obtenez les cours des actions et créez des graphiques en bougies avec Python
Créer Spatia Lite en Python
Jupyter dans l'IDE Cloud9
Modifiez le fichier de paramètres et exécutez docker-compose up (Django + MySQL ④)
Jusqu'à ce que vous créiez Python Virtualenv sur Windows et lanciez Jupyter
Obtenez et créez des nœuds ajoutés et mis à jour dans la nouvelle version
Comment créer et utiliser des bibliothèques statiques / dynamiques en langage C
Créez le code qui renvoie "A et prétendant B" en python
Créer une fonction d'authentification à l'aide de django-allauth et CustomUser dans Django
Comment créer une trame de données et jouer avec des éléments avec des pandas