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 ...).
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/
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.
Il fonctionne sur un système d'exploitation Linux tel que Debian, Ubuntu et CentOS.
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
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
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
É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
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