Meltano: Produktionsreife Open-Source-Datenintegration
In diesem Artikel gehen wir näher auf die praktische Anwendung von Meltano ein – einer Open-Source-Plattform, die für den Aufbau, die Ausführung und die Orchestrierung von ELT-Pipelines entwickelt wurde. Aufbauend auf unserer vorherigen Diskussion zur Architektur von Meltano führt Sie dieser Beitrag durch den Prozess der Erstellung einer Datenintegrations-Pipeline: von der Initialisierung eines Projekts über die Konfiguration von Extractors und Loadern bis hin zur Nutzung der Meltano-Benutzeroberfläche (UI) für ein effizientes Management.
Meltano in Aktion
In unserem letzten Überblick haben wir über Meltano und seine Architektur gesprochen. Nun möchten wir Ihnen zeigen, wie einfach Sie mit Meltano eine Datenintegrations-Pipeline erstellen können.
Bevor wir beginnen, stellen Sie bitte sicher, dass Sie Meltano bereits auf Ihrem Rechner installiert haben. Falls nicht, können Sie der offiziellen Installationsanleitung von Meltano folgen.
Zunächst erstellen wir ein neues Meltano-Projekt.
Führen Sie dazu in einem Verzeichnis Ihrer Wahl den Befehl „meltano init“ aus. Dadurch wird ein neues Verzeichnis erstellt, das unter anderem Ihre Projektdatei „meltano.yml“ enthält.

Der Meltano-Projektordner
Der Projektordner ist die zentrale Anlaufstelle („Single Source of Truth“) für alle Ihre Datenanforderungen. Es handelt sich um ein einfaches Verzeichnis, das problemlos versionsverwaltet werden kann.
Der Hauptbestandteil Ihres Projekts ist die Projektdatei meltano.yml. Diese Datei definiert Ihre Plugins, Pipelines und Konfigurationen.
Das Projekt und die Datei meltano.yml lassen sich über die Meltano CLI verwalten und werden direkt für das Deployment mit Docker/Kubernetes containerisiert. Bitte beachten Sie jedoch, dass noch keine Plugins oder Pipeline-Zeitpläne (Schedules) definiert wurden. Dies erledigen wir im nächsten Schritt.
Hinzufügen eines Extractors und eines Loaders
Initialisieren wir nun die Komponenten der Pipeline. Das erste Plugin, das Sie hinzufügen sollten, ist ein Extractor, der dafür zuständig ist, Daten aus Ihrer Datenquelle zu extrahieren.
Um herauszufinden, ob ein Extractor für Ihre Datenquelle direkt („out of the box“) unterstützt wird, können Sie die Extractor-Liste auf MeltanoHub prüfen oder den Befehl „meltano discover“ ausführen.
In diesem Beispiel verwenden wir den Tap für GitLab, da wir hierfür keine API-Zugangsdaten erstellen müssen.

Meltano übernimmt die Einrichtung, Konfiguration und Steuerung der Aufrufe.

Wir konfigurieren den Extractor so, dass er die Daten aus dem Repository meltano/meltano abruft. Zusätzlich definieren wir, dass nur Daten ab dem 1. Januar 2021 extrahiert werden und nur Daten des Streams „Tags“ enthalten sind.

Die Datenauswahl ist damit wesentlich einfacher als bei der ausschließlichen Nutzung von Singer! Der Extractor ist nun eingerichtet. Als Nächstes fügen wir einen Loader hinzu, um die Daten in einer CSV-Datei zu speichern, und definieren unseren Zielpfad:

Bitte beachten Sie, dass das Verzeichnis vorab manuell erstellt werden muss, da es nicht automatisch angelegt wird. So sieht unsere meltano.yml aus:

Anstatt die CLI zu verwenden, können Sie Änderungen auch direkt in der YAML-Datei vornehmen.
Auf diese Weise ist es ebenfalls möglich, die Extractors und Loader in der Meltano-UI zu konfigurieren:
Starten Sie den Webserver der Meltano-UI mit dem Befehl meltano ui. Sofern nicht anders konfiguriert, ist die Benutzeroberfläche nun unter http://localhost:5000 erreichbar.


Ausführen einer Pipeline
Nun ist es an der Zeit, eine Pipeline auszuführen. Um eine einmalige Pipeline zu starten, können Sie einfach den Befehl meltano elt verwenden:


Ergebnis
Und schon sind wir fertig! Wir haben lediglich zehn Befehle benötigt, um eine vollständige Datenintegrations-Pipeline zu erstellen.

Fazit
Es wird schnell klar, warum Meltano eine hervorragende Wahl für den Aufbau Ihrer Datenplattform ist: Es ist leistungsstark und dennoch einfach zu warten. Das Open-Source-Modell macht es zudem flexibel, kosteneffizient und zuverlässig.
