I dati degli eventi da IoT, clickstream e telemetria delle applicazioni alimentano analitiche critiche e IA in tempo reale se combinati con la Databricks Data Intelligence Platform. Tradizionalmente, l'ingestion di questi dati richiedeva diversi passaggi (message bus, job di Spark) tra la sorgente di dati e la lakehouse. Ciò aggiunge un onere operativo, causa la duplicazione dei dati, richiede competenze specialistiche ed è generalmente inefficiente quando il lakehouse è l'unica destinazione per questi dati.
Una volta che questi dati arrivano nella lakehouse, vengono trasformati e curati per casi d'uso analitici a valle. Tuttavia, i team spesso devono servire questi dati analitici per casi d'uso operativi e la creazione di queste applicazioni personalizzate può essere un processo laborioso. Devono eseguire il provisioning e la manutenzione di componenti infrastrutturali essenziali come un'istanza di database OLTP dedicata (con rete, monitoraggio, backup e altro ancora). Inoltre, devono gestire il processo di ETL inverso per i dati analitici nel database per renderli nuovamente disponibili nell'applicazione in tempo reale. Ciò richiederebbe al team di creare pipeline aggiuntive per trasferire i dati dalla lakehouse al database operativo esterno. Queste pipeline si aggiungono all'infrastruttura che gli sviluppatori devono configurare e mantenere, il che, nel complesso, distoglie la loro attenzione dall'obiettivo principale: creare le applicazioni per la loro attività.
In che modo, quindi, Databricks semplifica sia l'ingestione di dati nel lakehouse sia la fornitura di dati gold per supportare i carichi di lavoro operativi?
Entrano in gioco Zerobus Ingest e Lakebase.
Zerobus Ingest, parte di Lakeflow Connect, è un set di API che fornisce un modo semplificato per inviare i dati degli eventi direttamente nel lakehouse. Eliminando completamente il livello del message bus a sink singolo, Zerobus Ingest riduce l'infrastruttura, semplifica le attività operative e offre un'ingestion quasi in tempo reale su larga scala. In questo modo, Zerobus Ingest rende più facile che mai sfruttare il valore dei dati.
L'applicazione che produce i dati deve specificare una tabella di destinazione in cui scrivere i dati, assicurarsi che i messaggi siano mappati correttamente sullo schema della tabella e quindi avviare uno stream per inviare i dati a Databricks. Sul lato Databricks, l'API convalida gli schemi del messaggio e della tabella, scrive i dati nella tabella di destinazione e invia al client una conferma che i dati sono stati resi persistenti.
Capacità di ingestione Zerobus | Specifiche |
Latenza di ingestion | Quasi in tempo reale (≤5 secondi) |
Throughput massimo per client | Fino a 100 MB/s |
Client simultanei | Migliaia per tabella |
Ritardo di sincronizzazione continuo (Delta → Lakebase) | 10-15 secondi |
Latenza dello scrittore foreach in tempo reale | 200-300 millisecondi |
Lakebase è un database Postgres serverless, scalabile e completamente gestito, integrato nella piattaforma Databricks e progettato per carichi di lavoro operativi e transazionali a bassa latenza, eseguiti direttamente sugli stessi dati che alimentano i casi d'uso di analisi e IA.
La separazione completa tra compute e archiviazione offre provisioning rapido e autoscaling elastico. L'integrazione di Lakebase con la Databricks Platform è un importante elemento di differenziazione rispetto ai database tradizionali, perché Lakebase rende i dati di Lakehouse direttamente disponibili sia per le applicazioni in tempo reale che per l'IA, senza la necessità di complesse pipeline di dati personalizzate. È progettato per soddisfare i requisiti di creazione di database, latenza delle query e concorrenza per alimentare applicazioni aziendali e carichi di lavoro agentivi. Infine, consente agli sviluppatori di gestire facilmente il controllo delle versioni e creare branch dei database, come si fa con il codice.
Insieme, questi strumenti consentono ai clienti di acquisire dati da diversi sistemi direttamente nelle tabelle Delta e di implementare casi d'uso di ETL inverso su larga scala. Successivamente, vedremo come utilizzare queste tecnologie per implementare un'applicazione quasi in tempo reale!
Come esempio pratico, aiutiamo 'Data Diners', un'azienda di food delivery, a fornire al proprio management un'applicazione per monitorare in tempo reale l'attività dei driver e le consegne degli ordini. Attualmente, questa visibilità è carente, il che limita la loro capacità di mitigare i problemi non appena si presentano durante le consegne.
Perché un'applicazione in tempo reale è preziosa?
Vediamo come realizzarlo con Zerobus Ingest, Lakebase e Databricks Apps sulla Data Intelligence Platform!

Questa architettura end-to-end segue quattro fasi: (1) un produttore di dati utilizza l'SDK Zerobus per scrivere eventi direttamente in una tabella Delta in Databricks Unity Catalog. (2) Una pipeline di sincronizzazione continua esegue il push dei record aggiornati dalla tabella Delta a un'istanza Lakebase Postgres. (3) Un backend FastAPI si connette a Lakebase tramite WebSockets per lo streaming di aggiornamenti in tempo reale. (4) Un'applicazione front-end basata su Databricks Apps visualizza i dati in tempo reale per gli utenti finali.
Partendo dal nostro produttore di dati, l'app "data diner" sul telefono del driver emetterà dati di telemetria GPS sulla posizione del driver (coordinate di latitudine e longitudine) durante il tragitto per la consegna degli ordini. Questi dati verranno inviati a un gateway API, che alla fine li invierà al servizio successivo nell'architettura di acquisizione.
Con l'SDK di Zerobus, possiamo scrivere rapidamente un client per inoltrare gli eventi dal gateway API alla nostra tabella di destinazione. Con l'aggiornamento della tabella di destinazione quasi in tempo reale, possiamo quindi creare una pipeline di sincronizzazione continua per aggiornare le nostre tabelle Lakebase. Infine, sfruttando Databricks Apps, possiamo distribuire un backend FastAPI che utilizza WebSockets per lo stream di aggiornamenti in tempo reale da Postgres, insieme a un'applicazione front-end per visualizzare il flusso di dati in tempo reale.
Prima dell'introduzione dell'SDK Zerobus, l'architettura di streaming avrebbe incluso passaggi multipli prima di arrivare alla tabella di destinazione. Il nostro gateway API avrebbe dovuto scaricare i dati in un'area di staging come Kafka e avremmo avuto bisogno di Spark Structured Streaming per scrivere le transazioni nella tabella di destinazione. Tutto ciò aggiunge una complessità non necessaria, soprattutto considerando che l'unica destinazione è il lakehouse. L'architettura sopra riportata dimostra invece come la Databricks Data Intelligence Platform semplifichi lo sviluppo di applicazioni aziendali end-to-end, dall'ingestion dei dati alle analitiche in tempo reale e all'implementazione di applicazioni interattive.
Prerequisiti: cosa serve
I dati degli eventi prodotti dalle applicazioni client risiederanno in una tabella Delta. Utilizza il codice seguente per creare la tabella di destinazione nel catalogo e nello schema desiderati.
Il codice seguente invia i dati degli eventi di telemetria a Databricks utilizzando l'API Zerobus.
Ad oggi, Zerobus Ingest non supporta CDF. CDF consente a Databricks di registrare gli eventi di modifica per i nuovi dati scritti in una tabella Delta. Questi eventi di modifica possono essere inserimenti, eliminazioni o aggiornamenti. Questi eventi di modifica possono quindi essere utilizzati per aggiornare le tabelle sincronizzate in Lakebase. Per sincronizzare i dati su Lakebase e continuare con il nostro progetto, scriveremo i dati della tabella di destinazione in una nuova tabella e abiliteremo il CDF su di essa.
Per alimentare l'app, sincronizzeremo i dati da questa nuova tabella abilitata per CDF in un'istanza di Lakebase. Sincronizzeremo questa tabella continuamente per supportare la nostra dashboard quasi in tempo reale.

Nella UI, selezioniamo:
Ciò garantisce che l'app rifletta i dati più recenti con un ritardo minimo.
Nota: è anche possibile creare la pipeline di sincronizzazione a livello di codice utilizzando l'SDK di Databricks.
Le sincronizzazioni continue da Delta a Lakebase hanno un ritardo di 10-15 secondi, quindi se hai bisogno di una latenza inferiore, valuta la possibilità di utilizzare la modalità in tempo reale tramite il writer ForeachWriter per sincronizzare i dati direttamente da un DataFrame a una tabella Lakebase. In questo modo i dati verranno sincronizzati in pochi millisecondi.
Consulta il codice di Lakebase ForeachWriter su Github.

Con i dati sincronizzati in Lakebase, ora puoi distribuire il tuo codice per creare la tua app. In questo esempio, l'app recupera i dati degli eventi da Lakebase e li utilizza per aggiornare un'applicazione quasi in tempo reale per monitorare l'attività di un driver mentre è in viaggio per effettuare consegne di cibo. Leggi la documentazione introduttiva su Databricks Apps per saperne di più sulla creazione di app su Databricks.
Consulta altri tutorial, demo e acceleratori di soluzioni per creare le tue applicazioni per le tue esigenze specifiche.
Scopri di più su Zerobus Ingest, Lakebase e Databricks Apps nella documentazione tecnica. Puoi anche dare un'occhiata a Databricks Apps Cookbook e alla Cookbook Resource Collection.
Le applicazioni IoT, clickstream, di telemetria e simili generano miliardi di dati ogni giorno, che vengono utilizzati per alimentare applicazioni critiche in tempo reale in diversi settori industriali. Pertanto, la semplificazione dell'acquisizione da questi sistemi è fondamentale. Zerobus Ingest offre un modo semplificato per trasferire i dati degli eventi direttamente da questi sistemi nel lakehouse, garantendo al contempo prestazioni elevate. Si abbina perfettamente a Lakebase per semplificare lo sviluppo di applicazioni aziendali end-to-end.
(Questo post sul blog è stato tradotto utilizzando strumenti basati sull'intelligenza artificiale) Post originale
