Protocolos 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, por isso escolhes o protocolo que melhor se adequa a cada produtor.

Arquitetura de escalonamento do Zerobus Ingest: as fontes enviam registos Protocol Buffers (protobuf), JSON e Arrow através das APIs compatíveis com gRPC, REST, OpenTelemetry e Kafka, que passam por escalonamento automático e balanceamento de carga até um conjunto de nós Zerobus sem estado, escalável horizontalmente, cada um com um log de escrita antecipada e um gravador do Lakehouse que efetua confirmações em lote dos registos numa tabela Delta gerida pelo Unity Catalog

Que protocolo deve usar?

Protocolo Melhor para Porquê
gRPC (SDKs) Produtores de streaming de alto volume: captura de dados de alterações, clickstream, registos e reencaminhadores de eventos. As ligações persistentes proporcionam o maior débito sustentado e preservam a ordenação de cada fluxo. Disponível em Python, Java, Rust, Go, TypeScript e (em beta) C++ e C# / .NET. Consulte Criar um cliente.
REST Grandes frotas de clientes ligeiros ou "muito comunicativos", como dispositivos de extremidade e IoT que comunicam com pouca frequência. Sem Estado: cada pedido é independente, por isso os clientes não mantêm uma ligação aberta. Mais simples para dispositivos que enviam dados ocasionalmente. Veja o exemplo de REST.
OpenTelemetry (OTLP) Pipelines de observabilidade que já emitem rastreios, registos e métricas. Aponte os seus SDKs ou colecionadores OpenTelemetry existentes para o endpoint sem qualquer integração personalizada. Veja Ingerir dados OpenTelemetry com o Zerobus Ingest.
APIs compatíveis com Kafka (Beta) Produtores que já falam o protocolo Kafka, ou ferramentas que emitem para Kafka, quando se pretende ter esses dados em Delta com alterações mínimas ao código. Reutilizar um produtor Kafka existente sem um Azure Databricks SDK. Aponte-a para o endpoint e publique num tópico com o nome da sua tabela de destino. Veja Usar APIs compatíveis com Kafka com Zerobus Ingest.

gRPC com os SDKs

Os SDKs da Zerobus encapsulam uma ligação gRPC persistente e bidirecional denominada stream. Como a ligação permanece aberta, o gRPC atinge a taxa de transferência sustentada mais elevada e é a opção recomendada para ingestão contínua de grande volume. Cada stream aberto é uma ligação de longa duração, pelo que o throughput de um cliente escala com o número de fluxos que abre.

Os SDKs encarregam-se da gestão das ligações, do controlo dos offsets e da recuperação por si, estando disponíveis em Python, Java, Rust, Go, TypeScript e, em versão beta, C++ e C# / .NET. Eles fornecem comportamentos equivalentes em várias línguas, por isso escolha a que se adequa à sua aplicação. Sobre gRPC, os SDKs suportam formatos de registo JSON, protobuf e Apache Arrow. Ver Tipos de mensagem.

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

REST

A interface REST é sem estado: cada pedido é concluído sozinho sem manter uma ligação aberta. Isto torna-o uma boa escolha para grandes frotas de produtores de baixo volume ou intermitentes, como, por exemplo, dispositivos periféricos e IoT que reportam o estado com pouca frequência, em que manter uma ligação persistente por dispositivo seria impraticável.

A ingestão via REST está sujeita a uma quota de taxa de pedidos (consulte quotas de ingestão do Zerobus). Para um produtor de grande volume, os SDKs sobre gRPC manterão maior débito do que a emissão de muitos pedidos REST individuais. Reserve o REST para produtores que enviam com pouca frequência ou que não conseguem manter uma ligação persistente.

OpenTelemetry (OTLP)

O Zerobus Ingest inclui um endpoint nativo do OpenTelemetry Protocol. Se os seus sistemas já produzem rastreios, logs e métricas OpenTelemetry, pode apontar os seus exportadores ou coletores OTLP existentes para o Zerobus Ingest e fazer com que essa telemetria chegue diretamente às tabelas Delta que lhe pertencem, geralmente apenas com uma alteração de configuração. Veja Ingerir dados OpenTelemetry com 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, para que possa ingerir com qualquer cliente produtor Apache Kafka sem um SDK do Azure Databricks. Apontas um produtor Kafka existente para o endpoint e produzes para um tópico com o nome da tua tabela de destino, e os registos aparecem numa tabela Delta do Unity Catalog. Isto é a melhor opção quando já tens um produtor Kafka, ou um coletor ou agente que emite para Kafka, e queres encaminhar esses dados para a Delta com alterações mínimas de código.

As APIs compatíveis com o Kafka implementam o subconjunto do protocolo Kafka relativo ao produtor e são apenas de escrita: as APIs de consumidor, de administração e transacionais não estão disponíveis. Aceitam apenas registos JSON. A taxa de transferência é regida por uma quota para a taxa de pedidos por área de trabalho, e não por ligações individuais. Para a quota específica, consulte quotas de ingestão do Zerobus. Para maior rendimento, confirmações por registo e recuperação automática, use um SDK Zerobus em vez de gRPC.

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