Protocolos de API

Zerobus Ingest expone un punto final con varios protocolos API: gRPC (a través de los SDKs), REST, OpenTelemetry (OTLP) y APIs compatibles con Kafka. Todos ellos escriben directamente en tablas Delta del catálogo de Unity, así que eliges el protocolo que mejor se adapte a cada productor.

Arquitectura de escalado de Zerobus Ingest: las fuentes envían registros de Protocol Buffers (protobuf), JSON y Arrow a través de las API de gRPC, REST, OpenTelemetry y compatibles con Kafka, y estos pasan por mecanismos de escalado automático y balanceo de carga hacia un conjunto de nodos Zerobus sin estado con escalado horizontal, cada uno con un log de escritura anticipada y un escritor de Lakehouse que realiza confirmaciones por lotes de los registros en una tabla Delta gestionada por Unity Catalog

¿Qué protocolo deberías usar?

Protocolo Más adecuado para Por qué
gRPC (SDKs) Productores de transmisión de alto volumen: captura de datos modificados, clickstream y reenviadores de registros y eventos. Las conexiones persistentes ofrecen el mayor rendimiento sostenido y mantienen el orden de cada flujo. Disponible en Python, Java, Rust, Go, TypeScript y (en beta) C++ y C# / .NET. Consulta Crear un cliente.
REST Grandes flotas de clientes ligeros o "muy comunicativos", como dispositivos edge e IoT que envían información con poca frecuencia. Sin Estado: cada solicitud es independiente, por lo que los clientes no mantienen una conexión abierta. Más sencillo para dispositivos que envían datos ocasionalmente. Consulta el ejemplo de REST.
OpenTelemetry (OTLP) Canalizaciones de observabilidad que ya emiten trazas, registros y métricas. Configura tus SDK y recopiladores de OpenTelemetry existentes para que apunten al endpoint sin necesidad de una integración personalizada. Consulta Ingesta de datos de OpenTelemetry con Zerobus Ingest.
APIs compatibles con Kafka (Beta) Productores que ya son compatibles con el protocolo Kafka, o herramientas que emiten a Kafka, si quieres esos datos en Delta con cambios mínimos en el código. Reutilizar un productor Kafka existente sin un SDK de Azure Databricks. Dirígelo al endpoint y publica en un tema con el nombre de tu tabla de destino. Consulta Usar APIs compatibles con Kafka con Zerobus Ingest.

gRPC con los SDKs

Los SDKs de Zerobus encapsulan una conexión gRPC persistente y bidireccional llamada stream. Como la conexión permanece abierta, gRPC logra el mayor rendimiento sostenido y es el camino recomendado para una ingestión continua y de alto volumen. Cada flujo abierto es una conexión de larga duración, por lo que el rendimiento de un cliente escala con el número de flujos que abre.

Los SDKs gestionan la gestión de conexiones, el seguimiento de offset y la recuperación por ti, y están disponibles en Python, Java, Rust, Go, TypeScript y (en Beta) C++ y C# / .NET. Proporcionan un comportamiento equivalente en varios idiomas, así que elige el que se adapte a tu aplicación. Sobre gRPC, los SDK soportan formatos de registro JSON, protobuf y Apache Arrow. Ver Tipos de mensajes.

Para escribir un cliente con los SDKs, incluyendo un ejemplo por lenguaje para cada uno, véase Escribe un cliente.

REST

La interfaz REST es sin estado: cada solicitud se completa por sí sola sin mantener una conexión abierta. Esto lo convierte en una opción muy adecuada para grandes flotas de productores ligeros o intermitentes, por ejemplo dispositivos de borde e IoT que notifican su estado con poca frecuencia, en los que mantener una conexión persistente para cada dispositivo sería poco práctico.

La ingesta mediante REST está sujeta a una cuota de solicitudes (véase cuotas de ingesta de Zerobus). Para un productor de alto volumen, los SDKs sobre gRPC mantendrán un mayor rendimiento que la emisión de muchas solicitudes REST individuales. Reserva REST para productores que envíen poco o que no puedan mantener una conexión permanente.

OpenTelemetry (OTLP)

Zerobus Ingest incluye un endpoint nativo del protocolo OpenTelemetry Protocol. Si tus sistemas ya producen trazas, registros y métricas de OpenTelemetry, puedes dirigir a tus exportadores o recolectores OTLP existentes a Zerobus Ingest y aterrizar esa telemetría directamente en las tablas Delta que posees, normalmente con solo un cambio de configuración. Consulte Ingerir datos de OpenTelemetry con Zerobus Ingest.

APIs compatibles con Kafka

Importante

Las APIs compatibles con Kafka están en Beta.

Zerobus Ingest ofrece APIs de productor compatibles con Kafka, por lo que puedes ingerir con cualquier cliente productor de Apache Kafka sin un SDK de Azure Databricks. Se apunta a un productor Kafka existente en el punto de conexión y se produce un tema titulado como la tabla de destino, y los registros aparecen en una tabla Delta de Unity Catalog. Esta es la mejor opción si ya utilizas un productor de Kafka, o un recopilador o agente que emite a Kafka, y quieres canalizar esos datos a Delta con cambios mínimos en el código.

Las APIs compatibles con Kafka implementan el subconjunto productor del protocolo Kafka y son solo de escritura: no están disponibles APIs para consumidores, administradores y transaccionales. Solo aceptan registros JSON. El rendimiento se rige por una cuota de tasa de solicitudes por espacio de trabajo, en lugar de por conexiones individuales. Para la cuota específica, véase Cuotas de Ingesta de Zerobus. Para obtener el máximo rendimiento, acuses de recibo por registro y recuperación automática, utiliza en su lugar el SDK de Zerobus a través de gRPC.

Para configuración, autenticación y un ejemplo de productor, véase Usar APIs compatibles con Kafka con Zerobus Ingest.