Visão geral do Zerobus Ingest

Zerobus Ingest é uma API de streaming orientada por push que grava dados diretamente em tabelas Delta do Catálogo do Unity em alta escala, sem precisar operar um barramento de mensagens. Isso remove a camada intermediária que muitas equipes colocam entre seus produtores e a casa do lago. O fluxo de trabalho é composto por duas etapas: criar uma tabela e depois enviar dados para ela. Um cliente "hello world" e uma carga de trabalho em escala petabyte rodam essencialmente o mesmo código sem infraestrutura para gerenciar.

Ingerir com um ônibus de mensagens direciona os produtores por meio de um corretor e um trabalho de ingestão antes de chegar às mesas Delta, enquanto o Zerobus Ingest conecta os produtores diretamente à casa do lago.

O Zerobus Ingest é serverless, adicionando e removendo capacidade conforme a carga muda. Ele ingeriu mais de 1 trilhão de registros em uma única tabela em menos de 24 horas (veja a postagem do blog Ingesting the Milky Way: Petabyte-Scale with Zerobus Ingest) e disponibiliza os registros em segundos.

Advantages

O Zerobus Ingest mantém a ingestão simples, ao mesmo tempo em que escala para dar suporte às maiores cargas de trabalho:

  • Simples por design. Crie uma tabela e depois envie dados para ela — não há corretores, partições ou pipelines para gerenciar. Em vez de encaminhar os dados por um barramento de mensagens e um processo de ingestão antes de chegarem à tabela, os produtores gravam diretamente na tabela, de modo que há menos etapas intermediárias e menos componentes para gerenciar.
  • Sem servidor e elástico. O Zerobus Ingest está ativado por padrão e adiciona ou remove capacidade conforme a carga muda. Você escala executando mais produtores, não reescrevendo o aplicativo. Para saber como, veja como o Zerobus Ingest escala.
  • Cargas de trabalho de alta produtividade. O Zerobus Ingest foi projetado para ingestão em larga escala, suportando taxas elevadas de escrita em uma única tabela.
  • Atualização quase em tempo real. Os registros chegam à Delta em segundos e ficam prontos para consultas quase assim que chegam.
  • Alta concorrência. O Zerobus Ingest lida com gravações concorrentes vindas de milhares de clientes na mesma tabela.

Quando seu destino é a casa do lago, o Zerobus Ingest é o caminho mais direto. Outras ferramentas do Azure Databricks atendem a necessidades adjacentes e funcionam bem junto com elas:

  • Para casos de uso em que você está usando o Kafka para apoiar consumidores que não são do Lakehouse, você também pode querer uma cópia dos dados feitos no Lakehouse. Use conectores de streaming gerenciados para replicá-lo.
  • Para dados já armazenados como arquivos no armazenamento em nuvem, use Auto Loader.
  • Quando você precisar de latência operacional inferior a um segundo no caminho de processamento, use o modo em tempo real.

Crie uma tabela e depois envie dados

Usar o Zerobus Ingest é tão simples quanto criar uma tabela e depois enviar dados para ela. O esquema da tabela define o que cada registro deve conter. Primeiro, crie a tabela alvo:

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

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

O mesmo código que você entrega em desenvolvimento pode escalar para atender a cargas de trabalho de produção. Para o passo a passo completo, consulte Use Zerobus Ingest.

Casos de uso comuns

  • IoT e telemetria de dispositivos: transmitir dados de sensores, veículos e dispositivos inteligentes de grandes frotas distribuídas diretamente para tabelas Delta governadas.
  • Do ambiente local para a nuvem: conecte sistemas locais e híbridos ao lakehouse sem precisar implantar infraestrutura de agentes intermediária. Para conectividade privada e configuração de firewall, veja Considerações de rede.
  • Eventos de aplicação e fluxo de cliques: envie eventos de aplicações de nuvem e de borda para análises em tempo quase real.
  • Captura de dados de mudança (CDC): mudanças na linha terrestre dos sistemas operacionais para a Delta.
  • Dados de observabilidade: envie traços, logs e métricas do OpenTelemetry para as tabelas Delta que você possui. Veja Ingerir dados do OpenTelemetry com o Zerobus Ingest.

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 contra o esquema da tabela e o torna durável. Uma vez que um disco é durável, o Zerobus Ingest o reconhece rapidamente, para que seu produtor possa continuar enviando discos sem precisar esperar por cada um. Os dados são materializados na tabela logo depois, normalmente em segundos. O design dinâmico e sem particionamento do Zerobus Ingest torna a ingestão elástica, o que permite que sua capacidade de computação sem servidor acompanhe a escala das suas cargas de trabalho.

Como funciona o Zerobus Ingest: os produtores enviam registros para o endpoint do Zerobus Ingest, que os valida, torna duráveis, reconhece e materializa em tabelas Delta do Unity Catalog

Para uma explicação mais detalhada sobre os fluxos e como o Zerobus Ingest é escalado, confira conceitos do Zerobus Ingest. Para o modelo de comunicação assíncrona entre cliente e servidor, veja Comunicação assíncrona.

Maneiras de enviar dados

Zerobus Ingest é um endpoint que suporta múltiplas interfaces, então você pode escolher a que melhor se encaixa para cada produtor:

  • SDKs via gRPC: clientes de streaming de alta vazão em Python, Java, Rust, Go, TypeScript e (em beta) C++ e C# / .NET. Ideal para ingestão ordenada em alto volume. Veja Escreva um cliente.
  • API REST: uma interface sem estado para clientes leves ou que se comunicam com frequência, como grandes frotas de dispositivos de borda. Veja Escreva um cliente.
  • OpenTelemetry (OTLP): aponte os coletores OpenTelemetry existentes para o Zerobus Ingest para enviar rastreamentos, logs e métricas sem precisar de integração personalizada. Veja Ingerir dados do OpenTelemetry com o Zerobus Ingest.
  • APIs compatíveis com Kafka (Beta): apontar um produtor Apache Kafka existente para o Zerobus Ingest, sem o Azure Databricks SDK. Veja Usar APIs compatíveis com Kafka com o Zerobus Ingest.

Arquitetura de escalonamento do Zerobus Ingest: as fontes enviam Protocol Buffers (protobuf), JSON e registros Arrow por APIs gRPC, REST, OpenTelemetry e compatíveis com Kafka, que passam por dimensionamento automático e balanceamento de carga para um conjunto escalável horizontalmente de nós Zerobus sem estado, cada um com um log write-ahead e um gravador do Lakehouse que grava registros em lote em uma tabela Delta gerenciada pelo Catálogo do Unity

Todos eles escrevem diretamente nas tabelas Delta. Para uma comparação completa e como escolher, veja protocolos API. Para criar seu primeiro cliente, consulte Usar o Zerobus Ingest.

Custo

Os encargos para o Zerobus Ingest são cobrados sob o SKU "Automatizado Sem servidor". Os preços estão disponíveis na página de preços do Lakeflow Connect.

Monitorando seu uso

Você pode monitorar seus gastos pela tabela do sistema de uso faturável. Veja Tabela de referência do sistema de uso faturável. Filtrar o uso de Ingestão do Zerobus com:

  • billing_origin_product = 'LAKEFLOW_CONNECT'
  • product_features.lakeflow_connect.zerobus_request_type identifica como os dados foram ingeridos: 'GRPC' (streaming de SDK), 'HTTP' (REST) 'OTEL_GRPC' e 'OTEL_HTTP' (OpenTelemetry/OTLP), ou 'KAFKA' (APIs compatíveis com Kafka).

Recursos adicionais