Zerobus Ingest-översikt

Zerobus Ingest är ett push-baserat streaming-API som skriver data direkt till Unity Catalog Delta-tabeller i hög skala, utan någon meddelandebuss att köra. Det tar bort det mellansta lagret som många team placerar mellan sina producenter och sjöhuset. Arbetsflödet består av två steg: skapa en tabell och sedan skicka data till den. En "hello world"-klient och en petabyte-skala arbetsbelastning kör i princip samma kod utan någon infrastruktur att hantera.

Datainmatning via en meddelandebuss dirigerar producenter via en meddelandeförmedlare och ett inmatningsjobb innan de når Delta-tabeller, medan Zerobus Ingest ansluter producenter direkt till lakehouse.

Zerobus Ingest är serverlöst och lägger till och tar bort kapacitet när belastningen förändras. Den har läst in över 1 biljon poster i en och samma tabell på under 24 timmar (se blogginlägget Ingesting the Milky Way: Petabyte-Scale with Zerobus Ingest) och gör poster tillgängliga inom några sekunder.

Advantages

Zerobus Ingest håller inmatningen enkel samtidigt som den skalar till de största arbetsbelastningarna:

  • Enkelt genom design. Skapa en tabell och skicka sedan data till den — det finns inga mäklare, partitioner eller pipelines att hantera. I stället för att dirigera data genom en meddelandebuss och ett inläsningsjobb innan det skrivs in i tabellen skriver producenterna direkt till tabellen, vilket innebär färre led och färre rörliga delar att hantera.
  • Serverless och skalbar. Zerobus Ingest är aktiverat som standard och lägger till eller tar bort kapacitet när belastningen ändras. Du skalar genom att köra fler producenter, inte genom att skriva om din applikation. För att lära dig hur, se Hur Zerobus Ingest skalar.
  • Högkapacitetsarbetsbelastningar. Zerobus Ingest är byggd för storskalig insamling och upprätthåller höga skrivhastigheter i en enda tabell.
  • Nästan färskhet i realtid. Arkiven landar i Delta inom några sekunder och är redo för sökningar nästan så snart de anländer.
  • Hög samtidighet. Zerobus Ingest hanterar samtidiga skrivningar från tusentals klienter till samma tabell.

När din destination är sjöhuset är Zerobus Ingest den mest direkta vägen. Andra Azure Databricks-verktyg passar närliggande behov och fungerar bra tillsammans med dem:

  • För användningsfall där du kör Kafka för att stödja icke-Lakehouse-konsumenter kan du också vilja ha en kopia av datan som skapats i Lakehouse. Använd hanterade streaminganslutningar för att replikera den.
  • För data som redan har hamnat som filer i molnlagring, använd Auto Loader.
  • När du behöver operativ latens under en sekund i bearbetningsvägen, använd realtidsläge.

Skapa en tabell och skicka sedan data

Att använda Zerobus Ingest är så enkelt som att skapa en tabell och sedan skicka data till den. Tabellens schema definierar vad varje post måste innehålla. Först, skapa måltabellen:

CREATE TABLE main.default.air_quality (
  device_name STRING,
  temp INT,
  humidity INT
);

Sedan är det bara några rader kod för att importera en datapost:

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})
# ingest more records...
stream.close()

Samma kod som du levererar i utveckling kan skalas till produktionsarbetsbelastningar. För hela genomgången, se Use Zerobus Ingest.

Vanliga användningsfall

  • IoT och enhetstelemetri: strömdata från sensorer, fordon och smarta enheter från stora distribuerade flottor direkt in i styrda Delta-tabeller.
  • Från lokala miljöer till molnet: överbrygga lokala och hybrida system till ett lakehouse utan att driftsätta brokerinfrastruktur däremellan. För privat anslutning och brandväggsinstallation, se Nätverksöverväganden.
  • Applikations- och klickströmshändelser: skicka händelser från moln- och edge-applikationer för nästan realtidsanalys.
  • Förändringsdatafångst (CDC): läs in radändringar från operativa system till Delta.
  • Observabilitetsdata: skicka OpenTelemetri-spår, loggar och mätvärden till Delta-tabeller du äger. Se Ingest OpenTelemetry data with Zerobus Ingest.

Så här fungerar det

En producent öppnar en dataström till Zerobus Ingest och skickar poster till en Delta-måltabell. Tjänsten validerar varje post mot tabellschemat och lagrar den varaktigt. När en skiva är hållbar bekräftar Zerobus Ingest den snabbt, så att din producent kan fortsätta skicka skivor utan att vänta på varenda en. Datan materialiseras i tabellen kort därefter, vanligtvis inom några sekunder. Zerobus Ingests dynamiska, partitionlösa design gör intagning elastisk, så dess serverlösa beräkning skalar med dina arbetsbelastningar.

Så fungerar Zerobus Ingest: producenter skickar in poster till Zerobus Ingest-slutpunkten, som validerar, lagrar dem varaktigt, bekräftar och materialiserar dem i Unity Catalog Delta-tabeller

För en djupare förklaring av strömmar och hur Zerobus Ingest skalar, se Zerobus Ingest-koncepten. För modellen för asynkron klient- och serverkommunikation, se Asynkron kommunikation.

Sätt att skicka data

Zerobus Ingest är en endpoint som stödjer flera gränssnitt, så du kan välja den bästa passformen för varje producent:

  • SDK:er över gRPC: högkapacitetsströmningsklienter i Python, Java, Rust, Go, TypeScript och (i Beta) C++ och C# / .NET. Passar bäst för ordnad inmatning av stora volymer. Se Att skriva en klient.
  • REST API: ett tillståndslöst gränssnitt för lättviktiga eller "pratglada" klienter såsom stora flottor av edge-enheter. Se Att skriva en klient.
  • OpenTelemetry (OTLP): rikta befintliga OpenTelemetry-insamlare mot Zerobus Ingest så att spår, loggar och mätvärden tas emot utan någon anpassad integration. Se Ingest OpenTelemetry data with Zerobus Ingest.
  • Kafka-kompatibla API:er (Beta): peka en befintlig Apache Kafka-producent på Zerobus Ingest, utan Azure Databricks SDK. Se Använd Kafka-kompatibla API:er med Zerobus Ingest.

Zerobus Ingest-skalningsarkitektur: källor skickar Protocol Buffers (protobuf), JSON- och Arrow-poster via gRPC-, REST-, OpenTelemetry- och Kafka-kompatibla API:erna, och posterna flödar genom automatisk skalning och lastbalansering till en horisontellt skalbar pool av tillståndslösa Zerobus-noder, var och en med en transaktionslogg och en Lakehouse-skrivare som batchvis skriver poster till en Delta-tabell som hanteras av Unity Catalog

Alla skriver direkt in i Delta-tabeller. För en fullständig jämförelse och hur du väljer, se API-protokoll. För att skriva din första klient, se Använd Zerobus Ingest.

Kostnad

Avgifter för Zerobus Ingest debiteras under SKU:n "Automated Serverless". Prissättningen är tillgänglig på sidan för Lakeflow Connect-priser.

Övervaka din användning

Du kan övervaka dina kostnader via systemtabellen för debiterbar användning. Se Referens för tabell över fakturerbar användning. Filtrera användningen av Zerobus Ingest enligt:

  • billing_origin_product = 'LAKEFLOW_CONNECT'
  • product_features.lakeflow_connect.zerobus_request_type identifierar hur datan har samlats in: 'GRPC' (SDK-strömning), 'HTTP' (REST), 'OTEL_GRPC' och 'OTEL_HTTP' (OpenTelemetry/OTLP), eller 'KAFKA' (Kafka-kompatibla API:er).

Ytterligare resurser