パイプラインはどのように更新されますか?

パイプラインの更新が実行されると、パイプラインで定義されている具体化されたビューとストリーミング テーブルが更新され、結果にソース データの現在の状態が反映されます。 データセットの更新方法は、その種類と更新の種類によって異なります。 更新プログラムをトリガーして管理する方法については、「 パイプラインの更新を実行する」を参照してください。

更新の種類

既定では、パイプライン内のすべての具体化されたビューとストリーミング テーブルは、更新ごとに更新されます。 次の表は、各更新の種類の動作をまとめたものです。

更新の種類 マテリアライズド・ビュー ストリーミング テーブル
更新 (既定値) 定義クエリの現在の結果を反映するように結果を更新します。 Azure Databricksコストを調べ、より効率的な場合は増分更新を実行します。 ストリーミング テーブルとフローで定義されたロジックを使用して、新しいレコードを処理します。
完全更新 結果を再計算して、定義クエリの現在の結果を反映します。 ストリーミング テーブルからデータをクリアし、フローからチェックポイントをクリアして、データ ソースからすべてのレコードを再処理します。
ストリーミング フロー チェックポイントをリセットする 具体化されたビューには適用されません。 フローからチェックポイントをクリアしますが、ストリーミング テーブルからデータを消去せず、データ ソースからのすべてのレコードを再処理します。

更新 (既定値)

既定の更新では、データセットが更新され、定義クエリの現在の結果が反映されます。

ストリーミング テーブルは本質的に増分型です。 ストリーミング テーブルの更新では、前回の更新以降に到着したレコードのみが評価され、テーブルの現在の定義を使用して追加されます。 古いレコードは再処理されないため、既に書き込まれたデータに影響を与える変更は適用されません。 言い換えると、ストリーミング テーブルの既定の更新では、データの正確性が低下し、リソース コストが削減されます。 古いデータを再処理するには、フル 更新を実行するか、フロー チェックポイントをリセットします。

具体化されたビューは増分更新を試みますが、必要に応じてすべてのレコードを再処理して、テーブルを完全に正確に保ちます。 具体化されたビューは、次の 2 つの方法のいずれかを使用して更新されます。

  • 増分更新 では、前回の更新以降の変更が識別され、新規または変更されたデータのみがマージされます。
  • 完全更新 では、クエリ全体が実行され、増分更新が不可能またはコスト効率が高くない場合に、既存のデータが置き換えられます。

既定では、Azure Databricksはコスト モデルを使用して、よりコスト効率の高い方法を選択します。 この選択は、更新ポリシーでオーバーライドできます。 増分更新のセマンティクス、要件、およびサポートされている SQL については、 具体化されたビューの増分更新に関するページを参照してください。

完全更新

完全更新では、データセットを定義するロジックを使用して、ソース データからのすべてのレコードが再処理されます。

  • 具体化されたビューの場合、完全更新によって結果全体が再計算されます。 具体化されたビューは常にバッチ クエリと同じ結果を返すので、既定の更新と完全更新では同じデータが生成されます。
  • ストリーミング テーブルの場合、完全更新によってテーブルが切り捨てられ、フローのストリーミング チェックポイントがクリアされ、ソースからすべてのレコードが再処理されます。

完全更新ではすべてのソース データが再処理されるため、時間とコストは、そのデータのサイズに応じてスケーリングされます。 Databricks では、定義やスキーマの変更が既存のデータと互換性がない場合など、必要な場合にのみ完全更新を実行することをお勧めします。 ストリーミング テーブルを完全に更新すると、ソースが元のデータを保持しなくなった場合 (たとえば、Kafka トピックが保持期間を過ぎた場合など)、レコードを削除できます。

ストリーミング テーブルの完全更新を実行するタイミングと方法については、「ストリーミング テーブルの 完全更新」を参照してください。

チェックポイントのリセット

チェックポイントのリセットは、ストリーミング テーブルにのみ適用されます。 ストリーミング テーブルに既に書き込まれているデータをクリアせずに、選択したフローのストリーミング チェックポイントをクリアし、それらのフローを介してソースからすべてのレコードを再処理します。 完全更新とは異なり、既存のテーブル データは保持されます。

テーブルを切り捨てずに、フローのロジックを変更した後など、選択したフローのストリーミング ソースを再処理する場合に使用します。

チェックポイントのリセットは、Lakeflow パイプライン REST API を使用してトリガーされます。 手順については、「 パイプラインの更新を開始して、選択的ストリーミング フローのチェックポイントをクリアする」を参照してください。

その他のリソース