Visão geral do Zerobus Ingest
O Zerobus Ingest é uma API de transmissão baseada em push que grava dados diretamente em tabelas Delta do Unity Catalog em alta escala, sem a necessidade de executar um barramento de mensagens. O fluxo de trabalho consiste em duas etapas: criar uma tabela e, em seguida, enviar dados para ela. O Zerobus Ingest elimina a necessidade de gerenciar partições, brokers ou pipelines. É um Endpoint Serverless que está ativado por default no seu Workspace e que escala à medida que você abre mais conexões.
Criado para alto throughput e frescor quase em tempo real, o Zerobus Ingest gerencia gravações concorrentes de alto volume de milhares de clientes na mesma tabela e armazena registros no Delta em segundos, para que seus dados estejam prontos para query quase assim que chegam.
- O Zerobus Ingest está disponível em regiões selecionadas. O seu workspace e a tabela de destino devem estar em uma região compatível. Para obter a lista de regiões compatíveis, consulte Disponibilidade de ingestão.
Desenvolvido para alta escalabilidade
O Zerobus Ingest foi projetado para alta escalabilidade, sem a necessidade de planejamento de capacidade. Ele ingeriu mais de 1 trilhão de registros em uma única tabela Delta em menos de 24 horas, lidando com gravações concorrentes de alto volume de milhares de clientes, conforme descrito na postagem no blog Ingesting the Milky Way: Escala de Petabytes com Zerobus Ingest. Para cotas de throughput default, consulte Cotas do Zerobus Ingest.
Um cliente "hello world" e uma carga de trabalho em escala de petabyte executam essencialmente o mesmo código. Você escala executando mais produtores, não reescrevendo sua aplicação.
O Zerobus Ingest é serverless: ele adiciona e remove capacidade conforme a carga muda. As transmissões atuam como unidades de particionamento dinâmico que o serviço abre, fecha e rotaciona para reequilibrar a capacidade conforme a demanda muda.
Para saber como o Zerobus Ingest alcança isso, consulte Como o Zerobus Ingest escala.
Sem necessidade de barramento de mensagens
Muitas equipes colocam um barramento de mensagens, como o Kafka, entre seus produtores e suas tabelas apenas para armazenar dados em buffer a caminho do lakehouse. Isso adiciona saltos, custos e sobrecarga operacional: brokers para dimensionar, partições para rebalancear e atraso de consumidor para monitorar. O Zerobus Ingest remove essa camada intermediária, permitindo que os produtores gravem diretamente no Delta.

Um barramento de mensagens ainda é a ferramenta certa quando os mesmos dados alimentam muitos consumidores que não são lakehouse, quando você precisa de mensagens de microsserviço para microsserviço ou para distribuição de mensagens (fanout). Nesses casos, quando você também deseja esses dados no lakehouse, use os conectores de transmissão gerenciados do Databricks para replicar a partir do barramento de mensagens. Mas quando o lakehouse é o destino, o Zerobus Ingest é um caminho mais simples e direto.
Como funciona
Um produtor abre uma transmissão para o Zerobus Ingest e envia registros para uma tabela Delta de destino. O serviço valida cada registro em relação ao esquema da tabela e o torna persistente. Assim que um registro é persistido, o Zerobus Ingest o reconhece rapidamente, para que seu produtor possa continuar enviando registros sem esperar por cada um. Os dados são materializados na tabela logo em seguida, normalmente em poucos segundos. O design dinâmico e sem partições do Zerobus Ingest torna a ingestão elástica, de modo que seu compute serverless escala com suas cargas de trabalho.

Para uma explicação mais detalhada sobre transmissões e como o Zerobus Ingest escala, consulte Conceitos do Zerobus Ingest. Para o modelo de comunicação assíncrona entre cliente e servidor, consulte Comunicação assíncrona.
Criar uma tabela e, em seguida, enviar dados
Qualquer aplicativo que possa usar um SDK do Zerobus Ingest ou chamar uma API compatível (gRPC, REST ou OpenTelemetry) pode transmitir dados para uma tabela Delta. O esquema da tabela define o que cada registro deve conter. Primeiro, crie a tabela de destino:
CREATE TABLE main.default.air_quality (
device_name STRING,
temp INT,
humidity INT
);
Em seguida, após conceder acesso a um service principal à tabela, a ingestão de um registro requer apenas algumas linhas de código:
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()
O mesmo código que ingere um registro escala para petabytes: você o executa a partir de mais produtores. Para o passo a passo completo, consulte Use Zerobus Ingest.
Quando usar o Zerobus Ingest
Use o Zerobus Ingest quando… | Considere outra ferramenta quando… |
|---|---|
O lakehouse é o destino único para seus dados. | Você precisa distribuir os mesmos dados para muitos consumidores que não são lakehouse (use um barramento de mensagens como o Kafka e use conectores de transmissão para replicar esses dados no lakehouse). |
Você deseja gravações concorrentes de alto throughput diretamente em tabelas Delta. | Você precisa de mensagens de microserviço para microserviço (use um barramento de mensagens). |
A atualização quase em tempo real (segundos) atende às suas necessidades. | Você requer latência operacional de sub-segundo no caminho de processamento (use Conceitos do modo em tempo real). |
Você controla o produtor e pode enviar dados para uma API. | Você está extraindo de arquivos que já foram armazenados no armazenamento em nuvem (use o Auto Loader). |
Um ponto de design a ser planejado: o Zerobus Ingest garante a ordenação por transmissão, não globalmente entre transmissões. Para saber como a ordenação por transmissão funciona e como projetar em torno dela, consulte Streams.
Casos de uso comuns
- IoT e telemetria de dispositivos : transmita dados de sensores, veículos e dispositivos inteligentes de grandes frotas distribuídas diretamente para tabelas Delta governadas.
- On-premises para cloud : conecte sistemas on-premises e híbridos ao lakehouse sem precisar configurar uma infraestrutura de broker entre eles. Para conectividade privada e configuração de firewall, consulte Considerações sobre rede.
- Eventos de aplicação e clickstream : envie eventos de aplicações em cloud e edge para analítica quase em tempo real.
- Captura de dados de alterações (CDC) : grave alterações de linha de sistemas operacionais no Delta.
- Dados de observabilidade : envie rastreamentos, logs e métricas do OpenTelemetry para tabelas Delta de sua propriedade. Veja Ingest OpenTelemetry data with Zerobus Ingest.
Maneiras de enviar dados
O Zerobus Ingest é um endpoint que oferece suporte a várias interfaces, para que você possa escolher a mais adequada para cada produtor:
- SDKs sobre gRPC : clientes de transmissão de alto throughput em Python, Java, Rust, Go, TypeScript e (em Beta) C++ e C# / .NET. Ideal para ingestão ordenada de alto volume. Consulte Escrever um cliente.
- API REST : uma interface sem estado para clientes leves ou "tagarelas" (chatty), como grandes frotas de dispositivos de borda. Consulte Escrever um cliente.
- OpenTelemetry (OTLP) : aponte os coletores OpenTelemetry existentes para o Zerobus Ingest para gravar rastreamentos, logs e métricas sem integração personalizada. Veja Ingest OpenTelemetry data with Zerobus Ingest.
- APIs compatíveis com Kafka (Beta): aponte um produtor do Apache Kafka existente para o Zerobus Ingest, sem o Databricks SDK. Consulte Usar APIs compatíveis com Kafka com o Zerobus Ingest.

Todos eles gravam diretamente em tabelas Delta. Para uma comparação completa e como escolher, consulte protocolos de API. Para escrever seu primeiro cliente, consulte Usar o Zerobus Ingest.
Custo
As cobranças do Zerobus Ingest são faturadas usando o SKU de "Jobs Serverless". Os preços estão disponíveis na página de preços do Lakeflow Connect.
seu uso
Você pode monitorar seus gastos por meio da tabela do sistema de uso faturável. Consulte Referência da tabela do sistema de uso faturável. Filtre o uso do Zerobus Ingest com:
billing_origin_product = 'LAKEFLOW_CONNECT'product_features.lakeflow_connect.zerobus_request_typeidentifica como os dados foram ingeridos:'GRPC'(transmissão via SDK),'HTTP'(REST),'OTEL_GRPC'e'OTEL_HTTP'(OpenTelemetry/OTLP) ou'KAFKA'(APIs compatíveis com Kafka).