REFRESH (MATERIALIZED VIEW または STREAMING TABLE)

適用対象: Databricks SQL

ストリーミング テーブルまたはマテリアライズド ビューのデータを更新します。 データは既定では同期的に更新されます。 DESCRIBE EXTENDED を実行することで更新の状態を追跡できます。

具体化されたビューとストリーミング テーブルに対する作成操作と更新操作は、サーバーレスの Lakeflow パイプラインを利用します。 カタログ エクスプローラーを使用して、UI のバッキング パイプラインの詳細を表示できます。 「カタログ エクスプローラーとは」を参照してください。

REFRESH MATERIALIZED VIEW は、具体化されたメトリック ビューにも適用されます。 これを使用して、メトリック ビューをバックする具体化を手動で更新します。 メトリック ビューについては、「具体化」を参照してください

構文

REFRESH { MATERIALIZED VIEW | [ STREAMING ] TABLE } table_name
  [ FULL ] [ WHERE predicate ] [ SYNC | ASYNC ]

同じコマンドで、 FULLWHERESYNC または ASYNC の任意のサブセットを指定できます。

パラメーター

  • table_name

    更新するマテリアライズド ビューまたはストリーミング テーブルを識別します。 名前には、 時仕様またはオプション指定を含めてはなりません。 オブジェクトが見つからない場合、Azure Databricks で TABLE_OR_VIEW_NOT_FOUND エラーが発生します。

  • 満杯

    完全更新を実行するかどうか。

    • マテリアライズド ビューの場合、完全更新によってソースで使用可能なすべてのデータが処理されます。
    • ストリーミング テーブルの場合、完全な更新によりテーブルが切り詰められ、ストリーミング テーブルの最新の定義を使ってソースで利用できるすべてのデータが処理されます。

    完全更新では既存のデータが切り捨てられるため、データの履歴全体を保持しないソースや、Kafka などの短い保持期間を持つソースに対して完全な更新を呼び出すことはできません。 ソースでデータが使用できなくなった場合、古いデータを回復できないことがあります。

  • WHERE 述語

    適用対象:FLOW REPLACE WHERE句で作成されたストリーミング テーブルをチェックする

    この単一の更新のフローの REPLACE WHERE 述語をオーバーライドします。 更新により、ターゲットから predicate 一致する行のみが削除され、ソースから再計算されます。 フローの定義された述語は変更されず、次回の更新時に再度適用されるため、述語のオーバーライドはテーブル定義を変更しない 1 回限りの操作です。 1 回限りのバックフィルまたは修正に使用します。 スタンドアロン ストリーミング テーブルの REPLACE WHERE フローを参照してください。

    WHERE句は、フローが FLOW REPLACE WHERE で作成されたストリーミング テーブルでのみサポートされます。 他のストリーミング テーブルまたは具体化されたビューで WHERE を指定すると、エラーが返されます。

  • SYNC

    同期更新を実行するかどうか。 マテリアライズド ビューまたはストリーミング テーブルが作成されて最初のデータの読み込みが完了するまで、このコマンドがブロックします。

    これが既定の動作です。

  • 非同期

    Lakeflow パイプラインでバックグラウンド ジョブを開始する非同期更新を実行するかどうか。 このコマンドは、マテリアライズド ビューまたはストリーミング テーブルをバックアップするパイプラインへのリンクを使用して、データの読み込みが完了する直前に返されます。 リンクにアクセスして、更新の状態を確認できます。

    非同期更新を実行する場合は、ASYNC を指定する必要があります。 キーワードが指定されていない場合、操作は同期的に実行されます。

-- Refreshes the materialized view to reflect the latest available data
> REFRESH MATERIALIZED VIEW catalog.schema.view_name;

-- Refreshes the streaming table to process the latest available data
-- The current catalog and schema will be used to qualify the table
> REFRESH STREAMING TABLE st_name;

-- Truncates the table and processes all data from scratch for the streaming table
> REFRESH STREAMING TABLE cat.db.st_name FULL;

-- Overrides the REPLACE WHERE predicate for a single asynchronous refresh.
-- Only rows matching id = 3 are recomputed. The flow's static predicate is unchanged.
> REFRESH STREAMING TABLE rep_st WHERE id = 3 ASYNC;