Passa al contenuto principale

Creazione di un'applicazione quasi in tempo reale con Zerobus Ingest e Lakebase

Scopri come semplificare l'acquisizione dei dati per i casi d'uso di IoT, clickstream e telemetria su Databricks

Application Architecture: Zerobus Ingest + Lakebase + Databricks Apps

Pubblicato: 6 marzo 2026

Soluzioni9 min di lettura

Summary

  • Scopri come Zerobus Ingest elimina le architetture multi-hop per i casi d'uso di IoT, clickstream e telemetria
  • Guarda come Lakebase elimina pipeline ETL complesse e personalizzate e integra i dati transazionali per i casi d'uso operativi
  • Crea una dashboard quasi in tempo reale utilizzando Zerobus Ingest, Lakebase e Databricks Apps

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.

Informazioni su Zerobus Ingest

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.

Vantaggi principali di Zerobus Ingest:

  • Architettura semplificata: elimina la necessità di flussi di lavoro complessi e la duplicazione dei dati.
  • Prestazioni su larga scala: supporta l'acquisizione quasi in tempo reale (fino a 5 secondi) e consente a migliaia di client di scrivere sulla stessa tabella (fino a 100 MB/sec di throughput per client).
  • Integrazione con la Data Intelligence Platform: accelera il time-to-value consentendo ai team di applicare strumenti di analitiche e IA, come MLflow per il rilevamento delle frodi, direttamente sui dati.

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

Informazioni su Lakebase

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.

Vantaggi principali di Lakebase:

  • Sincronizzazione automatica dei dati: possibilità di sincronizzare facilmente i dati dalla Lakehouse (livello analitico) a Lakebase su base snapshot, pianificata o continua, senza la necessità di pipeline esterne complesse.
  • Integrazione con la piattaforma Databricks: Lakebase si integra con Unity Catalog, Lakeflow Connect, Spark Declarative Pipelines, Databricks Apps e altro ancora.
  • Autorizzazioni e governance integrate: gestione coerente di ruoli e autorizzazioni per dati operativi e analitici. Le autorizzazioni native di Postgres possono comunque essere mantenute tramite il protocollo Postgres.

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 creare 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? 

  • Consapevolezza operativa: il management può vedere istantaneamente dove si trova ogni driver e come procedono le sue consegne. Ciò significa meno punti ciechi in caso di ordini in ritardo o quando un driver ha bisogno di assistenza.
  • Mitigazione dei problemi: i dati sulla posizione e sullo stato in tempo reale consentono agli spedizionieri di reindirizzare i Driver, modificare le priorità o contattare proattivamente i clienti in caso di ritardi, riducendo le consegne mancate o in ritardo.

Vediamo come realizzarlo con Zerobus Ingest, Lakebase e Databricks Apps sulla Data Intelligence Platform!

Panoramica dell'architettura dell'applicazione

Architettura dell'applicazione: Produttore di dati, Zerobus Ingest, Delta, Lakebase, App Databricks

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.

LEADER PER LA 5ª VOLTA

Gartner®: Databricks leader dei database cloud

Guida introduttiva

Prerequisiti: cosa serve

Passaggio 1: creare una tabella di destinazione in Databricks Unity Catalog

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.

Passaggio 2: Eseguire l'autenticazione tramite OAUTH

Passaggio 3: creare il client Zerobus e inserire i dati nella tabella di destinazione

Il codice seguente invia i dati degli eventi di telemetria a Databricks utilizzando l'API Zerobus. 

Limitazione e soluzione alternativa per il Change Data Feed (CDF)

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.

Passaggio 4: eseguire il provisioning di Lakebase e sincronizzare i dati con l'istanza del database

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.

Crea una tabella sincronizzata in un'istanza di Lakebase

Nella UI, selezioniamo:

  • Modalità di sincronizzazione: Continua per aggiornamenti a bassa latenza
  • Chiave primaria: table_primary_key

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.

Modalità in tempo reale tramite foreach writer

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.

Passaggio 5: creare l'app con FastAPI o un altro framework a scelta

Screenshot dell'applicazione RideShare360

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. 

Risorse aggiuntive

Consulta altri tutorial, demo e acceleratori di soluzioni per creare le tue applicazioni per le tue esigenze specifiche. 

  • Creare un'applicazione end-to-end: un simulatore di navigazione in tempo reale tiene traccia di una flotta di barche a vela utilizzando l'SDK di Python e l'API REST, con le app di Databricks e i Databricks Asset Bundle. Leggi il blog
  • Crea una soluzione di gemelli digitali: Scopri come massimizzare l'efficienza operativa, accelerare gli approfondimenti in tempo reale e la manutenzione predittiva con Databricks Apps e Lakebase. Leggi il blog

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.

Conclusione

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

Non perdere mai un post di Databricks

Iscriviti al nostro blog e ricevi gli ultimi post direttamente nella tua casella di posta elettronica.