API プロトコル
Zerobus Ingest は、gRPC(SDK経由)、REST、OpenTelemetry(OTLP)、および Kafka 互換の APIs といった複数の API プロトコルを備えた1つの Endpoint を公開します。これらはすべて Unity Catalog Delta テーブルに直接書き込むため、各プロデューサーに最適なプロトコルを選択できます。

どのプロトコルを使用すべきですか?
プロトコル | どのようなタスクにベストなのか | 理由 |
|---|---|---|
gRPC (SDK) | 大容量ストリーミングプロデューサー:チェンジデータキャプチャ、クリックストリーム、Logsおよびイベントフォワーダー。 | 永続的な接続は、最も高い持続的なthroughputを実現し、ストリームごとの順序を保持します。Python、Java、Rust、Go、TypeScript、および(ベータ版)C++ と C# / .NET で利用可能です。クライアントを記述するを参照してください。 |
REST | 頻繁にレポートを行わないエッジデバイスやIoTデバイスなど、軽量または「チャッティ(通信頻度が高い)」なクライアントの大規模なフリート。 | ステートレス:各リクエストは独立しているため、クライアントは接続を開いたままにしません。データを時折送信するデバイスにとってよりシンプルです。REST の例を参照してください。 |
OpenTelemetry (OTLP) | トレース、Logs、メトリクスをすでに送信している観測可能性パイプライン。 | カスタム統合なしで、既存の OpenTelemetry SDK またはコレクターを Endpoint に向けます。Zerobus Ingest を使用した OpenTelemetry データの取り込みを参照してください。 |
Kafka 互換 API (ベータ版) | すでに Kafka プロトコルに対応しているプロデューサーや、Kafka に出力するツールがあり、最小限のコード変更でそのデータを Delta に取り込みたい場合。 | Databricks SDK を使用せずに、既存の Kafka プロデューサーを再利用します。Endpointに向け、ターゲットテーブル名にちなんだトピックにプロデュースします。Zerobus Ingest で Kafka 互換 APIs を使用するを参照してください。 |
SDK を使用した gRPC
Zerobus SDK は、ストリームと呼ばれる永続的な双方向 gRPC 接続をラップします。接続が開いたままになるため、gRPC は最高の持続的な throughput を実現し、継続的かつ大量のインジェストに推奨されるパスとなります。各オープンストリームは長期間存続する接続であるため、クライアントの throughput は、開くストリームの数に応じてスケーリングします。
SDK は接続管理、オフセット追跡、リカバリを自動的に処理します。Python、Java、Rust、Go、TypeScript、および (ベータ版) C++ と C# / .NET で利用可能です。これらは言語間で同等の動作を提供するため、アプリケーションに適したものを選んでください。gRPC 上で、SDK は JSON、protobuf、および Apache Arrow のレコード形式をサポートしています。メッセージタイプを参照してください。
SDKを使用してクライアントを記述する方法(言語ごとの例を含む)については、「クライアントの記述」を参照してください。
REST
REST インターフェースはステートレスです。各リクエストは、開いている接続を保持することなく、単独で完了します。これにより、軽量または断続的なプロデューサーを大量に抱える環境に適しています。例えば、デバイスごとに永続的な接続を維持することが非現実的である、ステータスを頻繁に報告しないエッジデバイスや IoT デバイスなどが挙げられます。
REST取り込みは、リクエストレートのクォータによって管理されます(Zerobus Ingestのクォータを参照)。大量のデータを扱うプロデューサーの場合、個別のRESTリクエストを多数発行するよりも、gRPC経由のSDKを使用する方が高いthroughputを維持できます。頻繁に送信しない、または永続的な接続を維持できないプロデューサーには、RESTを予約してください。
OpenTelemetry (OTLP)
Zerobus Ingest には、ネイティブの OpenTelemetry Protocol Endpoint が含まれています。システムがすでに OpenTelemetry のトレース、ログ、メトリクスを生成している場合は、既存の OTLP エクスポーターまたはコレクターを Zerobus Ingest に向けることで、通常は設定を変更するだけで、そのテレメトリを所有する Delta テーブルに直接格納できます。Zerobus Ingest を使用した OpenTelemetry データの取り込みを参照してください。
Kafka 互換 APIs
ベータ版
Kafka 互換の APIs はベータ版です。
Zerobus Ingest は Kafka 互換のプロデューサー APIs を提供しているため、Databricks SDK を使用せずに任意の Apache Kafka プロデューサークライアントで取り込みを行うことができます。既存の Kafka プロデューサーを Endpoint に向け、ターゲットテーブル名にちなんだトピックにプロデュースすると、レコードは Unity Catalog の Delta テーブルに格納されます。これは、すでに Kafka プロデューサー、または Kafka に出力するコレクターやエージェントを実行しており、最小限のコード変更でそのデータを Delta にルーティングしたい場合に最適です。
Kafka 互換の APIs は Kafka プロトコルのプロデューサー側のサブセットを実装しており、書き込み専用です。コンシューマー、管理、およびトランザクションの APIs は利用できません。JSONレコードのみを受け付けます。throughputは、個々の接続ではなく、ワークスペースごとのリクエストレートクォータによって管理されます。特定のクォータについては、Zerobus Ingestクォータを参照してください。最高のthroughput、レコードごとの確認応答、および自動リカバリを実現するには、代わりに gRPC 経由で Zerobus SDK を使用してください。
セットアップ、認証、およびプロデューサーの例については、Zerobus Ingest で Kafka 互換 APIs を使用するを参照してください。
関連
- メッセージタイプ:これらのプロトコルで使用可能なレコード形式。
- Zerobus Ingest の使用: SDK または REST API を使用してクライアントを作成します。
- Zerobus Ingest を使用して OpenTelemetry データをインジェストする: OpenTelemetry データをインジェストします。
- Zerobus Ingest のリリースステージ: 各インターフェースおよびレコード形式のリリースステージ。
- Zerobus Ingest で Kafka 互換 APIs を使用する:Kafka 互換のプロデューサー APIs を使用します。