von Will Girten, Josh Seidel, Lin Zhou und Sachin Thakur
Wir freuen uns bekannt zu geben, dass die Unterstützung für die Verwendung von Structured Streaming mit Delta Sharing jetzt in Azure, AWS und GCP allgemein verfügbar (GA) ist! Diese neue Funktion ermöglicht es Datenempfängern auf der Databricks Lakehouse Platform, Änderungen von einer Delta Table zu streamen, die über den Unity Catalog freigegeben wurde.
Datenanbieter können diese Funktion nutzen, um ihr Data-as-a-Service einfach zu skalieren, die Betriebskosten für die Freigabe großer Datensätze zu senken, die Datenqualität durch unmittelbare Datenvalidierung und Qualitätsprüfungen bei Dateneingang zu verbessern und den Kundenservice durch Datenbereitstellung in Echtzeit zu optimieren. Ebenso können Datenempfänger die neuesten Änderungen aus einem freigegebenen Datensatz streamen, was die Infrastrukturkosten für die Verarbeitung großer Batch-Daten reduziert und die Grundlage für modernste Echtzeit-Datenanwendungen schafft. Datenempfänger in vielen Branchen können von dieser neuen Funktion profitieren, zum Beispiel:
Oftmals verlassen sich Datenteams auf Datenpipelines, die im Batch-Modus ausgeführt werden, um ihre Daten zu verarbeiten, da die Batch-Ausführung sowohl robust als auch einfach zu implementieren ist. Heutzutage benötigen Unternehmen jedoch die aktuellsten Daten, um geschäftliche Entscheidungen in Echtzeit zu treffen. Structured Streaming vereinfacht nicht nur die Echtzeitverarbeitung, sondern vereinfacht auch die Batchverarbeitung, indem die Anzahl der Batch-Jobs auf nur wenige Streaming-Jobs reduziert wird. Die Konvertierung von Batch-Datenpipelines in Streaming ist denkbar einfach, da Structured Streaming dieselbe DataFrame-API unterstützt.
In diesem Blogbeitrag untersuchen wir anhand eines Beispiels aus der Finanzbranche, wie Unternehmen Structured Streaming mit Delta Sharing nutzen können, um den geschäftlichen Wert ihrer Daten in Nahezu-Echtzeit zu maximieren. Wir werden auch untersuchen, wie andere ergänzende Funktionen wie Databricks Workflows in Kombination mit Delta Sharing und Unity Catalog verwendet werden können, um eine Echtzeit-Datenanwendung aufzubauen.
Die in den letzten Monaten wohl am sehnlichsten erwartete Funktion von Delta Sharing war die hinzugefügte Unterstützung für die Verwendung einer freigegebenen Delta Table als Quelle in Structured Streaming. Diese neue Funktion ermöglicht es Datenempfängern, Echtzeitanwendungen unter Verwendung von Delta Tables zu erstellen, die über Unity Catalog auf der Databricks Lakehouse Platform freigegeben wurden.

Schauen wir uns genauer an, wie ein Datenempfänger Informationen zu öffentlich gehandelten Aktiensymbolen streamen kann, um Einblicke für den Handel in Echtzeit zu gewinnen. In diesem Artikel wird der Datensatz FINRA CAT Reportable Equity Securities Symbol Master verwendet, der alle Aktien und Eigenkapitalwertpapiere auflistet, die über das U.S. National Market System (NMS) gehandelt werden. Structured Streaming kann zum Erstellen von Echtzeitanwendungen verwendet werden, ist aber auch in Szenarien nützlich, in denen Daten weniger häufig eintreffen. Für eine einfache Notebook-Demonstration verwenden wir einen Datensatz, der im Laufe des Tages dreimal aktualisiert wird – einmal zu Beginn des Transaktionsdatums (SOD), ein zweites Mal im Laufe des Tages, um etwaige Intraday-Änderungen zu berücksichtigen, und ein drittes Mal am Ende des Transaktionsdatums (EOD). An Wochenenden oder US-Feiertagen werden keine Updates veröffentlicht.
| Veröffentlichte Datei | Zeitplan |
|---|---|
| CAT Reportable Equity Securities Symbol Master – SOD | 6:00 Uhr EST |
| CAT Reportable Options Securities Symbol Master – SOD | 6:00 Uhr EST |
| Mitglieder-ID (IMID)-Liste | 6:00 Uhr EST |
| Mitglieder-ID (IMID)-Konfliktliste | 6:00 Uhr EST |
| CAT Reportable Equity Securities Symbol Master – Intraday | 10:30 Uhr EST und ca. alle 2 Stunden, bis die EOD-Datei veröffentlicht wird |
| CAT Reportable Options Securities Symbol Master – Intraday | 10:30 Uhr EST und ca. alle 2 Stunden, bis die EOD-Datei veröffentlicht wird |
| CAT Reportable Equity Securities Symbol Master – EOD | 20:00 Uhr EST |
| CAT Reportable Options Securities Symbol Master – EOD | 20:00 Uhr EST |
Tabelle 1.1 - Die Symbol- und Mitglieder-Referenzdaten von FINRA CAT werden während des gesamten Arbeitstages veröffentlicht. An Wochenenden oder US-Feiertagen werden keine Updates veröffentlicht.
Einer der Hauptvorteile der Databricks Lakehouse Platform besteht darin, dass sie das kontinuierliche Streamen von Änderungen in eine Delta Table extrem einfach macht. Wir beginnen zunächst mit der Definition einer einfachen Python-Aufgabe, die die FINRA CAT-Aktiensymboldatei zu Beginn des Transaktionsdatums (SOD) herunterlädt. Anschließend speichern wir die veröffentlichte Datei in einem temporären Verzeichnis auf dem Databricks-Dateisystem.
Code 1.1. – Eine einfache Python-Aufgabe kann die FINRA CAT-Aktiensymboldatei zu Beginn des Handelstages herunterladen.
Demonstrationshalber definieren wir auch eine Funktion, die die Rohdatei einliest und bei jeder Veröffentlichung einer aktualisierten Datei kontinuierlich eine Bronze-Tabelle in unserem Delta Lake aktualisiert.
Code 1.2 – Die FINRA CAT-Aktiensymboldaten werden zu Beginn jedes Handelstages in eine Delta Table eingelesen.
Sobald er gestartet ist, beginnt der Databricks Workflow jedes Mal mit dem Befüllen des CAT-Aktiensymbol-Datensatzes, wenn die Datei zu Beginn des Handelstages veröffentlicht wird.

Nachdem wir nun eine Streaming-Pipeline erstellt haben, um Aktualisierungen der Symbol-Datei an jedem Handelstag einzulesen, können wir Delta Sharing nutzen, um die Delta Table mit Datenempfängern zu teilen. Das Erstellen eines Delta Share auf der Databricks Lakehouse Platform ist mit nur wenigen Klicks oder über eine einzelne SQL-Anweisung möglich, wenn die SQL-Syntax bevorzugt wird.

Ebenso kann ein Datenanbieter einen Delta Share mit einer oder mehreren Tabellen füllen, indem er auf die Schaltfläche „Manage assets“ und anschließend auf „Edit tables“ klickt. In diesem Fall wird die Bronze Delta Table, die die Aktiensymboldaten enthält, zum Share-Objekt hinzugefügt.

Beachten Sie, dass die vollständige Historie einer Delta-Tabelle geteilt werden muss, um das Lesen mittels Structured Streaming zu unterstützen. Die Freigabe der Historie ist standardmäßig aktiviert, wenn Sie eine Delta-Tabelle über die Databricks-Benutzeroberfläche zu einem Share hinzufügen. Bei Verwendung der SQL-Syntax muss die Historienfreigabe jedoch explizit angegeben werden.
Code 1.4 – Die Historie einer Delta-Tabelle muss explizit geteilt werden, um Structured Streaming-Lesezugriffe bei Verwendung der SQL-Syntax zu unterstützen.

Als Datenempfänger ist das Streaming von einer geteilten Delta-Tabelle genauso einfach! Nachdem der Delta Share mit einem Datenempfänger geteilt wurde, sieht der Empfänger den Share sofort unter den Anbieterdetails in Unity Catalog. Anschließend kann der Datenempfänger einen neuen Katalog in Unity Catalog erstellen, indem er auf die Schaltfläche „Create catalog“ klickt, einen aussagekräftigen Namen angibt und optional einen Kommentar zur Beschreibung des Share-Inhalts hinzufügt.
Datenempfänger können ab Databricks Runtime 12.1 von einer über Unity Catalog geteilten Delta Table streamen. In diesem Beispiel haben wir einen Databricks-Cluster mit installierter Databricks 12.2 LTS Runtime verwendet. Ein Datenempfänger kann die geteilte Delta-Tabelle als Spark Structured Stream lesen, indem er die Datenquelle deltaSharing nutzt und den Namen der geteilten Tabelle angibt.
Code 1.4 – Ein Datenempfänger kann über die Datenquelle deltaSharing von einer geteilten Delta Table streamen.
Als weiteres Beispiel kombinieren wir den geteilten CAT-Aktiensymbol-Stammdatensatz mit einem Datensatz zur Aktienkurshistorie, der sich lokal im Unity Catalog des Datenempfängers befindet. Wir beginnen mit der Definition einer Hilfsfunktion zum Abrufen der wöchentlichen Aktienkurshistorie für ein bestimmtes Aktiensymbol.
Als Nächstes verknüpfen wir den Aktien-Stammdatenstream mit den lokalen Aktienkurshistorien von 3 großen Tech-Aktien – Apple Inc. (AAPL), Microsoft Corporation (MSFT) und Invidia Corporation (NVDA).
Schließlich kann der Datenempfänger einen optionalen Ziel-Sink hinzufügen und die Streaming-Abfrage starten.

Ich hoffe, dieses Beispiel hat Ihnen gezeigt, wie Unternehmen Delta Sharing nutzen können, um den Geschäftswert ihrer Daten nahezu in Echtzeit zu maximieren.
Möchten Sie mit Delta Sharing beginnen, wissen aber nicht, wo Sie anfangen sollen? Wenn Sie bereits Databricks-Kunde sind, folgen Sie der Anleitung für die ersten Schritte mit Delta Sharing (AWS | Azure | GCP). Lesen Sie die Dokumentation, um mehr über die in dieser Funktion enthaltenen Konfigurationsoptionen zu erfahren. Wenn Sie noch kein Databricks-Kunde sind, registrieren Sie sich für eine kostenlose Testversion mit einem Premium- oder Enterprise-Workspace.
Wir möchten uns ganz besonders für all die Beiträge zu diesem Release bedanken, unter anderem bei Abhijit Chakankar, Lin Zhou und Shixiong Zhu.
(Dieser Blogbeitrag wurde mit KI-gestützten Tools übersetzt.) Originalbeitrag
Abonnieren Sie unseren Blog und erhalten Sie die neuesten Beiträge direkt in Ihren Posteingang.