Vergleich des Versatile Data Kit mit Apache Airflow
Was sind die Unterschiede zwischen diesen beiden Workload-Automatisierungs-Frameworks – und wie schlagen sie sich in typischen Data-Engineering-Fällen? Dieser Blogbeitrag dient dazu, diese Fragen zu beantworten und Ihnen bei der Entscheidung zu helfen, welches Sie verwenden sollten.
Eine Übersicht über diese beiden Frameworks finden Sie in unserem vorherigen Artikel .
Vergleich der Funktionalität
Anwendungsfallvergleich
Datenherkunft
Unter Datenherkunft versteht man den Prozess der Überwachung, Aufzeichnung und Visualisierung des Datenflusses durch ein bestimmtes Datensystem. Eine ausführlichere Beschreibung finden Sie im Wikipedia-Artikel zum Thema .
OpenLineage ist „eine offene Plattform zur Sammlung und Analyse der Datenherkunft“ .
Abstammung in Apache Airflow
Apache Airflow bietet Unterstützung für die OpenLineage-konforme Sammlung von Herkunftsdaten über das Paket „airflow-openlineage“. Standardunterstützung wird jedoch nur für PostgreSQL, Snowflake, MySQL, BigQuery und das Datenqualitätsvalidierungs-Framework Great Expectations angeboten. Von Benutzern wird erwartet, dass sie ihre eigene Lösung erstellen oder eine vorhandene Lösung ausleihen, wenn sie die Herkunft für Abfragen erfassen möchten, die für eine andere Datenbank ausgeführt werden.
Das Paket „airflow-openlineage“ ermöglicht die Erfassung von Herkunftsdaten für einzelne Jobs innerhalb eines DAG-Laufs. Es kann jedoch keine DAG-weite Abstammungslinie erfasst werden.
Abstammung im vielseitigen Datenkit
Versatile Data Kit bietet ein Abstammungserfassungs-Plugin namens „vdk-lineage“. Aufgrund der erweiterbaren Architektur von VDK ist dieses Plugin endpunktunabhängig, d. h. es kann die Herkunft von Abfragen erfassen, die für jede aktuelle oder zukünftige SQL-Datenbank ausgeführt werden. Allerdings könnte „vdk-lineage“ Schwierigkeiten haben, obskurere SQL-Dialekte zu analysieren.
VDK bietet auch eine spezielle Abstammungssammlung für Trino und Impala an.
VDK kann die Herkunft einzelner Abfragen, No-SQL-Transformationen, laufender Aufnahmeprozesse sowie ganzer Datenjobs erfassen – nämlich Jobstart- und -endobjekte, die Struktur des Datenjobs (Schritte, Methoden) sowie den Jobstatus – Misserfolg oder Erfolg.
Der Vorteil von VDK besteht darin, dass es die Herkunft auf Datenebene erfassen kann.
Vorlagen
Das dynamische Erstellen von Airflow-DAGs ist bestenfalls schwierig . VDK bietet durch das Konzept der Datenjob-Vorlagen einen viel intuitiveren Ansatz. Diese fungieren im Wesentlichen als Datenjobs, können jedoch aus einem anderen Datenjob heraus aufgerufen werden, was es Benutzern ermöglicht, ETL/ELT-Prozesse innerhalb eines großen Teams zu standardisieren und/oder Redundanz zu reduzieren.
Das vielseitige Data Kit bietet sofort einsatzbereite Datenauftragsvorlagen zum Laden von Daten in Tabellen mit sich langsam ändernden Dimensionen vom Typ 1 , sich langsam ändernden Dimensionen vom Typ 2 und periodischen Snapshot-Faktentabellen in einer Trino- oder Impala-Datenbank. Benutzer können auch ihre eigenen Vorlagen erstellen, die zu ihren individuellen Anwendungsfällen passen.
Weitere Informationen zu den Vorlagenfunktionen von Versatile Data Kit finden Sie in der Community-Demo von Versatile Data Kit oder im Tutorial zu Vorlagen .
Einnahme
Unter Datenaufnahme versteht man die Fähigkeit, einige Daten zu erfassen und an einen Zielort zu senden.
Das Versatile Data Kit bietet einen integrierten Mechanismus zum Senden von Daten an ein konfiguriertes Ziel. Es bietet eine API für die asynchrone und threadsichere automatische Serialisierung, Verpackung und das Senden von Daten, die von einem PEP249-kompatiblen Datenbankcursor, einem API-Antwortaufruf oder einem beliebigen serialisierbaren iterierbaren Python-Objekt gesammelt wurden. Darüber hinaus können Benutzer die Parallelität und Häufigkeit des Datenversands konfigurieren, was einen sehr hohen Durchsatz beim Senden von Daten ermöglicht.
Apache Airflow bietet keine sofort einsatzbereite Lösung für die Datenerfassung; Die Bereitstellung des Supports hierfür wird auf den Benutzer abgewälzt.
Zusammenfassung
Zusammenfassend lässt sich sagen, dass die Unterschiede zwischen Versatile Data Kit und Apache Airflow auf den unterschiedlichen Abstraktionsebenen beruhen, die sie dem Benutzer bereitzustellen versuchen. Airflow ist allgemeiner (es orchestriert Prozesse), wohingegen VDK eine eigenwilligere Funktionalität bietet, die speziell darauf abzielt, Dateningenieuren Abstraktionen auf höherer Ebene zu bieten, die auf ihre Bedürfnisse zugeschnitten sind. Darüber hinaus ist Versatile Data Kit nativ erweiterbar und die meisten seiner integrierten Funktionen werden über seinen Erweiterbarkeitsmechanismus implementiert.
Sie sind in Bezug auf die Herkunftserfassung vergleichbar, da sie beide mit den richtigen Erweiterungen OpenLineage-kompatibel sein können und beide eine Granularität auf Abfrageebene bieten – VDK bietet sie direkt an und Airflow bietet sie auf der Ebene der DAG-Jobs, die aufgerufen werden können um einzelne Abfragen auszuführen. VDK bietet jedoch auch eine vielseitigere Abstammungssammlung, da die VDK-Erweiterbarkeit den Daten- und Kontrollpfad abfangen kann, wodurch nützlichere Metadaten gesammelt werden können.
In Bezug auf Vorlagen bietet VDK Auftragsvorlagen an, die es Benutzern ermöglichen, Prozesse innerhalb ihrer Organisation zu standardisieren und Code wiederzuverwenden. VDK bietet auch integrierte Vorlagen für gängige Data-Engineering-Praktiken, nämlich die Kimball-Dimensionsmodellierung.
In Bezug auf die Aufnahme übertrifft Versatile Data Kit Airflow mit seiner Aufnahme-API, die es ermöglicht, jedes Python-Iterable mit einem Methodenaufruf an jedes konfigurierte Ziel zu senden.
Beides zur selben Zeit
Ab der Veröffentlichung des Airflow-Anbieters für Versatile Data Kit können Benutzer Datenaufträge bearbeiten, die in einer bereitgestellten Instanz des VDK-Kontrolldienstes verwaltet werden. Dies kommt Benutzern zugute, die das Versatile Data Kit aufgrund der spezifischen Abstraktionsebene, auf der es arbeitet, insgesamt bevorzugen, aber die Fähigkeit von Airflow vermissen, voneinander abhängige Arbeitslasten auszudrücken.
Darüber hinaus kommt es Benutzern zugute, die bereits über eine bereitgestellte Instanz von Airflow verfügen und diese lieber als Hauptbenutzeroberfläche für ihr Workload-Management verwenden möchten, aber dennoch das Versatile Data Kit wegen seiner Fähigkeit, Workloads auf dem Datenpfad zu positionieren, verwenden möchten. Jetzt können Benutzer DAGs entwickeln und verwenden, bei denen jede Aufgabe die Ausführung eines Datenjobs über eine konfigurierte Verbindung zu einem Steuerungsdienst auslöst.

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































