REFRESH (MATERIALIZED VIEW または STREAMING TABLE)

適用対象: Databricks SQL

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

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

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

構文

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

パラメーター

  • table_name

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

  • 満杯

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

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

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

  • SYNC

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

    これが既定の動作です。

  • 非同期

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

    非同期更新を実行する場合は、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;