Erfassungs-, ETL- und Streamverarbeitungspipelines mit Azure Databricks und Delta Lake

Azure Databricks
Azure Data Lake Storage
Azure IoT Hub
Azure Data Factory
Azure Event Hubs

Lösungsmöglichkeiten

Dieser Artikel ist ein Lösungsvorschlag. Wenn Sie möchten, dass wir diesen Artikel um weitere Informationen ergänzen, z. B. potenzielle Anwendungsfälle, alternative Dienste, Überlegungen zur Implementierung oder Preisempfehlungen, lassen Sie es uns über Feedback auf GitHub wissen.

Ihre Organisation muss Daten beliebiger Formate, Größen und Geschwindigkeiten einheitlich in der Cloud erfassen. Die Lösung in diesem Artikel erfüllt diese Anforderungen mit einer Architektur, die Extrahieren, Transformieren und Laden (ETL) aus Ihren Datenquellen in einen Data Lake implementiert. Der Data Lake kann alle Daten enthalten, einschließlich transformierten und zusammengestellten Versionen in verschiedenen Staffelungen. Die Daten können für Datenanalysen, Business Intelligence (BI), Berichterstellung, Data Science und maschinelles Lernen verwendet werden.

Apache® und Apache Spark™ sind entweder eingetragene Marken oder Marken der Apache Software Foundation in den USA und/oder anderen Ländern. Die Verwendung dieser Markierungen impliziert kein Endorsement durch die Apache Software Foundation.

Aufbau

Diagram that shows the architecture and data flow for ETL and stream processing with Azure Databricks.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

  1. Daten werden auf folgende Weise aufgenommen:

    • Ereigniswarteschlangen wie Event Hubs, IoT Hub oder Kafka senden Streamingdaten an Azure Databricks, das die optimierte Delta-Engine zum Lesen der Daten verwendet.
    • Geplante oder ausgelöste Pipelines von Data Factory kopieren Daten aus verschiedenen Datenquellen in Rohformaten. Der Autoloader in Azure Databricks verarbeitet die Daten beim Eintreffen.
  2. Azure Databricks lädt die Daten in optimierte, komprimierte Delta Lake-Tabellen oder -Ordner in der Bronze-Ebene in Data Lake Storage.

  3. Streaming-, geplante oder ausgelöste Azure Databricks lesen neue Transaktionen aus der Data Lake Storage-Bronze-Ebene. Die Aufträge verbinden, bereinigen, transformieren und aggregieren die Daten, bevor sie ACID-Transaktionen verwenden, um sie in zusammengestellte Datensätze in die Data Lake Storage-Silver- und -Gold-Ebenen zu laden.

  4. Die Datensätze werden in Delta Lake in Data Lake Storage gespeichert.

Jeder Dienst erfasst Daten in einem gemeinsamen Format, um Einheitlichkeit zu gewährleisten. Die Architektur verwendet einen freigegebenen Data Lake basierend auf dem offenen Delta Lake-Format. Rohdaten werden aus verschiedenen Batch- und Streamingquellen aufgenommen, um eine einheitliche Datenplattform zu bilden. Die Plattform kann für nachfolgende Anwendungsfälle wie Analysen, BI-Berichte, Data Science, KI und maschinelles Lernen verwendet werden.

Speicherebenen Bronze, Silver und Gold

Mit dem Muster „Medallion“, das aus den Speicherebenen Bronze, Silver und Gold besteht, haben Kunden flexiblen Zugriff und erweiterbare Datenverarbeitung.

  • Bronze-Tabellen stellen den Einstiegspunkt für Rohdaten beim Eintreffen in Data Lake Storage. Die Daten werden im Rohdaten-Quellformat erstellt und zur Verarbeitung in das offene, transaktionale Delta Lake-Format konvertiert. Die Lösung bindet die Daten in die Bronze-Schicht ein, indem sie folgendes durchführt:
    • Apache Spark in Azure Databricks Die APIs lesen Streamingereignisse aus Event Hubs oder IoT Hub und konvertieren diese Ereignisse oder Rohdatendateien dann in das Delta Lake-Format.
    • Der Befehl COPY INTO. Verwenden Sie den Befehl, um Daten direkt aus einer Quelldatei oder einem Verzeichnis in Delta Lake zu kopieren.
    • Der Azure Databricks-Autoloader. Der Autoloader greift Dateien auf, wenn sie im Data Lake eintreffen, und schreibt sie in das Delta Lake-Format.
    • Die Data Factory-Kopieraktivität. Kunden können diese Option verwenden, um die Daten aus einem der unterstützten Formate in das Delta Lake-Format zu konvertieren.
  • Silver-Tabellen speichern Daten, während sie für BI- und Data Science-Anwendungsfälle optimiert werden. Die Bronze-Ebene sammelt Rohdaten, und dann werden weitere ETL- und Streamverarbeitungsaufgaben durchgeführt, um die Daten in zusammengestellten Silver-Datasets zu filtern, zu bereinigen, zu transformieren, zu verbinden und zu aggregieren. Unternehmen können eine einheitliche Compute-Engine wie die Open-Standards-Delta-Engineverwenden, wenn sie Azure Databricks als ersten Dienst für diese Aufgaben verwenden. Anschließend können sie vertraute Programmiersprachen wie SQL, Python, R oder Scala verwenden. Unternehmen können auch wiederholbare DevOps und kurzlebige Computecluster verwenden, die auf ihre einzelnen Workloads zugeschnitten sind.
  • Gold-Tabellen enthalten angereicherte Daten, die für Analysen und Berichte bereit sind. Analysten können ihre Methode ihrer Wahl wie PySpark, Koalas, SQL, Power BI und Excel verwenden, um neue Erkenntnisse zu gewinnen und Abfragen zu formulieren.

Komponenten

  • Event Hubs analysiert und wertet Streamingnachrichten aus verschiedenen Quellen, einschließlich lokalen Systemen, aus und stellt Echtzeitinformationen zur Verfügung.
  • Data Factory orchestriert Datenpipelines für die Erfassung, Vorbereitung und Transformation all Ihrer Daten in beliebigem Umfang.
  • Data Lake Storage vereint Streaming- und Batchdaten, einschließlich strukturierter, unstrukturierter und halbstrukturierter Daten wie Protokolle, Dateien und Medien.
  • Azure Databricks bereinigt und transformiert die strukturlosen Datasets und kombiniert sie mit strukturierten Daten aus operativen Datenbanken oder Data Warehouses.
  • IoT Hub bietet Ihnen eine äußerst sichere und zuverlässige Kommunikation zwischen Ihrer IoT-Anwendung und Ihren IoT-Geräten.
  • Delta Lake in Data Lake Storage unterstützt ACID-Transaktionen für Zuverlässigkeit und ist für effiziente Erfassung, Verarbeitung und Abfragen optimiert.

Szenariodetails

Erfassung, ETL und Streamverarbeitung mit Azure Databricks ist einfach, offen und kollaborativ ausgelegt:

  • Einfach: Ein offener Data Lake mit einer zusammengestellten Ebene in einem Open-Source-Format vereinfacht die Datenarchitektur. Delta Lake, ein Open-Source-Tool, bietet Zugriff auf den Azure Data Lake Storage Data Lake. Delta Lake in Data Lake Storage unterstützt ACID-Transaktionen (Atomicity, Consistency, Isolation, Durability, also Unteilbarkeit, Einheitlichkeit, Isolierung, Dauerhaftigkeit), um Zuverlässigkeit zu gewährleisten. Delta Lake ist für effiziente Erfassung, Verarbeitung und Abfragen optimiert.
  • Offen: Die Lösung unterstützt Open-Source-Code, offene Standards und offene Frameworks. Sie funktioniert auch mit gängigen integrierten Entwicklungsumgebungen (IDEs), Bibliotheken und Programmiersprachen. Durch native Konnektoren und APIs arbeitet die Lösung auch mit einer breiten Palette anderer Dienste zusammen.
  • Kollaborativ: Dateningenieure, Datenwissenschaftler und Analysten arbeiten bei dieser Lösung zusammen. Sie können kollaborative Notebooks, IDEs, Dashboards und andere Tools verwenden, um auf gemeinsame zugrunde liegende Daten zuzugreifen und diese zu analysieren.

Azure Databricks lässt sich nahtlos in andere Azure-Dienste wie Data Lake Storage, Azure Data Factory, Azure Event Hubs und Azure IoT Hub integrieren.

Mögliche Anwendungsfälle

Diese Lösung ist an das System angelehnt, das Providence Health Care für Echtzeitanalysen erstellt hat. Jede Branche, die Batch- oder Streamingdaten erfasst, könnte diese Lösung ebenfalls in Betracht ziehen. Beispiele:

  • Einzelhandel und E-Commerce
  • Finance
  • Gesundheitswesen und Biowissenschaften
  • Energieversorger

Nächste Schritte

  • Spanish Point Technologies erstellt seine Matching Engine mithilfe von Azure Databricks und Azure Data Factory, um Daten im großen Stil zu erfassen, damit Musiker fair bezahlt werden können.

Leitfäden und vollständig bereitzustellende Architekturen: