Evaluierung Data Ingest nach PoC
Zielsetzung
Nachdem anfänglich in "Evaluierung möglicher Ingest Komponenten" bewertet wurde, welche ETL-Orchestrierungstool in einem PoC betrachten werden sollten, setzt sich diese Dokumentation zum Ziel eine fundierte Bewertung der beiden ETL-Orchestration-Tools Dagster und Apache Airflow im Hinblick auf ihre Eignung für die Datenfabrik. Sie soll zu einer Architekturentscheidung führen.
Evaluierungskriterien
Die Bewertung in %-Zahl erfolgt nach subjektiver Einschätzung und dem Handling im PoC-Test.
Mandantentrennung
| Kriterium | Dagster | Dagster Kommentar | Airflow | Airflow Kommentar |
|---|---|---|---|---|
| Unterstützung mehrerer Projekte (Mandantenfähigkeit) | 60% | Beide Tools Multimandantenfähig; D: Eigene Code Location mit eigenem Image / UI via Self-Host aber nicht multimandantenfähig | 80% | Multi-DAG-Folder Ansätze notwendig / höhere Aufwand, bessere UI RBAC |
| Isolation von Ressourcen, Daten, Berechtigungen | 100% | Eigenes Image und Container-Runtime | 90% | Gesammeltes Image default, dadurch aber Steuerung. KubernetesExecutor erfüllt Kriterium, trotzdem fraglich, ob andere Execturoren performanter wären. Wenn Fokus auf maximale Seperation sogar multi-namespace möglich: https://airflowsummit.org/sessions/2023/better-support-for-using-multiple-namespaces-with-kubernetesexecutor/ |
- Dagster = 80% Erfüllung der Kategorie
- Airflow = 86 % Erfüllung der Kategorie
Deploymentstrategie
| Kriterium | Dagster | Dagster Kommentar | Airflow | Airflow Kommentar |
|---|---|---|---|---|
| GitOps & CI/CD | 100% | miteinander vergleichbar, Helm Chart verfügbar | 100% | miteinander vergleichbar, Helm Chart verfügbar |
| Mono-Repo vs. Multi-Repo | 100% | Multi-Repo Ansatz offiziell dokumentiert: https://docs.dagster.io/deployment/dagster-plus/management/managing-multiple-projects-and-teams | 100% | Beide Strategien technisch möglich, Mono-Repo in der Community verbreitet. Ansatz mit Multi-Repo und S3 identifiziert: https://medium.com/apache-airflow/what-we-learned-after-running-airflow-on-kubernetes-for-2-years-0537b157acfd |
| Lokale Entwicklung & Tests | 90% | Lokaler Start über dagster devBei beiden Tools wäre eine hosted Dev Umgebung trotzdem gut, um die Vergleichbarkeit zu gewährleisten |
90% | airflow standalone und offizielle Docker-Compose-Umgebung verfügbar, lokale Tests mit Einschränkungen möglich (anderer Executor) |
| Flexibilität der Konfiguration: Komponente "wächst" mit Platform | 30% | Wesentliche Enterprise-Funktionen fehlen im OSS | 80% | Modular erweiterbar, Plugin-System, hohe Verbreitung, aber auch hohe Hürde die breite Konfigurationsmöglickeiten zu optimieren |
| Rollback-Strategien | 50% | In beiden Fällen abhängig von Design der Pipelines (Idempotenz, Checkpoints,etc.) D. bietet Optionen wie "ReexecutionOptions" |
50% | Subset eines DAGs via UI oder CLI ausführen (z.B. airflow backfill) |
- Dagster = 74% Erfüllung der Kategorie
- Airflow = 84% Erfüllung der Kategorie
Self-Service vs. Operator-Abhängigkeit
| Kriterium | Dagster | Dagster Kommentar | Airflow | Airflow Kommentar |
|---|---|---|---|---|
| UI für Entwickler | 80% | Moderne UI, aber Entwickler-zentriert | 80% | Mit Airflow 3 auch moderne UI, aber Entwickler zentriert |
| Autonomie von Entwicklungsteams | 50% | Schreiben eigene Code Location mit eigenem Image. Secret Management muss mit Operator abgestimmt werden | 50% | Default dediziertes Image, aber mit Prozessen können Entw. Teams eigenständig testen. Auch hier Bedarf es Abstimmung im Bereich Secret Management mit Operator |
| Operator-Eingriffe | 40% | Insb. Secret Mgmt, aber auch UI nur als Full-Admin in OSS aufrufbar daher ggf. Vertreter für Dev Teams (kein IAM möglich) | 70% | Insb. Secret Mgmt und IAM Regeln für Webserver Zugriffe |
| GitLab-Integration & Berechtigungen | 40% | CI/CD-Skripte und Deploy-Pipelines mit GitLab CI möglich, aber Rollentrennung nur begrenzt | 80% | GitLab + Helm gut integrierbar, RBAC-Funktionalität über Airflow Webserver gegeben |
- Dagster = 53% Erfüllung der Kategorie
- Airflow = 70% Erfüllung der Kategorie
Authentifizierung & Autorisierung
| Kriterium | Dagster | Dagster Kommentar | Airflow | Airflow Kommentar |
|---|---|---|---|---|
| SSO (Keycloak) Integration | 10% | Keine native OIDC-Unterstützung im OSS; Workaround über Reverse Proxy nötig | 100% | Native Integration über Flask-AppBuilder, OIDC, OAuth2, Keycloak möglich |
| Rollenbasierte Zugriffskontrolle (RBAC) | 0% | Kein echtes RBAC im OSS, nur teamorientierte Separierung über Code-Strukturen | 100% | Volles RBAC über Web UI konfigurierbar, rollen- & permissionsbasiert |
- Dagster = 5% Erfüllung der Kategorie
- Airflow = 100% Erfüllung der Kategorie
Entscheidungsgrundlage
| Kriterium | Dagster | Airflow |
|---|---|---|
| Mandantentrennung | 80% | 86% |
| Deploymentstrategie | 74% | 84% |
| Self-Service-Fähigkeit | 53% | 70% |
| Auth | 5% | 100% |
| Gesamtbewertung bei gleicher Gewichtung |
53% | 85% |
Kritische Bewertung der Wahl des ETL-Orchestrierungstools
Im Rahmen der Datenfabrik-Komponenten agieren Dagster und Airflow formal im „Ingest-Layer“, bieten jedoch weitreichendere Funktionen als reines Einlesen. Wichtig ist dabei, zwischen Ingest und Extract zu unterscheiden:
-
Extract wäre eine Aufgabe, die von beiden Tools nur verwaltet wird.
-
Verschiedene Extraktionsmodi erfordern jeweils eigene Toolchains. Ein „One-size-fits-all“-Ansatz erscheint daher wenig zielführend.
-
Apache Airflow stellt aufgrund seiner Flexibilität und seines modularen Designs einen bewährten Einstiegspunkt in die ETL-Orchestrierung dar. Verschiedene moderne Extract Optionen sind hier mit Plugins und Python einbindbar.
Die Kernfrage lautet, welche Fähigkeiten unsere Datenfabrik abdecken soll – abhängig von den jeweiligen Sponsoren und Fokus-Use-Cases. Wir gehen aktuell von drei Haupt-Extract-Szenarien aus:
-
Real-Source-Extraktion
Direkter Zugriff auf eine Quell-Datenbank mit halbwegs normalisierten Daten. -
Non-standardized Exports
Teilweise aggregierte Daten, unterschiedlich formatiert je nach Quelle (z. B. CSV, JSON, XML etc.). -
Unstructured Data
Klassische Dokumenten- und Textverarbeitung (z. B. PDFs, E-Mails, Freitext).
Alle genannten Szenarien lassen sich strategisch mit Apache Airflow abbilden – dank seiner breiten Integrationsmöglichkeiten und der ausgereiften Community.
Bewertung & Ableitungen des Ergebnisses
Die Bewertung aus dem PoC bestätigt, dass Apache Airflow in einer Self-Hosted-Umgebung aktuell die bessere Wahl ist. Auf Basis der gewonnenen Erkenntnisse sollten im nächsten Schritt folgende Themen tiefer analysiert und entschieden werden:
-
Helm-Chart Auswahl
Welches Chart (offiziell vs. Bitnami) bietet die besten Upgrade- und Rollback-Mechanismen sowie die nötigen Konfigurationsoptionen (Secrets, Ingress, Ressourcen-Limits)? -
Executor-Strategie
Entscheidung zwischen KubernetesExecutor oder CeleryExecutor – jeweils im Hinblick auf Skalierbarkeit, Isolation, Betriebskomplexität und Performance -
Isolationstiefe & Multi-Tenancy
Definition, wie stark Tasks, Datenvolumes und Secrets pro Team oder Projekt getrennt werden müssen (z. B. Namespaces, Pod-Security-Policies, Netzwerk-Policies). -
DAG- und Teamprozesse
Workflow für DAG-Entwicklung, Testing und Deployment:- Mono- vs. Multi-Repo
- CI/CD-Pipelines und Quality Gates
- Vorgehen bei DAG-Änderungen (Review, Versionierung, Rollbacks)
-
Daten-Ingest & -Harmonisierung
Validierung, wie Airflow bei unterschiedlichen Extraktionsmodi (aggregierte vs. rohe Quelldaten) Datenharmonisierung, Schema-Evolution und anschließende Konsolidierung effizient unterstützt, da dies eine wesentliche Aufgabe der Datenfabrik ist.