Für alle, die Self Service BI einführen, Data Replication steuern oder APIs managen wollen, hält die Dateningestplattform Airbyte einiges bereit. In dieser Artikelserie nehme ich dich Schritt für Schritt mit – von der Installation bis zum täglichen Einsatz von Airbyte, dabei klettern wir auch über Stolpersteine. Im ersten Teil erfährst du, was für die Installation wichtig ist. Die ersten Handgriffe gehen wir an einem Beispiel durch. Viel Spaß beim Lesen!

Was kann Airbyte?

Airbyte ist eine Open-Source-Datenintegrationsplattform, die zunehmend an Popularität gewinnt. Sie konzentriert sich auf die ersten beiden Buchstaben des ELT-Prozesses, also auf Extract und Load und wird im Umfeld moderner Data Stacks eingesetzt. Also dort, wo es viele verschiedene Software Tools gibt, die dabei helfen, Daten zu sammeln, Datenflüsse zu steuern und Daten zu speichern.
Aktuell bietet Airbyte über 300 Konnektoren out of the Box. Mit diesen Konnektoren lassen sich Daten von Applikationen, APIs und Datenbanken zu Data Warehouses, Lakes und anderen Zielen übertragen. Die Lade- und Synchronisationsjobs werden über eine Weboberfläche konfiguriert. Airbyte läuft in einem containerbasierten Betrieb, in dem jeder Konnektor seinen eigenen Container hat.

Wo kann Airbyte installiert werden?

Airbyte läuft auf vielen Umgebungen, wobei immer ein paar Dinge zu beachten sind:

  • Lokale Maschinen oder VM in der Cloud
    Wenn du Airbyte auf lokalen Maschinen und auf den VMs in der Cloud installieren willst, brauchst du Docker und Docker-Compose. Beide sind eine Voraussetzung für die Airbyte-Installation.
  • Kubernetes
    Für die Installation in Kubernetes gibt es zwei Verfahren: Kustomize oder Helm. Kustomize würde ich allerdings nicht empfehlen, da es nur bis Airbyte Version 0.40.32 unterstützt wird. Also lieber die Kubernetes Installation über Helm wählen. Die momentan aktuelle Version ist die 0.42.0.
  • Restack
    Restack ist eine Distributionsplattform für Open-Source-Produkte. Mit Hilfe von Restack lässt sich Airbyte über eine Weboberfläche in einer AWS-Infrastruktur installieren. Hierzu wird ein AWS-Account mit Administratorrechten benötigt.
  • Plural in der Cloud
    Plural ist eine Open-Source-Plattform, die einen Kubernetes-Cluster und ausgewählte Anwendungen wie Airbyte bei verschiedenen Cloud-Anbietern bereitstellt. Der Infrastruktur-Code wird durch Plural in einem Git-Repository gespeichert. Ein Plural Account und die Installation des Plural CLI werden vorausgesetzt. Die Airbyte-Installation erfolgt über das Plural CLI.

Von der SQL-DB ins DWH …

In einem meiner Kundenprojekte ging es darum, mithilfe von Airbyte Daten von einer PostgreSQL-DB in ein Data Warehouse zu laden, das ebenfalls auf einer PostgreSQL-DB läuft. Neben Airbyte waren hier auch noch dbt und Airflow im Einsatz.
Die Entwicklungsumgebung haben wir in diesem Projekt als Docker Container aufgesetzt, der auf einer lokal installierten Ubuntu 22.04 VM läuft. In der Produktionsumgebung wurde ein Kubernetes Cluster aufgesetzt.

Einstellungen über die Airbyte Weboberfläche

Über http://localhost:8000 gelangst du auf die Weboberfläche. Das meiste erklärt sich hier von selbst. Hier gibt es die Bereiche „Connections“, „Sources“ und „Destinations“, in denen die Konfigurationen vorgenommen werden.

1. Sources definieren

Über den Button „+ New source“ wird eine neue Source erstellt. Hierzu wählst du zunächst den Source-Typ aus einer Dropdown-Liste aus.

Screenshot Sources definieren
So werden die Sources definiert

Hierzu wählst du zunächst den Source-Typ aus einer Dropdown-Liste aus. Es öffnet sich linksseitig die Source-spezifische Konfigurationsmaske und auf der rechten Seite wird der zugehörige Setup Guide angezeigt. In diesem Fall für PostgreSQL.

Screenshot: Konfigurationsmaske
Die Konfigurationsmaske öffnet sich

Wenn alle Pflichtangaben vorhanden sind, kannst du die Source über den Button „Set up source“ erstellen. Hierbei wird auch gleich die Verbindung zur Source getestet. Wenn Erstellung und Verbindungstest erfolgreich waren, öffnet sich eine Maske, auf der man die Destination an die Source anbinden kann. Über den Button „add destination“ hast du die Möglichkeit, eine bereits existierende Destination auszuwählen oder eine neue Destination („+ add a new destination“) anzulegen.

Screenshot Destination hinzufügen
Hier kannst du eine Destination hinzufügen

Wenn der Source eine Destination zugewiesen wurde, startet der Prozess „Set up connection“. Hierbei öffnet sich eine Maske, über die die Connection konfiguriert wird.

  • Name der Connection
  • Frequenz der Datenreplikation
  • Destination Namespace (z. B. Schema auf der Destination-Datenbank)
  • Aktivierung und Konfiguration der zu synchronisierenden Streams (z. B. Quelltabellen auf der Source-Datenbank inkl. Sync-Mode)
  • Normalization & Transformation
          • Nur Raw Data als JSON-Blob (Radio Button „Raw data (JSON)“)
          • Normalisierung des JSON-Formats in eine relationale Tabelle (Radio Button „Normalized tabular data“)

Airbyte überträgt einen Datensatz immer als ein JSON-Blob, egal aus welcher Quelle die Daten stammen. Die anschließende Normalisierung wandelt das JSON-Format in relationale Tabellendaten um. Darum ist die Normalisierung nur möglich, wenn relationale Datenbanken als Destination verwendet werden. Doch dazu mehr in Teil 3 der Blogreihe.

Nach abgeschlossener Konfiguration wird über den Button „Set up connection“ die Verbindung aufgebaut und getestet.

2. Destination bestimmen

Wenn du über den Button „+ New destination“ eine neue Destination erstellst, wählst du zuerst den Destinationstyp aus einer Dropdown-Liste aus.

Screenshot Destination bestimmen
In dieser Maske spezifizierst du die Destination

Es öffnet sich linksseitig die Destinations-spezifische Konfigurationsmaske und auf der rechten Seite wird der zugehörige Setup Guide angezeigt (z.B. für PostgreSQL).

Screeshot Konfiguration der Destination
In dieser Maske kannst du die Destination konfigurieren

Wenn alle Pflichtangaben vorhanden sind, wird die Destination über den Button „Set up destination“ erstellt, hierbei wird auch gleich die Verbindung zur Destination getestet. Nach erfolgreicher Erstellung und erfolgreichem Verbindungstest öffnet sich eine Maske, auf der man die Source an die Destination anbinden kann.

Screenshot Source anbinden
Hier kannst du eine Source an die Destination anbinden

Über den Button „add source“ hast du die Möglichkeit, eine bereits existierende Source auszuwählen oder eine neue Source („+ add a new source) anzulegen.
Wenn der Destination eine Source zugewiesen wurde, startet der Prozess „Set up connection“. Hierbei öffnet sich die bereits oben beschriebene Maske zur Konfiguration der Verbindung.

3. Connections herstellen

Über den Button „+ New connection“ wird eine neue Connection erstellt.

Screenshot Neue Connections herstellen
So erstellst du eine neue Connection

Hierbei öffnet sich eine Maske, auf der aus bereits existierenden Sources ausgewählt werden kann oder über die per „Set up the source“ eine neue Source erstellt werden kann.

Screenshot Source verbinden
Wähle eine Verbindung aus

Nach Auswahl bzw. Konfiguration der Source öffnet sich eine Maske mit einer Auswahl an Destinations, die schon existieren. Alternativ kannst du per „Set up destination“ eine neue Destination erstellen.

Screenshot neue Destination erstellen
Hier kannst du eine neue Destination erstellen

Sobald Source und Destination bekannt sind, öffnet sich die oben beschriebene Maske zur Konfiguration der Verbindung. Wenn die Konfiguration der Connection abgeschlossen und die Connection erfolgreich erstellt wurde, kann über den Button „Sync now“ erstmalig die Datenreplikation gestartet werden. Die Datenreplikation bereits existierender Connections kann über den Launch-Button gestartet werden.

Die technischen Details zu den Installationsanweisungen kannst du in der  Installationsdoku von Airbyte nachlesen.

Fazit

Ob Sources, Destinations oder Connections: Egal über welchen Bereich du auf der Weboberfläche einsteigst, auf Airbyte wird immer ein Workflow gestartet, der dich in der richtigen Reihenfolge durch alle notwendigen Schritte führt. Die Weboberfläche macht die manuelle Konfiguration auf einer Airbyte-Instanz also schnell und einfach möglich.

Schwieriger wird es, wenn du diese Objekte ohne großen manuellen Aufwand auf andere Airbyte-Instanzen deployen willst. Die unter Settings/Configuration angebotenen Funktionen zum Export und Import der Konfigurationen haben in unserem Projektkontext beispielsweise nicht funktioniert. Deshalb haben wir Alternativen, wie das Command-Line-Tool Octavia-cli geprüft.

Was dabei herausgekommen ist, kannst du im zweiten Teil dieser Serie erfahren. Im dritten Teil geht es um den Data-Ingestion-Prozess, was dabei hinter den Kulissen von Airbyte passiert und was es mit den Sync-Modes auf sich hat. Bleib also gerne dabei!

Teil 1: Daten integrieren mit Airbyte – Teil 1: Einführung & Installation

Teil 2: Daten integrieren mit Airbyte – Teil 2: Octavia-cli

Teil 3: Wie funktioniert Data Ingestion genau?

Alle Beiträge von Caroline Aretz

Caroline arbeitet als Senior Consultant für BI & Analytics bei OPITZ CONSULTING. Ihr Spezialgebiet sind ETL- und ELT-Prozesse.

Schreibe einen Kommentar