API-Protokolle

Zerobus Ingest stellt einen Endpunkt mit mehreren API-Protokollen bereit: gRPC (über die SDKs), REST, OpenTelemetry (OTLP) und Kafka-kompatible APIs. Alle schreiben direkt in Unity Catalog Delta-Tabellen, sodass du das Protokoll auswählst, das am besten zu jedem Produzenten passt.

Zerobus-Ingest-Skalierungsarchitektur: Quellen senden Protocol Buffers (protobuf), JSON und Arrow-Datensätze über die gRPC-, REST-, OpenTelemetry- und Kafka-kompatiblen APIs, die durch Auto-Scaling und Lastverteilung zu einem horizontal skalierbaren Pool zustandsloser Zerobus-Knoten fließen, jeweils mit einem Write-Ahead-Log und einem Lakehouse-Writer, der Datensätze in eine von Unity Catalog verwaltete Delta-Tabelle einschlägt

Welches Protokoll solltest du verwenden?

Protocol Am besten geeignet für: Warum?
gRPC (SDKs) Produzenten von Datenströmen mit hohem Volumen: Datenerfassung ändern, Clickstream, Protokoll- und Ereignisweiterleitungen. Dauerhafte Verbindungen liefern den höchsten dauerhaft erzielbaren Durchsatz und bewahren die Reihenfolge innerhalb jedes Streams. Verfügbar in Python, Java, Rust, Go, TypeScript und (in der Beta) C++ und C# / .NET. Siehe Write a Client.
REST Große Bestände leichter oder „gesprächiger” Clients, wie Edge- und IoT-Geräte, die selten melden. Zustandslos: Jede Anfrage ist in sich abgeschlossen, sodass Clients keine offene Verbindung aufrechterhalten. Einfacher für Geräte, die gelegentlich Daten senden. Siehe das REST-Beispiel.
OpenTelemetry (OTLP) Observability-Pipelines, die bereits Spuren, Protokolle und Metriken aussenden. Richten Sie Ihre bestehenden OpenTelemetry-SDKs oder Collectors auf den Endpunkt ohne benutzerdefinierte Integration aus. Siehe OpenTelemetry-Daten mit Zerobus Ingest erfassen.
Kafka-kompatible APIs (Beta) Produzenten, die bereits das Kafka-Protokoll sprechen oder Tools, die an Kafka aussenden, wenn man diese Daten in Delta mit minimaler Codeänderung haben möchte. Wiederverwenden Sie einen bestehenden Kafka-Producer ohne Azure Databricks SDK. Richten Sie es auf den Endpunkt aus und erstellen Sie ein Thema, das nach Ihrer Zieltabelle benannt ist. Siehe Use Kafka-compatible APIs with Zerobus Ingest.

gRPC mit den SDKs

Die Zerobus-SDKs umwickeln eine persistente, bidirektionale gRPC-Verbindung, die als Stream bezeichnet wird. Da die Verbindung offen bleibt, erzielt gRPC den höchsten anhaltenden Durchsatz und ist der empfohlene Weg für kontinuierliche, hochvolumige Aufnahme. Jeder offene Strom ist eine langjährige Verbindung, sodass der Durchsatz eines Kunden mit der Anzahl der geöffneten Ströme skaliert.

Die SDKs übernehmen das Verbindungsmanagement, das Offset-Tracking und die Wiederherstellung für Sie und sind in Python, Java, Rust, Go, TypeScript sowie (in der Beta) C++ und C# / .NET verfügbar. Sie bieten ein gleichwertiges Verhalten über verschiedene Sprachen hinweg, also wähle diejenige, die zu deiner Anwendung passt. Über gRPC unterstützen die SDKs JSON-, Protobuf- und Apache Arrow-Datensatzformate. Siehe Nachrichtentypen.

Um einen Client mit den SDKs zu schreiben, einschließlich eines Sprachbeispiels für jede Sprache, siehe Write a Client.

REST

Die REST-Schnittstelle ist zustandslos: Jede Anfrage wird von selbst abgeschlossen, ohne eine offene Verbindung zu halten. Das macht es zu einer hervorragenden Ergänzung für große Flotten leichter oder intermittierender Hersteller, zum Beispiel Edge- und IoT-Geräte, die selten Status melden, bei denen eine dauerhafte Verbindung pro Gerät unpraktisch wäre.

Die REST-Aufnahme wird durch eine Request-Rate-Quote geregelt (siehe Zerobus Ingest Quoten). Für einen Großvolumen-Hersteller bieten die SDKs über gRPC einen höheren Durchsatz als viele einzelne REST-Anfragen. Reservieren Sie REST für Produzenten, die selten senden oder keine dauerhafte Verbindung halten können.

OpenTelemetry (OTLP)

Zerobus Ingest enthält einen nativen OpenTelemetry Protocol-Endpunkt. Wenn Ihre Systeme bereits OpenTelemetry-Traces, -Logs und -Metriken erzeugen, können Sie Ihre vorhandenen OTLP-Exporter oder -Collector auf Zerobus Ingest ausrichten und diese Telemetriedaten direkt in Delta-Tabellen schreiben, die Ihnen gehören – in der Regel mit nur einer Konfigurationsänderung. Siehe OpenTelemetry-Daten mit Zerobus Ingest erfassen.

Kafka-kompatible APIs

Important

Die Kafka-kompatiblen APIs befinden sich in der Beta-Phase.

Zerobus Ingest bietet Kafka-kompatible Producer-APIs, sodass Sie Daten mit jedem Apache-Kafka-Producer-Client erfassen können, ohne ein Azure Databricks SDK zu benötigen. Sie verweisen mit einem vorhandenen Kafka-Producer auf den Endpunkt und produzieren in ein Thema, das nach Ihrer Zieltabelle benannt ist, und die Datensätze landen in einer Unity Catalog Delta-Tabelle. Das passt am besten, wenn man bereits einen Kafka-Produzenten oder einen Sammler oder Agenten betreibt, der an Kafka ausgibt, und diese Daten mit minimaler Codeänderung in Delta weiterleiten möchte.

Die Kafka-kompatiblen APIs implementieren die herstellerseitige Teilmenge des Kafka-Protokolls und sind nur schreibbar: Consumer-, Admin- und transaktionale APIs sind nicht verfügbar. Sie akzeptieren nur JSON-Daten. Der Durchsatz wird durch eine Request-Rate-Quote pro Arbeitsbereich geregelt und nicht durch einzelne Verbindungen. Das spezifische Kontingent finden Sie unter Zerobus-Ingest-Kontingente. Für den höchsten Durchsatz, die Bestätigungen pro Datensatz und die automatische Wiederherstellung verwenden Sie stattdessen ein Zerobus-SDK statt gRPC.

Für Einrichtung, Authentifizierung und ein Herstellerbeispiel siehe Use Kafka-compatible APIs with Zerobus Ingest.