Lakeflow パイプラインのシンク

既定では、パイプライン フローは Unity カタログによって管理される Delta テーブル (通常はテーブルまたは具体化されたビューをストリーミング) に結果を書き込みます。 シンクは、変換されたデータを Databricks マネージド ストレージの外部 (イベント ストリーミング サービスやカスタム データ ストアなど) の外部の宛先に書き込む代替出力ターゲットです。

シンクは追加フローで使用されます。 シンク API のいずれかを使用してシンクを定義し、それをtarget定義内のappend_flowとして参照します。

シンクを使用するタイミング

Databricks では、次の必要がある場合にシンクを使用することをお勧めします。

  • クラウド ストレージではなくメッセージ バスにデータを流す必要がある、不正行為の検出、リアルタイム分析、顧客の推奨事項など、待機時間が短い運用ユース ケースを構築します。 ミリ秒の待機時間が必要なワークロードについては、「 Lakeflow パイプラインでリアルタイム モードを使用する」を参照してください。
  • Unity カタログのマネージド テーブルや外部テーブルなど、外部 Delta インスタンスによって管理されるテーブルに変換されたデータを書き込みます。
  • 処理されたデータを Apache Kafka トピックに書き戻して、Azure Databricks外で使用するなど、外部システムへの ETL の反転を実行します。
  • Python カスタム データ ソースを使用して、Azure Databricks でネイティブにサポートされていない形式に書き込みます。

シンクの種類

パイプラインでは、次のシンクの種類がサポートされています。

シンクの種類 Description
デルタ テーブル シンク Unity カタログのマネージド テーブルまたは外部 Delta テーブルに書き込みます。 ファイル パスまたは完全修飾テーブル名を指定します。
Apache Kafka シンク パイプライン ランタイムに含まれる Kafka コネクタを使用して Apache Kafka トピックに書き込みます。
Azure Event Hubs シンク Kafka インターフェイスを使用してAzure Event Hubsに書き込みます。 Kafka シンクと同じオプションを使用します。
Python カスタムシンク spark.dataSource.registerに登録されているPythonカスタム データ ソースを使用して、任意のデータ ストアに書き込みます。
ForEachBatch シンク ストリーミング データの各マイクロバッチにカスタム Python ロジックを適用します。 複数の宛先への書き込み、アップサートの実行、またはストリーミング書き込みをネイティブでサポートしていないターゲットの使用が必要な場合に使用します。

シンクの API

パイプラインには、シンクを作成するための 2 つの API が用意されています。

どちらのシンク型も、targetappend_flowとして参照されます。

Limitations

  • シンクは、Pythonでのみ使用できます。 SQL はサポートされていません。
  • ストリーミング クエリのみがサポートされています。 バッチ クエリはサポートされていません。
  • シンクに書き込むことができるのは append_flow だけです。 create_auto_cdc_flow およびその他のフローの種類はサポートされていません。
  • シンクでは、パイプラインの期待値はサポートされていません。
  • 完全更新を実行しても、以前に書き込まれたシンク内のデータはクリーンアップされません。

その他のリソース