von Simon Späti

Verwenden Sie diese Open-Source-Tools für Data Warehousing

Verwenden Sie diese Open Source Tools fur Data Warehousing
Data Warehousing mit Open-Source-Druid, Apache Airflow & Superset

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.

1627335243 516 Verwenden Sie diese Open Source Tools fur Data Warehousing

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.

1627335243 766 Verwenden Sie diese Open Source Tools fur Data Warehousing

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.

Verwenden Sie diese Open Source Tools fur Data Warehousing

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:

Ursprünglich veröffentlicht bei www.sspaeti.com am 29.11.2018.