Lakeflow パイプライン フローを使用してデータを増分的に読み込んで処理する

データは 、フローを介してパイプラインで処理されます。 各フローは 、クエリ と、通常は ターゲットで構成されます。 このフローは、クエリをバッチとして処理するか、ターゲットへのデータ ストリームとして増分的に処理します。 フローは、Lakeflow パイプライン内に存在します。

通常、フローは、ターゲットを更新するクエリをパイプラインで作成するときに自動的に定義されますが、複数のソースから 1 つのターゲットに追加するなど、より複雑な処理のために追加のフローを明示的に定義することもできます。

最新情報

フローは、定義パイプラインが更新されるたびに実行されます。 フローでは、使用可能な最新のデータを使用してテーブルが作成または更新されます。 フローの種類とデータの変更の状態によっては、更新によって増分更新が実行され、新しいレコードのみが処理されるか、完全な更新が実行され、データ ソースからすべてのレコードが再処理されます。

既定のフローと追加フロー

ターゲットを更新するクエリをパイプラインで作成すると、 既定のフロー が自動的に定義されます。 ストリーミング テーブルの場合、既定のフローは、更新ごとに新しい行を追加する 追加 フローであり、ターゲットと同じ名前を持ちます。 フローとそのターゲットを 1 つのステップで作成することは、パイプラインを使用する最も一般的な方法であり、データの取り込みまたは変換に使用できます。

また、ターゲットとは別にフローを定義することもできます。これにより、複数のフローが 1 つのターゲットにデータを追加できます。 これは、次の操作を行う必要がある場合に便利です。

  • 完全な更新を必要とせずに、既存のストリーミング テーブルに追加するストリーミング ソースを追加します。
  • 履歴データが不足しているストリーミング テーブルをバックフィルします。
  • UNION句を使用せずに、複数のソースのデータを結合します。

既定のフローと明示的なフローを作成する例については、 Lakeflow パイプラインでのフローの使用に関するページを参照してください。

フローの種類

ストリーミング テーブルと具体化されたビューの既定のフローは、追加フローです。 変更データ キャプチャ データ ソースから読み取るフローを作成することもできます。 次の表では、さまざまな種類のフローについて説明します。

フローのタイプ Description
[追加] 追加 フローは最も一般的なフローの種類であり、ソース内の新しいレコードは更新ごとにターゲットに書き込まれます。 これらは、構造化ストリーミングの追加モードに対応します。 ONCE フラグを追加して、ターゲットが完全に更新されない限り、データを 1 回だけターゲットに挿入するバッチ クエリを示すことができます。 任意の数の追加フローを特定のターゲットに書き込むことができます。
既定のフロー (ターゲット ストリーミング テーブルまたは具体化されたビューで作成) は、ターゲットと同じ名前になります。 他のターゲットには既定のフローがありません。
自動 CDC (以前に 変更を適用) 自動 CDC フローは、変更データ キャプチャ (CDC) データを含むクエリを取り込みます。 自動 CDC フローはストリーミング テーブルのみを対象とすることができ、ソースはストリーミング ソースである必要があります ( ONCE フローの場合でも)。 複数の自動 CDC フローは、1 つのストリーミング テーブルをターゲットにすることができます。 自動 CDC フローのターゲットとして機能するストリーミング テーブルは、他の自動 CDC フローでのみ対象にすることができます。
CDC データの詳細については、「 AUTO CDC API: パイプラインを使用して変更データ キャプチャを簡略化する」を参照してください。
更新 (パブリック プレビュー) 更新 フローは、グローバルなウォーターマークなしのストリーミング集計結果をシンクに出力し、各バッチで変更されたレコードのみを送信します。
更新フローは、Pythonでのみ使用できます。 update_flowを参照してください。

その他のリソース

フローとその使用方法の詳細については、次のトピックを参照してください。