REFRESH (MATERIALIZED VIEW または STREAMING TABLE)
適用対象: Databricks SQL
ストリーミング テーブルまたは具体化されたビューのデータを更新します。 データは既定では同期的に更新されます。
DESCRIBE EXTENDED
を実行することで更新の状態を追跡できます。
Note
具体化されたビューとストリーミング テーブルに対する作成および更新操作は、サーバーレス Delta Live Tables パイプラインを利用します。 カタログ エクスプローラーを使用して、UI のバッキング パイプラインの詳細を表示できます。 「カタログ エクスプローラーとは」を参照してください。
構文
REFRESH { MATERIALIZED VIEW | [ STREAMING ] TABLE } table_name [ FULL | { SYNC | ASYNC }]
パラメーター
-
更新する具体化されたビューまたはストリーミング テーブルを識別します。 この名前には、テンポラル仕様を含めることはできません。 オブジェクトが見つからない場合、Azure Databricks で TABLE_OR_VIEW_NOT_FOUND エラーが発生します。
FULL
完全更新を実行するかどうか。
- 具体化されたビューの場合、完全更新によってソースで使用可能なすべてのデータが処理されます。
- ストリーミング テーブルの場合、完全な更新によりテーブルが切り詰められ、ストリーミング テーブルの最新の定義を使ってソースで利用できるすべてのデータが処理されます。
完全更新では既存のデータが切り詰められるため、データの履歴全体を保持しないソースや、Kafka など、保持期間が短いソースの場合、完全更新の呼び出しは推奨されません。 ソースでデータが使用できなくなった場合、古いデータを回復できないことがあります。
同期
同期更新を実行するかどうか。 具体化されたビューまたはストリーミング テーブルが作成されて最初のデータの読み込みが完了するまで、このコマンドがブロックします。
これが既定の動作です。
ASYNC
Delta Live Tables でバックグラウンド ジョブを開始する非同期更新を実行するかどうか。 このコマンドは、具体化されたビューまたはストリーミング テーブルをバッキングする Delta Live Tables パイプラインへのリンクを使用して、データの読み込みが完了する直前に返されます。 リンクにアクセスして、更新の状態を確認できます。
非同期更新を実行する場合は、
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 TABLE cat.db.st_name FULL;