メインコンテンツまでスキップ

Zerobus Ingestコネクタの概要

Zerobus Ingest は、Unity Catalog Delta テーブルにデータを直接書き込むプッシュベースの取り込み API です。これは、着信接続を処理するために自動的にスケーリングするサーバーレス コネクタです。 パーティションの構成やブローカーの管理は必要ありません。

Zerobus Ingest では、「スケーリング戦略」として、より多くの接続を開くことになります。これにより、メッセージ バス インフラストラクチャの必要性がなくなり、取り込みワークフローが合理化されます。

Zerobus Ingest SDKと統合できる、またはサポートされているAPIs (gRPC、 REST 、OpenTelemetry)を介して通信できるアプリケーションであれば、Zerobus Ingestを使用してデータを効率的にDeltaテーブルにプッシュできます。

Zerobus Ingest バッファは、データを Delta テーブルに追加する前に送信します。このバッファリングにより、さまざまなスループットで大量のクライアントをサポートする、効率的で耐久性のある取り込みメカニズムが作成されます。

Delta 形式でデータが生成されると、包括的な Databricks データ インテリジェンス プラットフォームと完全に互換性を持つようになり、ユーザーは使い慣れたツールや機能を活用して、さらなるデータ分析や処理を行うことができます。

コンセプト

データ プロデューサーは、まず Zerobus Ingest API へのストリームを開き、ターゲット Delta テーブルを指定して、そのスキーマに一致するメッセージを構築し、開いたストリーム経由でメッセージをプッシュします。サービスは、データを永続的にし、クライアントのメッセージを確認し、最適化された方法で Delta テーブルにデータを実現します。

Zerobus Ingestの仕組み

ストリーム

ストリームは、クライアントと Zerobus Ingest サーバー間の直接接続です。SDK はストリームを使用して、長時間持続する高スループットの接続を実現します。

  • ストリームは、SDK を使用した gRPC API でのみ使用されます。
  • ストリームは単一のターゲット テーブルにデータを取り込みます。
  • イベント配信の順序はストリームごとに保証されます。
  • 追加のストリームを開いて、異なるテーブルにデータを書き込むことができます。
  • 追加のストリームを開いてクライアントのスループットを向上させることができます。
    • 注意: クライアントがメッセージを異なるストリームにラウンドロビンする場合、順序は保証されなくなります。

サーバ

Zerobus Ingest サービスはテーブルを自動的に作成または操作しません。ユーザーは自分でテーブルを作成する必要があります。テーブルとそのスキーマは、受信データの期待値に関する信頼できるソースです。

Zerobus Ingest サーバーは、クライアントから送信されたデータを受け入れ、それがターゲット テーブル スキーマに適合しているかどうかを検証し、それをテーブルに書き込みます。データがテーブルに収まる場合、耐久性が保たれます。その後、確認応答がクライアントに送り返されます。

サービス責任には以下が含まれます。

  • テーブルへのメッセージのスキーマ検証。
  • データをタイムリーにターゲット テーブルに実体化します。
  • データが永続的であることをクライアントに確認通知します。

クライアント

クライアント統合には以下が含まれます。

  • ターゲット テーブルを選択します。
  • Zerobus Ingest サービスを使用してストリームを確立します。
  • スキーマ互換メッセージを構築します。
  • メッセージを送信しています。
  • メッセージの確認を管理します。
  • クライアント、ストリーム、またはサーバー側の障害(接続の問題、スキーマの不一致など)が発生した場合の回復メカニズムの実装

Zerobus Ingest SDK は、クライアント統合を実現するためのユーザーフレンドリーな方法を提供し、ドキュメントにはさまざまな開発パターンの例が示されています。カスタム統合の場合、SDK は統合構造と回復処理のリファレンスとして機能します。

Zerobus Ingestを使い始める

注記

クライアント側のファイアウォールがある場合は、Zerobus Ingest で使用される IP アドレスを許可リストに追加します。リージョン別に IP アドレスを表示するには、 「Databricks サービスとアセットの IP アドレスとドメイン」を参照してください。

  1. Zerobus Ingest URL を取得します。
  2. データを取り込むテーブルを作成または識別します。
  3. サービスプリンシパルを作成し、テーブルに権限を付与します。
  4. クライアントまたはエクスポーターを接続して、データの送信を開始してください。

ご自身のユースケースに合ったガイドを選択してください。

  • 独自のデータを取り込む :定義したスキーマを使用して、Zerobus Ingest SDKまたはREST APIを使用します。詳しい手順については、 「Zerobus Ingestコネクタの使用」を参照してください。

  • OpenTelemetry データの取り込み : 標準の OpenTelemetry SDK またはコレクターを使用して、トレース、ログ、およびメトリクスを事前定義されたテーブルスキーマに送信します。 詳しい手順については、 「Zerobus Ingest を使用した OpenTelemetry データの取り込み」を参照してください。

耐久性のあるフォールバック場所

Zerobus Ingest がデータを永続化した後、Zerobus Ingest が公開 (ファイルをストレージにプッシュ) する前にターゲット テーブルに重大な変更が加えられた場合、コネクタはテーブルのストレージの場所にある別のフォルダーでデータを使用できるようにします。

データは、テーブル ルート ディレクトリを基準とした次のパスの下に Parquet ファイルとして保存されます。 _zerobus/table_rejected_parquets/

このディレクトリは、テーブルの物理的なルートストレージ場所の直下に作成され、サービスによって生成されるすべての Parquet ファイルはそこに書き込まれます。これにより、永続化されたすべてのデータがテーブルのストレージ境界内に留まり、テーブル自体と同じアクセス制御とライフサイクルポリシーに従うことが保証されます。

料金

Zerobus Ingestの料金は「Jobs レス」 SKUに対して請求されます。 価格はLakeFlow Connect価格ページで確認できます。

使用状況をモニタリングする

Zerobus Ingest コネクタの使用状況をモニタリングするには 2 つの方法があります。

Zerobus Ingest システムテーブル

Zerobus Ingest システムテーブルを介して使用状況を監視できます。 「Zerobus Ingest システムテーブル リファレンス」を参照してください。

請求システムテーブル

料金利用システムテーブルを通じて支出を監視できます。 料金利用システムテーブルリファレンス を参照してください。 Zerobus Ingest の使用状況に応じてフィルターを適用します。

  • billing_origin_product = 'LAKEFLOW_CONNECT'
  • product_features.lakeflow_connect.zerobus_request_type = 'GRPC' または 'HTTP'
備考

ベータ版

OpenTelemetry(OTLP)のデータ取り込み機能はベータ版であり、現時点では課金されません。