von Simon Späti
Verwenden Sie diese Open-Source-Tools für Data Warehousing
Heutzutage spricht jeder von Open-Source-Software. Dies ist jedoch im Bereich Data Warehousing (DWH) noch nicht üblich. Warum ist das?
Für diesen Beitrag habe ich einige Open-Source-Technologien ausgewählt und sie zusammen verwendet, um eine vollständige Datenarchitektur für ein Data Warehouse-System aufzubauen.
ich ging mit Apache Druide zur Datenspeicherung, Apache-Supersatz zum Abfragen und Apache Airflow als Task-Orchestrator.
Druide – der Datenspeicher
Druid ist ein spaltenorientierter, verteilter Open-Source-Datenspeicher, der in Java geschrieben ist. Es wurde entwickelt, um schnell große Mengen an Ereignisdaten aufzunehmen und Abfragen mit geringer Latenz zusätzlich zu den Daten bereitzustellen.
Warum Druiden verwenden?
Druid verfügt über viele Schlüsselfunktionen, darunter OLAP-Abfragen im Sekundenbereich, Echtzeit-Streaming-Aufnahme, Skalierbarkeit und Kosteneffizienz.
Mit dem Vergleich moderner OLAP-Technologien Im Hinterkopf habe ich Druid gegenüber ClickHouse, Pinot und Apache Kylin gewählt. Vor kurzem, Microsoft hat angekündigt, Druid . hinzuzufügen zu ihrem Azure HDInsight 4.0.
Warum nicht Druide?
Carter Shanklin hat geschrieben ein ausführlicher Beitrag über die Einschränkungen von Druid bei Horthonwork.com. Das Hauptproblem ist die Unterstützung für SQL-Joins und die erweiterten SQL-Funktionen.
Die Architektur des Druiden
Druid ist aufgrund seiner Cluster-Architektur skalierbar. Sie haben drei verschiedene Node-Typen – den Middle-Manager-Node, den Historical Node und den Broker.
Das Tolle ist, dass Sie so viele Knoten hinzufügen können, wie Sie möchten, in dem bestimmten Bereich, der am besten zu Ihnen passt. Wenn Sie viele Abfragen ausführen müssen, können Sie weitere Broker hinzufügen. Wenn viele Daten stapelweise aufgenommen werden müssen, fügen Sie mittlere Manager usw. hinzu.
Eine einfache Architektur ist unten gezeigt. Sie können mehr über Druids Design lesen hier.
Apache Superset – die Benutzeroberfläche
Der einfachste Weg, Druid abzufragen, ist ein leichtgewichtiges Open-Source-Tool namens Apache-Supersatz.
Es ist einfach zu bedienen und verfügt über alle gängigen Diagrammtypen wie Bubble Chart, Word Count, Heatmaps, Boxplot und viel mehr.
Druid bietet eine Rest-API und in der neuesten Version auch eine SQL Query API. Dies macht die Verwendung mit jedem Tool einfach, egal ob es sich um Standard-SQL, jedes vorhandene BI-Tool oder eine benutzerdefinierte Anwendung handelt.
Apache Airflow – der Orchestrator
Wie in . erwähnt Orchestratoren – Planen und Überwachen von Workflows, dies ist eine der kritischsten Entscheidungen.
In der Vergangenheit waren ETL-Tools wie Microsoft SQL Server Integration Services (SSIS) und andere weit verbreitet. Dort fanden Ihre Datentransformation, -bereinigung und -normalisierung statt.
In moderneren Architekturen reichen diese Tools nicht mehr aus.
Darüber hinaus sind Code- und Datentransformationslogik für andere datenversierte Mitarbeiter im Unternehmen viel wertvoller.
Ich empfehle dir dringend einen Blogbeitrag von zu lesen Maxime Beauchemin Über Functional Data Engineering – ein modernes Paradigma für die Batch-Datenverarbeitung. Dies geht viel tiefer darauf ein, wie moderne Datenpipelines sein sollten.
Beachten Sie auch die Lektüre von Der Untergang des Dateningenieurs wo Max über das aufbrechende „Datensilo“ und vieles mehr erklärt.
Warum Airflow verwenden?
Apache Airflow ist ein sehr beliebtes Werkzeug für diese Aufgabenorchestrierung. Airflow ist in Python geschrieben. Aufgaben werden als gerichtete azyklische Graphen geschrieben (DAGs). Diese sind ebenfalls in Python geschrieben.
Anstatt Ihre kritische Transformationslogik irgendwo in einem Tool zu kapseln, platzieren Sie sie dort, wo sie hingehört, im Orchestrator.
Ein weiterer Vorteil ist die Verwendung von reinem Python. Es besteht keine Notwendigkeit, andere Abhängigkeiten oder Anforderungen zu kapseln, wie das Abrufen von einem FTP, das Kopieren von Daten von A nach B, das Schreiben einer Batch-Datei. Sie tun das und alles andere am selben Ort.
Merkmale des Luftstroms
Darüber hinaus erhalten Sie an einem Ort einen voll funktionsfähigen Überblick über alle aktuellen Aufgaben.
Weitere relevante Funktionen von Airflow sind, dass Sie Workflows so schreiben, als ob Sie Programme schreiben würden. Externe Jobs wie Databricks, Spark, etc. sind kein Problem.
Jobtests laufen durch Airflow selbst. Dazu gehört die Übergabe von Parametern an andere nachgelagerte Jobs oder die Überprüfung, was auf Airflow ausgeführt wird, und das Anzeigen des tatsächlichen Codes. Die Protokolldateien und andere Metadaten sind über die Web-GUI zugänglich.
(Erneut) nur für Teile des Workflows ausführen und abhängige Aufgaben ist eine entscheidende Funktion, die sofort einsatzbereit ist, wenn Sie Ihre Workflows mit Airflow erstellen. Die Jobs/Aufgaben werden in einem Kontext ausgeführt, der Scheduler übergibt die erforderlichen Details und die Arbeit wird auf Aufgabenebene über Ihren Cluster verteilt, nicht auf DAG-Ebene.
Für viele weitere Funktionen besuchen Sie die volle Liste.
ETL mit Apache Airflow
Wenn Sie mit Apache Airflow als Ihrem neuen ETL-Tool starten möchten, beginnen Sie bitte damit ETL-Best Practices mit Airflow Mit dir geteilt. Es hat einfach ETL-Beispiele, mit einfachem SQL, mit BIENENSTOCK, mit Datentresor, Datentresor 2, und Data Vault mit Big-Data-Prozessen. Es gibt Ihnen einen hervorragenden Überblick darüber, was möglich ist und wie Sie es angehen würden.
Gleichzeitig steht Ihnen ein Docker-Container zur Verfügung, sodass Sie nicht einmal eine Infrastruktur aufbauen müssen. Sie können den Behälter aus ziehen hier.
Für das GitHub-Repo folgen Sie dem Link auf etl-mit-Luftstrom.
Abschluss
Wenn Sie nach einer Open-Source-Datenarchitektur suchen, können Sie Druid für schnelle OLAP-Antworten, Apache Airflow als Orchestrator, der Ihre Datenherkunft und Zeitpläne in Einklang hält, sowie ein benutzerfreundliches Dashboard-Tool wie Apache Superset nicht ignorieren.
Meine bisherige Erfahrung ist, dass Druid verdammt schnell ist und perfekt zu passt OLAP-Cube-Ersetzungen auf traditionelle Weise, benötigt aber immer noch einen entspannteren Start, um Cluster zu installieren, Daten aufzunehmen, Protokolle anzuzeigen usw. Wenn Sie das benötigen, sehen Sie sich an Impy die von den Gründern von Druid erstellt wurde. Es erstellt alle Dienste rund um Druid, die Sie benötigen. Leider ist es jedoch nicht Open Source.
Apache Airflow und seine Funktionen als Orchestrator sind etwas, was in traditionellen Business Intelligence-Umgebungen noch nicht viel passiert ist. Ich glaube, dieser Wandel kommt ganz natürlich, wenn Sie anfangen, Open-Source und mehr neue Technologien zu verwenden.
Und Apache Superset ist eine einfache und schnelle Möglichkeit, die Daten von Druid zu starten und anzuzeigen. Es gibt bessere Tools wie Tableau usw., aber nicht kostenlos. Deshalb passt Superset gut in das Ökosystem, wenn Sie die oben genannten Open-Source-Technologien bereits verwenden. Aber als Unternehmen möchten Sie vielleicht etwas Geld für diese Kategorie ausgeben, denn das können die Benutzer am Ende des Tages sehen.
Verwandte Links:
- Grundlegendes zu den Schlüsselkonzepten von Apache Airflow
- Wie Druid Analysen bei Airbnb ermöglicht
- Google führt Cloud Composer ein, ein neues Tool zur Workflow-Automatisierung für Entwickler
- Ein vollständig verwalteter Workflow-Orchestrierungsdienst basierend auf Apache Airflow
- Integration von Apache Airflow und Databricks: ETL-Pipelines mit Apache Spark erstellen
- ETL mit Apache Airflow
- Was ist Data Engineering und die Zukunft des Data Warehousing
- Implizieren – Managed Druid-Plattform (geschlossene Quelle)
- Ultraschnelle OLAP-Analyse mit Apache Hive und Druid
Ursprünglich veröffentlicht bei www.sspaeti.com am 29.11.2018.