Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Zerobus Ingest è un'API di streaming basata su push che scrive dati direttamente nelle tabelle Delta del Catalogo Unity ad alta scala, senza un bus di messaggi da eseguire. Il flusso di lavoro è composto da due fasi: creare una tabella e poi inviare i dati. Zerobus Ingest elimina la necessità di gestire partizioni, broker o pipeline. È un endpoint serverless che è attivo di default nel tuo workspace e scala man mano che apri più connessioni.
Progettato per un throughput elevato e un aggiornamento quasi in tempo reale, Zerobus Ingest gestisce scritture concorrenti ad alto volume da migliaia di client nella stessa tabella e scrive i record in Delta nel giro di pochi secondi, così i dati sono pronti per essere interrogati quasi non appena arrivano.
- Zerobus Ingest è disponibile in alcune regioni. Il tuo spazio di lavoro e la tabella target devono essere entrambi in una regione supportata. Per l'elenco delle regioni supportate, vedi Disponibilità di ingestione.
Progettato per un'alta scalabilità
Zerobus Ingest è progettato per un'alta scalabilità, senza che tu pianifichi la capacità. Ha assorbito oltre 1 trilione di record in una singola tabella Delta in meno di 24 ore, gestendo scritture concomitanti ad alto volume da migliaia di clienti, come descritto nel post sul blog Ingesting the Milky Way: Petabyte-Scale with Zerobus Ingest . Per le quote di throughput predefinite, consulta quote di Zerobus Ingest.
Un client "hello world" e un carico di lavoro su scala petabyte eseguono essenzialmente lo stesso codice. Puoi scalare eseguendo più producer, non riscrivendo la tua applicazione.
Zerobus Ingest è serverless: aggiunge e rimuove capacità man mano che il carico cambia. I flussi agiscono come unità di partizionamento dinamico che il servizio apre, chiude e ruota per ribilanciare la capacità man mano che la domanda cambia.
Per capire come Zerobus Ingest ottiene questo risultato, vedi come Zerobus Ingest si adatta alla scalabilità.
Nessun bus di messaggi richiesto
Molti team inseriscono un bus di messaggi come Kafka tra i propri producer e le proprie tabelle esclusivamente per fare da buffer ai dati nel loro percorso verso il lakehouse. Questo aggiunge passaggi, costi e overhead operativo: broker da dimensionare, partizioni da ribilanciare e lag dei consumer da monitorare. Zerobus Ingest rimuove quel livello intermedio, permettendo ai produttori di scrivere direttamente su Delta.
Un bus di messaggi è ancora lo strumento giusto quando gli stessi dati alimentano molti consumer esterni al lakehouse, quando serve la messaggistica tra microservizi o per la distribuzione di un messaggio a più destinatari. In questi casi, quando vuoi anche tali dati nel lakehouse, usa i connettori di streaming gestiti di Azure Databricks per replicare i dati dal bus di messaggi. Ma quando la casa sul lago è la destinazione, Zerobus Ingerit è un percorso più semplice e diretto.
Come funziona
Un produttore apre uno stream verso Zerobus Ingest e invia i record a una tabella Delta target. Il servizio valida ogni record rispetto allo schema della tabella e lo rende duraturo. Una volta che un disco è duro, Zerobus Ingest lo riconosce rapidamente, così il tuo produttore può continuare a inviare dischi senza dover aspettare per ognuno di essi. I dati vengono materializzati nella tabella poco dopo, tipicamente in pochi secondi. Il design dinamico e senza partizioni di Zerobus Ingest rende l'ingestione elastica, così la sua capacità di elaborazione serverless si adatta ai tuoi carichi di lavoro.
Per una spiegazione più approfondita dei flussi e di come si espande Zerobus Ingest, consulta i concetti di Zerobus Ingest. Per il modello di comunicazione asincrona tra client e server, vedi Comunicazione asincrona.
Crea una tabella e poi invia i dati
Qualsiasi applicazione che possa utilizzare un SDK di Ingest Zerobus o chiamare un'API supportata (gRPC, REST o OpenTelemetry) può trasferire dati in una tabella Delta. Lo schema della tabella definisce cosa deve contenere ogni record. Per prima cosa, crea la tabella target:
CREATE TABLE main.default.air_quality (
device_name STRING,
temp INT,
humidity INT
);
Poi, dopo aver concesso a un service principal l'accesso alla tabella, acquisire un record richiede solo poche righe di codice:
from zerobus.sdk.sync import ZerobusSdk
from zerobus.sdk.shared import TableProperties
sdk = ZerobusSdk(SERVER_ENDPOINT, DATABRICKS_WORKSPACE_URL)
table_properties = TableProperties("main.default.air_quality")
stream = sdk.create_stream(CLIENT_ID, CLIENT_SECRET, table_properties)
stream.ingest_record_offset({"device_name": "sensor-1", "temp": 22, "humidity": 55})
stream.close()
Lo stesso codice che assorbe un disco scala fino a petabyte: lo esegui da più produttori. Per la procedura completa, vedi Use Zerobus Ingest.
Quando utilizzare Zerobus Ingest
| Utilizzare Zerobus Ingest quando… | Valuta un altro strumento quando... |
|---|---|
| La casa sul lago è l'unica destinazione per i tuoi dati. | Devi diffondere gli stessi dati a molti consumatori non appartenenti a lakehouse (usa un bus di messaggi come Kafka, e usa connettori Streaming per replicare quei dati nella lakehouse). |
| Vuoi eseguire scritture concorrenti a throughput elevato direttamente nelle tabelle Delta. | Hai bisogno di una messaggistica tra microservizi (usa un bus di messaggi). |
| La freschezza quasi in tempo reale (secondi) soddisfa le tue esigenze. | È necessario un latenza operativa inferiore al secondo nel percorso di elaborazione (usa concetti di modalità Real-time). |
| Controlli il produttore e puoi inviare i dati a un'API. | Stai acquisendo dati da file già presenti nell’archiviazione cloud (usa Auto Loader). |
Un punto di progettazione da pianificare: Zerobus Ingest garantisce l'ordine per ogni stream, non globalmente tra i stream. Per capire come funziona l'ordine per stream e come progettare attorno ad esso, vedi Streams.
Casi d'uso comuni
- IoT e telemetria dei dispositivi: trasmetti in streaming i dati di sensori, veicoli e dispositivi intelligenti da grandi flotte distribuite direttamente nelle tabelle Delta governate.
- Da ambienti on-premises al cloud: collega i sistemi on-premises e ibridi al lakehouse senza dover predisporre un'infrastruttura broker intermedia. Per la connettività privata e la configurazione del firewall, vedi Considerazioni di rete.
- Eventi applicativi e clickstream: invio di eventi da applicazioni cloud ed edge per analisi quasi in tempo reale.
- Acquisizione dei dati modificati (CDC): carica in Delta le modifiche a livello di riga dai sistemi operazionali.
- Dati di osservabilità: invia tracce, log e metriche di OpenTelemetry nelle tabelle Delta di tuo possesso. Vedi Ingestire dati OpenTelemetry con Zerobus Ingest.
Modi per inviare dati
Zerobus Ingest è un endpoint che supporta più interfacce, quindi puoi scegliere la soluzione migliore per ogni produttore:
- SDK su gRPC: client di streaming ad alta velocità in Python, Java, Rust, Go, TypeScript e (in Beta) C++ e C# / .NET. Ideale per l'ingestione ordinata ad alto volume. Vedi Creare un client.
- API REST: un'interfaccia senza stato per client leggeri o molto verbosi, come ampie flotte di dispositivi edge. Vedi Creare un client.
- OpenTelemetry (OTLP): configura i collector OpenTelemetry esistenti affinché puntino a Zerobus Ingest per inviare tracce, log e metriche senza alcuna integrazione personalizzata. Vedi Ingestire dati OpenTelemetry con Zerobus Ingest.
- API compatibili con Kafka (Beta): indirizza un producer Apache Kafka esistente verso Zerobus Ingest, senza l'SDK di Azure Databricks. Consulta Utilizzare API compatibili con Kafka con Zerobus Ingest.
Tutti scrivono direttamente nelle tabelle Delta. Per un confronto completo e come scegliere, vedi protocolli API. Per scrivere il tuo primo client, vedi Usa Zerobus Ingest.
Costo
I costi di Zerobus Ingest sono fatturati in base allo SKU "Automated Serverless". I prezzi sono disponibili nella pagina dei prezzi di Lakeflow Connect.
Monitoraggio dell'utilizzo
Puoi monitorare la tua spesa tramite la tabella del sistema di utilizzo fatturabile. Consultare Tabella di riferimento del sistema di utilizzo fatturabile. Filtrare l'uso di Zerobus Ingest con:
billing_origin_product = 'LAKEFLOW_CONNECT'-
product_features.lakeflow_connect.zerobus_request_typeidentifica come i dati sono stati ingeriti:'GRPC'(SDK streaming),'HTTP'(REST)'OTEL_GRPC'e'OTEL_HTTP'(OpenTelemetry/OTLP), oppure'KAFKA'(API compatibili con Kafka).