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

Lakeflow Spark宣言型パイプライン フローを使用してデータを段階的にロードして処理する

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

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

最新情報

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

デフォルトフローと追加フロー

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

ターゲットとは別にフローを定義することもできます。これにより、複数のフローが単一のターゲットにデータを追加できるようになります。このような場合に便利です

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

デフォルトおよび明示的なフローの作成例については、LakeFlow Spark宣言型パイプラインでフローを使用するを参照してください。

フローの種類

ストリーミングテーブルとマテリアライズドビューのデフォルトのフローは追加フローです。 チェンジデータキャプチャデータ ソースから読み取るフローを作成することもできます。 次の表では、さまざまな種類のフローについて説明します。

フロータイプ

説明

追加

追加 フローは最も一般的な種類のフローであり、ソース内の新しいレコードは更新ごとにターゲットに書き込まれます。構造化ストリーミングの追加モードに対応します。ONCEフラグを追加できます。このフラグは、ターゲットが完全に更新されない限り、データがターゲットに1回だけ挿入されるバッチ クエリであることを示します。任意の数の追加フローが特定のターゲットに書き込むことができます。

デフォルトのフロー(ターゲットのストリーミングテーブルまたはマテリアライズドビューで作成されたもの)は、ターゲットと同じ名前になります。他のターゲットにはデフォルトフローがありません。

Auto CDC(以前は apply changes

Auto CDC フローは、チェンジデータキャプチャ(CDC)データを含むクエリを取り込みます。AUTO CDC フローはストリーミングテーブルのみを対象とし、ソースはストリーミングソースである必要があります(ONCE フローの場合でも)。複数のauto CDCフローは、単一のストリーミングテーブルを対象とすることができます。自動CDCフローのターゲットとなるストリーミングテーブルは、他の自動CDCフローのみをターゲットとすることができます。

CDCデータの詳細については、「AUTO CDC APIs:パイプラインによるチェンジデータキャプチャの簡素化」を参照してください。

更新 (パブリック プレビュー)

更新フローは、グローバルでウォーターマークなしのストリーミング集計をシンクに出力し、各バッチで変更されたレコードのみをエミットします。

更新フローはPythonでのみ使用できます。「update_flow」を参照してください。

その他のリソース

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