ETL ist eine Abkürzung für Extrahieren, Transformieren und Laden. Wenn Extrahieren, Transformieren und Laden ins Japanische übersetzt werden, werden sie extrahiert, verarbeitet und gelesen. ETL-Verarbeitung ist die von ETL angegebene Verarbeitung für einige Daten (Textdatei, CSV-Datei usw.).
BrainPad Entwerfen und implementieren Sie den gemeinsamen Infrastrukturteil der ETL-Verarbeitungsfunktion, der intern als Anwendungsframework entwickelt und betrieben wurde. Das feste ist Clivoa.
GitHub https://github.com/BrainPad/cliboa
PyPI https://pypi.org/project/cliboa/
In Cliboa wird Extrahieren als Herunterladen von Daten aus einer Box definiert, Transformieren als Verarbeiten der heruntergeladenen Daten und Laden als Extrahieren und Hochladen der verarbeiteten Daten in eine beliebige Box. tun. Ein konzeptionelles Diagramm ist unten gezeigt.
Es läuft unter Linux-Betriebssystemen wie Debian, Ubuntu und CentOS.
Nachdem Sie Python Version 3.0 oder höher vorbereitet haben, installieren Sie es mit dem Befehl pip.
sudo pip3 install cliboa
Nach Abschluss der Installation können Sie den Befehl clivoadmin ausführen. Führen Sie cliboadmin in einem beliebigen Verzeichnis aus.
$ cd /usr/local
$ cliboadmin init sample
$ cd sample
$ cliboadmin create simple-etl
Die von cliboadmin initialisierte Programmstruktur lautet wie folgt.
sample
|-- bin
| `-- clibomanager.py
|-- common
| |-- __init__.py
| |-- environment.py
| |-- scenario
| `-- scenario.yml
|-- conf
|-- logs
|-- project
| `-- simple-etl
| |-- scenario
| `-- scenario.yml
`-- requirements.txt
Da die zum Ausführen von clivoa erforderlichen Python-Pakete in der Datei require.txt definiert sind, geben Sie sie mit dem Befehl pip an und installieren Sie sie.
$ cd sample
$ pip3 install -r requirements.txt
Schreiben Sie den folgenden Prozess als Beispiel in project / simple-etl / szenario.yml.
Inhalte verarbeiten Laden Sie test.csv.gz vom SFTP-Server herunter, entpacken Sie die heruntergeladene Datei und laden Sie die entpackte Datei test.csv auf den SFTP-Server hoch
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
Bereiten Sie vor der Ausführung Folgendes vor
Mit dem folgenden Befehl ausführen
cd sample
bin/clibomanager.py simple-etl
Wenn es nach der Ausführung wie folgt aussieht, ist es erfolgreich --Test.csv.gz unter / usr / local wird unter / tmp erweitert und wird zu test.csv. --test.csv existiert unter / usr / local
Recommended Posts