Protocolos de API

O Zerobus Ingest expõe um endpoint com vários protocolos de API: gRPC (através dos SDKs), REST, OpenTelemetry (OTLP) e APIs compatíveis com Kafka. Todos eles escrevem diretamente nas tabelas Delta do Unity Catalog, então você escolhe o protocolo que melhor se encaixa em cada produtor.

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

Qual protocolo você deve usar?

Protocolo Melhor para Por que
gRPC (SDKs) Produtores de streaming de alto volume: captura de dados de alteração, fluxo de cliques, e encaminhadores de logs e eventos. Conexões persistentes proporcionam a maior taxa de transferência sustentada e preservam a ordem de cada fluxo. Disponível em Python, Java, Rust, Go, TypeScript e (em beta) C++ e C# / .NET. Veja Escreva um cliente.
REST Grandes frotas de clientes leves ou "falantes", como dispositivos de borda e IoT que reportam raramente. Sem Estado: cada requisição é independente, então os clientes não mantêm uma conexão aberta. Mais simples para dispositivos que enviam dados ocasionalmente. Veja o exemplo de REST.
OpenTelemetry (OTLP) Pipelines de observabilidade já emitindo rastreamentos, logs e métricas. Aponte seus SDKs ou coletores OpenTelemetry já existentes para o ponto de extremidade, sem integração personalizada. Consulte Ingerir dados do OpenTelemetry com o Zerobus Ingest.
APIs compatíveis com Kafka (Beta) Produtores que já falam o protocolo Kafka, ou ferramentas que enviam dados para o Kafka, quando você deseja incluir esses dados no Delta com o mínimo de alterações no código. Reutilizar um produtor Kafka existente sem um Azure Databricks SDK. Aponte para o ponto de extremidade e produza para um tópico nomeado com base na sua tabela de destino. Veja Uso de APIs compatíveis com Kafka com o Zerobus Ingest.

gRPC com os SDKs

Os SDKs do Zerobus encapsulam uma conexão gRPC persistente e bidirecional chamada stream. Como a conexão permanece aberta, o gRPC alcança a maior taxa de transferência sustentada e é a opção recomendada para ingestão contínua e de alto volume. Cada stream aberto é uma conexão duradoura, então o throughput do cliente escala com o número de streams que ele abre.

Os SDKs cuidam do gerenciamento de conexões, do rastreamento de offsets e da recuperação para você, e estão disponíveis em Python, Java, Rust, Go, TypeScript e, em versão Beta, C++ e C# / .NET. Eles fornecem comportamento equivalente em diferentes idiomas, então escolha o que se encaixa na sua aplicação. Sobre gRPC, os SDKs suportam formatos de registro JSON, protobuf e Apache Arrow. Veja Tipos de mensagem.

Para escrever um cliente com os SDKs, incluindo um exemplo por idioma para cada um, veja Escrever um cliente.

REST

A interface REST é sem estado: cada requisição é concluída sozinha, sem manter uma conexão aberta. Isso o torna uma opção adequada para grandes frotas de produtores com baixo volume ou intermitentes, por exemplo, dispositivos de borda e IoT que reportam o status com pouca frequência, em que manter uma conexão persistente por dispositivo seria impraticável.

A ingestão via REST está sujeita a uma cota de taxa de requisições (veja cotas de ingestão do Zerobus). Para um produtor de alto volume, os SDKs via gRPC oferecerão maior taxa de transferência do que fazer muitas solicitações REST individuais. Reserve o REST para produtores que enviam pouco ou que não conseguem manter uma conexão permanente.

OpenTelemetry (OTLP)

O Zerobus Ingest inclui um endpoint nativo do Protocolo OpenTelemetry. Se seus sistemas já produzem rastreamentos, logs e métricas do OpenTelemetry, você pode direcionar exportadores ou coletores OTLP existentes para o Zerobus Ingest e gravar essa telemetria diretamente em tabelas Delta de sua propriedade, geralmente com apenas uma alteração de configuração. Confira Ingerir dados do OpenTelemetry com o Zerobus Ingest.

APIs compatíveis com Kafka

Importante

As APIs compatíveis com Kafka estão em Beta.

O Zerobus Ingest oferece APIs de produtor compatíveis com Kafka, então você pode ingerir com qualquer cliente produtor do Apache Kafka sem um SDK do Azure Databricks. Você aponta um produtor Kafka existente para o ponto de extremidade e gera para um tópico com o mesmo nome da tabela de destino. Os registros entram em uma tabela Delta do Catálogo do Unity. Esta é a melhor opção quando você já usa um produtor Kafka, ou um coletor ou agente que envia para o Kafka, e quer encaminhar esses dados para o Delta com o mínimo de alterações no código.

As APIs compatíveis com o Kafka implementam o subconjunto do protocolo Kafka voltado ao produtor e são somente de gravação: as APIs de consumo, de administração e transacionais não estão disponíveis. Eles aceitam apenas registros JSON. A vazão é determinada por uma cota de taxa de solicitações por espaço de trabalho, e não por conexões individuais. Para a quota específica, consulte as quotas de ingestão do Zerobus. Para a maior taxa de transferência, confirmações por registro e recuperação automática, use um SDK do Zerobus em vez de gRPC.

Para configuração, autenticação e um exemplo de produtor, veja Usar APIs compatíveis com Kafka e Zerobus Ingest.