Lakeflow Spark宣言型パイプライン フローを使用してデータを段階的にロードして処理する
データは フロー を通じてパイプラインで処理されます。各フローは クエリ と、通常は ターゲット で構成されます。フローはクエリをバッチとして、またはターゲットへのデータ ストリームとして増分的に処理します。フローは、 Lakeflow Spark宣言型パイプラインのパイプライン内に存在します。
通常、ターゲットを更新するパイプラインでクエリを作成すると、フローは自動的に定義されますが、複数のソースから 1 つのターゲットに追加するなど、より複雑な処理のために追加のフローを明示的に定義することもできます。
最新情報
フローは、定義元のパイプラインが更新されるたびに実行されます。このフローは、使用可能な最新のデータでテーブルを作成または更新します。フローの種類とデータの変更状態に応じて、更新は新しいレコードのみを処理する増分更新を実行することも、データソースからすべてのレコードを再処理する完全な更新を実行することもできます。
- パイプラインの更新の詳細については、「パイプラインの更新を実行する」を参照してください。
- スケジュールの設定および更新のトリガーに関する詳細情報については、トリガー パイプライン モードと継続的パイプライン モードを参照してください。
デフォルトフローと追加フロー
パイプラインで、ターゲットを更新するクエリを作成すると、 デフォルトフロー が自動的に定義されます。ストリーミングテーブルの場合、デフォルトのフローは、更新のたびに新しい行を追加する 追加 フローであり、ターゲットと同じ名前になります。フローとそのターゲットを1つのステップで作成することは、パイプラインを使用する最も一般的な方法であり、これにより、データの取り込みや変換を行うことができます。
ターゲットとは別にフローを定義することもできます。これにより、複数のフローが単一のターゲットにデータを追加できるようになります。このような場合に便利です
- 完全な更新を必要とせずに、既存のストリーミングテーブルに追記するストリーミングソースを追加します。
- ストリーミングテーブルを、不足しているヒストリカルデータでバックフィルします。
UNION句を使用せずに、複数のソースからのデータを結合します。
デフォルトおよび明示的なフローの作成例については、LakeFlow Spark宣言型パイプラインでフローを使用するを参照してください。
フローの種類
ストリーミングテーブルとマテリアライズドビューのデフォルトのフローは追加フローです。 チェンジデータキャプチャデータ ソースから読み取るフローを作成することもできます。 次の表では、さまざまな種類のフローについて説明します。
フロータイプ | 説明 |
|---|---|
追加 | 追加 フローは最も一般的な種類のフローであり、ソース内の新しいレコードは更新ごとにターゲットに書き込まれます。構造化ストリーミングの追加モードに対応します。 デフォルトのフロー(ターゲットのストリーミングテーブルまたはマテリアライズドビューで作成されたもの)は、ターゲットと同じ名前になります。他のターゲットにはデフォルトフローがありません。 |
Auto CDC(以前は apply changes ) | Auto CDC フローは、チェンジデータキャプチャ(CDC)データを含むクエリを取り込みます。AUTO CDC フローはストリーミングテーブルのみを対象とし、ソースはストリーミングソースである必要があります( CDCデータの詳細については、「AUTO CDC APIs:パイプラインによるチェンジデータキャプチャの簡素化」を参照してください。 |
更新 (パブリック プレビュー) | 更新フローは、グローバルでウォーターマークなしのストリーミング集計をシンクに出力し、各バッチで変更されたレコードのみをエミットします。 更新フローはPythonでのみ使用できます。「update_flow」を参照してください。 |
その他のリソース
フローとその使用方法に関する詳細については、以下のトピックを参照してください。