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

Zerobus Ingestコネクタの概要

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

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

Zerobus Ingest SDK と統合できるアプリケーション、またはサポートされているAPIs (gRPC およびREST ) を介して通信できるアプリケーションは、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 コントロール プレーン アドレス」を参照してください。

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

詳細な手順については、 Zerobus Ingest コネクタの使用を参照してください。

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

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

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

  • _zerobus/テーブル_拒否_parquets/

このディレクトリはテーブルの物理的なルート ストレージの場所の直下に作成され、サービスによって生成されたすべての Parquet ファイルがそこに書き込まれます。

これにより、すべての永続データがテーブルのストレージ境界内に保持され、テーブル自体と同じアクセス制御とライフサイクル ポリシーに従うようになります。

料金

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

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

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

Zerobus Ingest システムテーブル

Zerobus Ingest システムテーブルを介して使用状況を監視できます。

請求システムテーブル

料金利用システムテーブルを通じて支出を監視できます。 Zerobus Ingest の使用状況をフィルターするには:

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