Resumen de Zerobus Ingest

Zerobus Ingest es una API de streaming basada en push que escribe datos directamente en tablas Delta del Catálogo de Unity a gran escala, sin que ejecute un bus de mensajes. Elimina la capa intermedia que muchos equipos colocan entre sus productores y la casa del lago. El flujo de trabajo consta de dos pasos: crear una tabla y luego enviar datos a ella. Un cliente "hola mundo" y una carga de trabajo a escala petabyte ejecutan esencialmente el mismo código sin infraestructura que gestionar.

La ingesta con un bus de mensajería hace pasar a los productores por un bróker y un proceso de ingesta antes de llegar a las tablas Delta, mientras que Zerobus Ingest conecta directamente a los productores con el lakehouse.

Zerobus Ingest es serverless, aumentando y reduciendo la capacidad a medida que cambia la carga. Ha absorbido más de 1 billón de registros en una sola tabla en menos de 24 horas (véase la entrada del blog Ingesting the Milky Way: Petabyte-Scale with Zerobus Ingest ), y consigue registros en cuestión de segundos.

Ventajas

Zerobus Ingest mantiene la ingestión sencilla mientras escala a las cargas de trabajo más grandes:

  • Simple por diseño. Crea una tabla y luego carga datos en ella: no hay intermediarios, particiones ni canalizaciones que administrar. En lugar de enrutar los datos a través de un bus de mensajería y un proceso de ingestión antes de llegar a la tabla, los productores escriben directamente en la tabla, por lo que hay menos saltos y menos componentes que gestionar.
  • Sin servidor y elástico. Zerobus Ingest está activado por defecto y añade o elimina capacidad según cambia la carga. Se escala ejecutando más productores, no reescribiendo la aplicación. Para saber cómo, consulta Cómo escala Zerobus Ingest.
  • Cargas de trabajo de alto rendimiento. Zerobus Ingest está diseñado para la ingestión a gran escala, manteniendo altas tasas de escritura en una sola tabla.
  • Actualización casi en tiempo real. Los registros llegan a Delta en cuestión de segundos y están listos para consultas casi en cuanto llegan.
  • Alta concurrencia. Zerobus Ingest gestiona escrituras concurrentes procedentes de miles de clientes en la misma tabla.

Cuando tu destino es la casa del lago, Zerobus Ingest es el camino más directo. Otras herramientas de Azure Databricks se adaptan a necesidades adyacentes y funcionan bien junto a ellas:

  • Para casos de uso en los que ejecutas Kafka para apoyar a consumidores que no son de Lakehouse, también puede que quieras una copia de los datos hechos en Lakehouse. Utiliza conectores de streaming gestionados para replicarlo.
  • Para datos que ya han llegado como archivos en almacenamiento en la nube, usa Auto Loader.
  • Cuando necesites una latencia operativa de menos de un segundo en la ruta de procesamiento, usa el modo en tiempo real.

Crea una tabla y luego empuja los datos

Usar Zerobus Ingest es tan sencillo como crear una tabla y luego enviar datos a ella. El esquema de la tabla define qué debe contener cada registro. Primero, crea la tabla objetivo:

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

A continuación, incorporar un registro solo requiere unas pocas líneas 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()

El mismo código que envias en desarrollo puede escalar a cargas de trabajo en producción. Para ver la guía completa, consulta Usar Zerobus Ingest.

Casos de uso comunes

  • IoT y telemetría de dispositivos: transmite datos de sensores, vehículos y dispositivos inteligentes desde grandes flotas distribuidas directamente hacia tablas Delta gobernadas.
  • De entornos locales a la nube: conecte sistemas locales e híbridos al lakehouse sin necesidad de desplegar infraestructura de intermediación entre ambos. Para conectividad privada y configuración de cortafuegos, véase Consideraciones de red.
  • Eventos de aplicaciones y secuencias de clics: envía eventos desde aplicaciones en la nube y perimetrales para análisis en tiempo casi real.
  • Captura de datos modificados (CDC): incorpora cambios de filas desde sistemas operacionales en Delta.
  • Datos de observabilidad: envía trazas, registros y métricas de OpenTelemetry a las tablas Delta que poseas. Consulte Ingerir datos de OpenTelemetry con Zerobus Ingest.

Cómo funciona

Un productor abre un flujo hacia Zerobus Ingest y envía los registros a una tabla Delta de destino. El servicio valida cada registro contra el esquema de la tabla y lo hace duradero. Una vez que un disco es duradero, Zerobus Ingest lo reconoce rápidamente, para que tu productor pueda seguir enviando discos sin tener que esperar a cada uno. Los datos se materializan en la tabla poco después, normalmente en cuestión de segundos. El diseño dinámico y sin particiones de Zerobus Ingest permite una ingesta elástica, por lo que su capacidad de cómputo sin servidor se adapta a tus cargas de trabajo.

Cómo funciona Zerobus Ingest: los productores envían los registros al endpoint de Zerobus Ingest, que los valida, los hace duraderos, los reconoce y materializa en tablas Delta del Catálogo de Unity

Para obtener una explicación más detallada de los flujos y de cómo escala Zerobus Ingest, consulta Conceptos de Zerobus Ingest. Para el modelo de comunicación asíncrona entre cliente y servidor, véase Comunicación asíncrona.

Formas de enviar datos

Zerobus Ingest es un endpoint que soporta múltiples interfaces, así que puedes elegir la que mejor se adapte a cada productor:

  • SDKs sobre gRPC: clientes de streaming de alto rendimiento en Python, Java, Rust, Go, TypeScript y (en Beta) C++ y C# / .NET. Es ideal para una ingestión ordenada de alto volumen. Consulta Crear un cliente.
  • API REST: una interfaz sin estado para clientes ligeros o con mucha comunicación, como grandes flotas de dispositivos perimetrales. Consulta Crear un cliente.
  • OpenTelemetry (OTLP): dirige los recopiladores de OpenTelemetry existentes a Zerobus Ingest para ingresar trazas, registros y métricas sin necesidad de integración personalizada. Consulte Ingerir datos de OpenTelemetry con Zerobus Ingest.
  • APIs compatibles con Kafka (Beta): apuntar un productor existente de Apache Kafka a Zerobus Ingest, sin Azure Databricks SDK. Consulta Usar APIs compatibles con Kafka con Zerobus Ingest.

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

Todos escriben directamente en las tablas Delta. Para una comparación completa y cómo elegir, consulta protocolos API. Para escribir tu primer cliente, consulta Use Zerobus Ingest.

Cost

Los cargos por ingesta de Zerobus se facturarán con la SKU "Automatizada sin servidor". Los precios están disponibles en la página de precios de Lakeflow Connect.

Supervisión del uso

Puedes monitorizar tu gasto a través de la tabla del sistema de uso facturable. Consulte Tabla de referencia del sistema de uso facturable Filtre el uso de ingesta de Zerobus con:

  • billing_origin_product = 'LAKEFLOW_CONNECT'
  • product_features.lakeflow_connect.zerobus_request_type identifica cómo se ingerieron los datos: 'GRPC' (SDK streaming), 'HTTP' (REST) 'OTEL_GRPC' y 'OTEL_HTTP' (OpenTelemetry/OTLP), o 'KAFKA' (APIs compatibles con Kafka).

Recursos adicionales