Siamo entusiasti di annunciare che il supporto per l'uso di Structured Streaming con Delta Sharing è ora disponibile a livello generale (GA) in Azure, AWS e GCP! Questa nuova funzionalità consentirà ai destinatari dei dati sulla piattaforma Databricks Lakehouse di trasmettere in streaming le modifiche da una Delta Table condivisa tramite Unity Catalog.
I fornitori di dati possono sfruttare questa funzionalità per scalare facilmente il proprio data-as-a-service, ridurre i costi operativi di condivisione di set di dati di grandi dimensioni, migliorare la qualità dei dati con la convalida immediata e i controlli di qualità all'arrivo dei nuovi dati, e migliorare il servizio clienti con la consegna dei dati in tempo reale. Allo stesso modo, i destinatari dei dati possono trasmettere in streaming le ultime modifiche da un set di dati condiviso, riducendo i costi di infrastruttura legati all'elaborazione di grandi quantitativi di dati batch e ponendo le basi per applicazioni dati in tempo reale all'avanguardia. I destinatari dei dati in molti settori verticali possono trarre beneficio da questa nuova funzionalità, ad esempio:
Spesso i team dati si affidano a pipeline di dati eseguite in modalità batch per elaborare i propri dati, in quanto l'esecuzione batch è sia robusta che facile da implementare. Tuttavia, oggi le organizzazioni hanno bisogno degli ultimi dati in arrivo per prendere decisioni di business in tempo reale. Structured Streaming non solo semplifica l'elaborazione in tempo reale, ma semplifica anche l'elaborazione batch riducendo il numero di job batch a solo pochi job di streaming. La conversione delle pipeline di dati batch in streaming è immediata, poiché Structured Streaming supporta la stessa API DataFrame.
In questo articolo del blog, esploreremo come le aziende possono sfruttare Structured Streaming con Delta Sharing per massimizzare il valore aziendale dei propri dati in tempo quasi reale tramite un esempio nel settore finanziario. Esamineremo anche come altre funzionalità complementari, come Databricks Workflows, possano essere utilizzate insieme a Delta Sharing e Unity Catalog per creare un'applicazione dati in tempo reale.
Forse la funzionalità di Delta Sharing più attesa negli ultimi mesi è stato proprio l'aggiunta del supporto per l'uso di una Delta Table condivisa come origine in Structured Streaming. Questa nuova funzionalità consentirà ai destinatari dei dati di creare applicazioni in tempo reale utilizzando le Delta Table condivise tramite Unity Catalog sulla piattaforma Databricks Lakehouse.

Oserviamo più da vicino come un destinatario di dati potrebbe trasmettere in streaming le informazioni sui simboli azionari quotati in borsa per ottenere insight di trading in tempo reale. Questo articolo utilizzerà il dataset FINRA CAT Reportable Equity Securities Symbol Master, che elenca tutti i titoli azionari scambiati nel National Market System (NMS) statunitense. Structured Streaming può essere utilizzato per creare applicazioni in tempo reale, ma può anche essere utile in scenari in cui i dati arrivano meno frequentemente. Per una semplice dimostrazione in un notebook, utilizzeremo un set di dati aggiornato tre volte durante il giorno: una volta all'inizio della data di transazione (SOD), una seconda volta durante il giorno per riflettere eventuali modifiche intraday e una terza volta alla fine della data di transazione (EOD). Non vengono pubblicati aggiornamenti nei fine settimana o nelle festività statunitensi.
| File pubblicato | Pianificazione |
|---|---|
| CAT Reportable Equity Securities Symbol Master – SOD | 06:00 EST |
| CAT Reportable Options Securities Symbol Master – SOD | 06:00 EST |
| Elenco Member ID (IMID) | 06:00 EST |
| Elenco conflitti Member ID (IMID) | 06:00 EST |
| CAT Reportable Equity Securities Symbol Master – Intraday | 10:30 EST, e circa ogni 2 ore fino alla pubblicazione del file EOD |
| CAT Reportable Options Securities Symbol Master – Intraday | 10:30 EST, e circa ogni 2 ore fino alla pubblicazione del file EOD |
| CAT Reportable Equity Securities Symbol Master – EOD | 20:00 EST |
| CAT Reportable Options Securities Symbol Master – EOD | 20:00 EST |
Tabella 1.1 - I dati di riferimento per simboli e membri FINRA CAT vengono pubblicati durante la giornata lavorativa. Non sono pubblicati aggiornamenti nei fine settimana o nelle festività statunitensi.
Uno dei vantaggi principali della piattaforma Databricks Lakehouse è che rende estremamente semplice lo streaming continuo delle modifiche in una Delta Table. Inizieremo definendo un semplice task Python che scarica il file dei simboli azionari FINRA CAT all'inizio della data di transazione (SOD). Successivamente, salveremo il file pubblicato in una directory temporanea nel filesystem di Databricks.
Codice 1.1. - Un semplice task Python può scaricare il file dei simboli azionari FINRA CAT all'inizio della giornata di negoziazione.
Per dimostrazione, definiremo anche una funzione che ingerisca il file grezzo e aggiorni continuamente una tabella bronze nel nostro Delta Lake ogni volta che viene pubblicato un file aggiornato.
Codice 1.2 - I dati dei simboli azionari FINRA CAT vengono inseriti in una Delta Table all'inizio di ogni giornata di negoziazione.
Una volta avviato, Databricks Workflow inizierà a popolare il dataset dei simboli azionari CAT ogni volta che il file viene pubblicato all'inizio della giornata di negoziazione.

Ora che abbiamo creato una pipeline di streaming per inserire gli aggiornamenti al file dei simboli ad ogni giorno di contrattazione, possiamo sfruttare Delta Sharing per condividere la Delta Table con i destinatari dei dati. La creazione di una condivisione Delta Share sulla piattaforma Databricks Lakehouse può essere effettuata con pochi clic o con una singola istruzione SQL se si preferisce la sintassi SQL.

Allo stesso modo, un fornitore di dati può popolare una Delta Share con una o più tabelle facendo clic sul pulsante 'Manage assets', seguito dal pulsante 'Edit tables'. In questo caso, la Delta Table bronze contenente i dati dei simboli azionari viene aggiunta all'oggetto Share.

Notare che l'intera cronologia di una tabella Delta deve essere condivisa per supportare le letture mediante Structured Streaming. La condivisione della cronologia è abilitata per impostazione predefinita quando si usa l'interfaccia utente di Databricks per aggiungere una tabella Delta a una condivisione Share. Tuttavia, la condivisione della cronologia deve essere specificata in modo esplicito quando si usa la sintassi SQL.
Codice 1.4 - La cronologia di una tabella Delta deve essere condivisa esplicitamente per supportare le letture Structured Streaming quando si usa la sintassi SQL.

Come destinatario dei dati, lo streaming da una tabella Delta condivisa è ugualmente semplice! Dopo che la Delta Share è stata condivisa con un destinatario dei dati, questo vedrà immediatamente la condivisione Share apparire sotto i dettagli del fornitore in Unity Catalog. Successivamente, il destinatario dei dati può creare un nuovo catalogo in Unity Catalog facendo clic sul pulsante 'Create catalog', fornendo un nome significativo e aggiungendo un commento opzionale per descrivere il contenuto della Share.
I destinatari dei dati possono eseguire lo streaming da una Delta Table condivisa tramite Unity Catalog utilizzando Databricks Runtime 12.1 o superiore. In questo esempio, abbiamo utilizzato un cluster Databricks con Databricks 12.2 LTS Runtime installato. Un destinatario dei dati può leggere la tabella Delta condivisa come uno Spark Structured Stream utilizzando l'origine dati deltaSharing e fornendo il nome della tabella condivisa.
Codice 1.4 - Un destinatario dei dati può eseguire lo streaming da una Delta Table condivisa utilizzando l'origine dati deltaSharing.
Come ulteriore esempio, combiniamo il dataset principale dei simboli azionari CAT condiviso con un dataset di cronologia dei prezzi delle azioni, locale al Unity Catalog del destinatario dei dati. Inizieremo definendo una funzione di utilità per ottenere la cronologia settimanale dei prezzi delle azioni per un dato simbolo ticker azionario.
Successivamente, uniremo lo stream di dati principale sui titoli azionari con le cronologie dei prezzi delle azioni locali di 3 grandi società tecnologiche: Apple Inc. (AAPL), Microsoft Corporation (MSFT) e Invidia Corporation (NVDA).
Infine, il destinatario dei dati può aggiungere un sink di destinazione opzionale e avviare la query di streaming.

Speriamo che questo esempio di come le organizzazioni possano sfruttare Delta Sharing per massimizzare il valore aziendale dei loro dati quasi in tempo reale ti sia piaciuto.
Vuoi iniziare a utilizzare Delta Sharing ma non sai da dove partire? Se sei già un cliente Databricks, segui la guida per iniziare a utilizzare Delta Sharing (AWS | Azure | GCP). Leggi la documentazione per scoprire di più sulle opzioni di configurazione incluse in questa funzionalità. Se non sei ancora un cliente Databricks, registrati per una prova gratuita con un workspace Premium o Enterprise.
Desideriamo rivolgere un ringraziamento speciale per tutti i contributi a questa release, inclusi quelli di Abhijit Chakankar, Lin Zhou e Shixiong Zhu.
(Questo post sul blog è stato tradotto utilizzando strumenti basati sull'intelligenza artificiale) Post originale
Iscriviti al nostro blog e ricevi gli ultimi articoli direttamente nella tua casella di posta.