[PYTHON] Qu'est-ce que clivoa, un framework pour le traitement ETL?

Qu'est-ce que le traitement ETL?

ETL est un acronyme pour extraire, transformer et charger. Lorsque l'extraction, la transformation et le chargement sont traduits en japonais, ils sont extraits, traités et lus. Le traitement ETL est le traitement indiqué par ETL pour certaines données (fichier texte, fichier csv, etc ...).

Qu'est-ce que le cliboa

BrainPad Concevoir et implémenter la partie infrastructure commune de la fonction de traitement ETL qui a été développée et exploitée en interne en tant que cadre d'application. Le fixe est clivoa.

GitHub https://github.com/BrainPad/cliboa

PyPI https://pypi.org/project/cliboa/

Définition du traitement ETL dans cliboa

Dans cliboa, l'extrait est défini comme le téléchargement de données à partir d'une boîte, la transformation est définie comme le traitement des données téléchargées et la charge est définie comme l'extraction et le téléchargement des données traitées dans n'importe quelle boîte. faites. Un diagramme conceptuel est présenté ci-dessous. image.png

Caractéristiques de cliboa

démarrage rapide

Environnement requis

Il fonctionne sur un système d'exploitation Linux tel que Debian, Ubuntu et CentOS.

Comment installer

Après avoir préparé python version3.0 ou supérieure, installez-le avec la commande pip.

sudo pip3 install cliboa

Une fois l'installation terminée, vous pouvez exécuter la commande clivoadmin. Exécutez cliboadmin dans n'importe quel répertoire.

$ cd /usr/local
$ cliboadmin init sample
$ cd sample
$ cliboadmin create simple-etl

Structure du programme

La structure du programme initialisée par cliboadmin est la suivante.

sample
|-- bin
|   `-- clibomanager.py
|-- common
|   |-- __init__.py
|   |-- environment.py
|   |-- scenario
|   `-- scenario.yml
|-- conf
|-- logs
|-- project
|   `-- simple-etl
|       |-- scenario
|       `-- scenario.yml
`-- requirements.txt

Installation du package PyPI

Un ensemble de packages python requis pour exécuter clivoa est défini dans requirements.txt, spécifiez-le avec la commande pip et installez-le.

$ cd sample
$ pip3 install -r requirements.txt

Rédiger un scénario pour le traitement ETL

Écrivez le processus suivant comme exemple dans project / simple-etl / scenario.yml.

Traitement du contenu Téléchargez test.csv.gz depuis le serveur sftp, décompressez le fichier téléchargé et chargez le test.csv décompressé sur le serveur sftp

scenario:
- step:
  class: SftpDownload
  arguments:
    host: localhost
    user: root
    password: pass
    src_dir: /usr/local
    src_pattern: test.csv.gz
    dest_dir: /tmp
- step: FileDecompress
  arguments:
    src_dir: /tmp
    src_pattern: test.*\.csv.*\.gz
- step:
  class: SftpUpload
  arguments:
    host: localhost
    user: root
    password: pass
    src_dir: /tmp
    src_pattern: test.*\.csv
    dest_dir: /usr/local

Courir

Préparez les éléments suivants avant l'exécution

Exécutez avec la commande suivante

cd sample
bin/clibomanager.py simple-etl

Après exécution, si cela ressemble à ce qui suit, il réussit --Test.csv.gz placé sous / usr / local est développé sous / tmp et devient test.csv. --test.csv existe sous / usr / local

Recommended Posts

Qu'est-ce que clivoa, un framework pour le traitement ETL?
Quelle est la fonction d'activation?
[Définition] Qu'est-ce qu'un cadre?
A quoi sert l'interface ...
Qu'est-ce que la fonction de rappel?
[Python] Qu'est-ce que @? (À propos des décorateurs)
[python] Quelle est la clé triée?
Qu'est-ce que le système X Window?
À quoi sert le trait de soulignement Python (_)?
[Unix] Qu'est-ce que le processus zombie / processus orphelin?
Quelle est la cause de l'erreur suivante?
Qu'est-ce que "mahjong" dans la bibliothèque Python? ??
[Apprentissage automatique] Qu'est-ce que la norme LP?
Qu'est-ce que l'espace de noms
Qu'est-ce que Django? .. ..
Qu'est-ce que dotenv?
Qu'est-ce que POSIX
Qu'est-ce que wheezy dans l'image Docker Python?
Qu'est-ce que Linux
Qu'est-ce que le klass?
Qu'est-ce que SALOME?
Qu'est-ce que Linux?
Qu'est-ce que python
Qu'est-ce que l'hyperopt?
C'est un Mac. Qu'est-ce que la commande Linux Linux?
(Linux débutant) Quel est le mot magique aux?
Qu'est-ce que Linux
Qu'est-ce que pyvenv
Qu'est-ce que __call__
Qu'est-ce que Linux
Quelle est la différence entre Unix et Linux?
Qu'est-ce que Python
Quelle est la différence entre usleep, nanosleep et clock_nanosleep?
Quel est l'attribut de domaine écrit dans la disposition de Plotly?
Qu'est-ce qu'un moteur de recommandation? Résumé des types
[Python] Qu'est-ce que Pipeline ...
Qu'est-ce que Calmar Ratio?
Qu'est-ce qu'un terminal?
[Tutoriel PyTorch ①] Qu'est-ce que PyTorch?
Qu'est-ce que le réglage des hyper paramètres?
Qu'est-ce qu'un hacker?
Qu'est-ce que JSON? .. [Remarque]
Le cadre Common Clk
À quoi sert Linux?
Qu'est-ce qu'un pointeur?
Qu'est-ce que l'apprentissage d'ensemble?
Qu'est-ce que TCP / IP?
Qu'est-ce que __init__.py de Python?
Qu'est-ce qu'un itérateur?
Qu'est-ce que UNIT-V Linux?
[Python] Qu'est-ce que virtualenv
Qu'est-ce que l'apprentissage automatique?
Quelle est la différence entre les liens symboliques et les liens durs?
Quelle est la version TLS par défaut du module de requêtes python?
La fonction d'affichage d'image d'iTerm est pratique lors du traitement d'images.
[Pyro] Modélisation statistique par le langage de programmation probabiliste Pyro ① ~ Qu'est-ce que Pyro ~