適用対象:
Databricks SQL
ビューに関連付けられたメタデータを変更します。
次のいずれかのアクションを実行できます。
- 既存の具体化されたビューを更新するためのスケジュールを追加します。
- 具体化されたビューの既存の更新スケジュールを変更します。
- 具体化されたビューの更新スケジュールを削除します。 スケジュールが削除された場合、最新のデータを反映するには、オブジェクトを手動で更新する必要があります。
具体化されたビューにコメントを追加または変更するには、 COMMENT ONを使用します。
注
定義 SQL と矛盾する方法でパイプラインによって作成されたデータセットを変更すると、一部の変更が元に戻される可能性があります。
「Lakeflow Spark 宣言パイプラインでのALTERコマンドの使用」を参照してください。
構文
ALTER MATERIALIZED VIEW view_name
{
{ ADD | ALTER } schedule |
DROP SCHEDULE |
ALTER COLUMN column_clause |
SET ROW FILTER clause |
DROP ROW FILTER |
SET TAGS clause |
UNSET TAGS clause }
schedule
{ SCHEDULE [ REFRESH ] schedule_clause |
TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ] }
schedule_clause
{ EVERY number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS } |
CRON cron_string [ AT TIME ZONE timezone_id ] }
column_clause
column_identifier
{ COMMENT clause |
SET MASK clause |
DROP MASK |
SET TAGS clause |
UNSET TAGS clause }
パラメーター
-
定義を変更する具体化されたビューの名前。 この名前には、テンポラル仕様を含めることはできません。
schedule
具体化されたビューに
SCHEDULEまたはTRIGGERステートメントを追加または変更します。注
このコマンドを使用して、Lakeflow Spark 宣言パイプラインで作成された具体化されたビューのスケジュールを変更することはできません。 パイプライン エディターを使用します。
SCHEDULE [ REFRESH ] schedule_clauseEVERY number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS }定期的に更新をスケジュールするには、
EVERY構文を使用します。EVERY構文が指定されている場合、ストリーミング テーブルまたは具体化されたビューは、指定された値 (HOUR、HOURS、DAY、DAYS、WEEK、WEEKSなど) に基づいて、指定した間隔で定期的に更新されます。 次の表に、numberに使用できる整数値を示します。時間単位 整数値 HOUR or HOURS1 <= H <= 72 DAY or DAYS1<= D<= 31 WEEK or WEEKS1 <= W <= 8 注
含まれる時間単位の単数形と複数形は、意味的に同等です。
CRON cron_string [ AT TIME ZONE timezone_id ]quartz cron 値を使用して更新をスケジュールします。 有効な time_zone_values が受け入れられます。
AT TIME ZONE LOCALはサポートされません。AT TIME ZONEが存在しない場合は、セッション タイム ゾーンが使用されます。AT TIME ZONEが存在せず、セッション タイム ゾーンも設定されていない場合は、エラーがスローされます。SCHEDULEは意味的にSCHEDULE REFRESHと同等です。
TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ]重要
TRIGGER ON UPDATE機能はベータ版です。アップストリーム データ ソースが更新されたときに、最大で 1 分に 1 回更新するように具体化されたビューを設定します。
AT MOST EVERYの値を設定して、更新の間に少なくとも最小限の時間を必要とします。アップストリーム データ ソースは、外部またはマネージド Delta テーブル (具体化されたビューやストリーミング テーブルを含む) か、依存関係がサポートされているテーブルの種類に制限されているマネージド ビューである必要があります。
ファイル イベントを有効にすると、トリガーのパフォーマンスが向上し、トリガーの更新の制限の一部が増える可能性があります。
trigger_intervalは、少なくとも 1 分の INTERVAL ステートメントです。TRIGGER ON UPDATEには次の制限があります- TRIGGER ON UPDATEを使用する場合、具体化ビューあたり最大10個のアップストリームデータソースが許可されていません。
- TRIGGER ON UPDATEでは、最大 1,000 個のストリーミング テーブルまたは具体化されたビューを指定できます。
-
AT MOST EVERY句の既定値は 1 分で、1 分未満にすることはできません。
DROP SCHEDULE具体化されたビューからスケジュールを削除します。
ALTER COLUMN clauseALTER COLUMN 句を参照してください。
SETROW FILTER 句重要
この機能はパブリック プレビュー段階にあります。
具体化されたビューに行フィルター関数を追加します。 具体化されたビューに対する後続のすべてのクエリは、関数が
TRUEというブール値に評価される行のサブセットを取得します。 これは、関数が呼び出し元ユーザーの ID またはグループ メンバーシップを検査して、特定の行をフィルター処理するかどうかを決定できる、きめ細かいアクセス制御に役立ちます。作成後に追加された行フィルターは、次の更新後にのみダウンストリーム テーブルに反映されます。 継続的なパイプラインの場合、これにはパイプラインの再起動が必要です。
DROP ROW FILTER重要
この機能はパブリック プレビュー段階にあります。
具体化されたビュー (ある場合) から行フィルターを削除します。 今後のクエリでは、自動のフィルタリングなしにテーブルからすべての行が返されます。
SET TAGS ( { tag_name = tag_value } [, ...] )重要
この機能はパブリック プレビュー段階にあります。
具体化されたビューにタグを適用します。 具体化されたビューにタグを追加するには、
APPLY TAGアクセス許可が必要です。tag_name文字通りの
STRING。tag_nameは、具体化されたビューまたは列内で一意である必要があります。tag_value文字通りの
STRING。
UNSET TAGS ( tag_name [, ...] )重要
この機能はパブリック プレビュー段階にあります。
具体化されたビューからタグを削除します。 具体化されたビューからタグを削除するには、
APPLY TAGアクセス許可が必要です。tag_name文字通りの
STRING。tag_nameは、具体化されたビューまたは列内で一意である必要があります。
ALTER COLUMN 句
重要
この機能はパブリック プレビュー段階にあります。
プロパティまたは列の場所を変更します。
構文
ALTER COLUMN
column_identifier
{ COMMENT comment |
SET MASK mask_clause |
DROP MASK |
SET TAGS clause |
UNSET TAGS clause }
パラメーター
-
変更する列の名前。
COMMENT commentcolumn_name列の説明を変更します。commentは、STRINGリテラルにする必要があります。SETMASK 句列マスク関数を追加して、機密データを匿名化します。 その列の後続のすべてのクエリは、列の元の値の代わりに、その列に対してその関数を評価した結果を受け取ります。 これは、値を編集するかどうかを決定するために関数で呼び出し元ユーザーの ID またはグループ メンバーシップを検査できる、きめ細かいアクセス制御の目的に役立ちます。
作成後に追加された列マスクは、次の更新後にのみダウンストリーム テーブルに反映されます。 継続的なパイプラインの場合、これにはパイプラインの再起動が必要です。
DROP MASKこの列の列マスク (存在する場合) を削除します。 この列からの今後のクエリは、列の元の値を受け取ります。
SET TAGS ( { tag_name = tag_value } [, ...] )列にタグを適用します。 列にタグを追加するには、
APPLY TAGアクセス許可が必要です。tag_name
文字通りの
STRING。tag_nameはテーブル内または列内で一意にする必要があります。tag_value
文字通りの
STRING。
UNSET TAGS ( tag_name [, ...] )列から指定されたタグを削除します。 列からタグを削除するには、
APPLY TAGアクセス許可が必要です。tag_name
文字通りの
STRING。tag_nameはテーブル内または列内で一意にする必要があります。
例
-- Adds a schedule to refresh the materialized view whenever its upstream data gets updated.
> ALTER MATERIALIZED VIEW my_mv
ADD TRIGGER ON UPDATE;
-- Alters the schedule to refresh the materialized view when its upstream data
-- gets updated, and make sure the update frequency is no more than 1 update
-- per hour.
> ALTER MATERIALIZED VIEW my_mv
ALTER TRIGGER ON UPDATE AT MOST EVERY INTERVAL 1 hour;
-- Alters the schedule to run every two hours for a materialized view
> ALTER MATERIALIZED VIEW my_mv
ALTER SCHEDULE EVERY 2 HOURS;
-- Alters the schedule to refresh a materialized view once a day
-- at midnight in Los Angeles
> ALTER MATERIALIZED VIEW my_mv
ALTER SCHEDULE CRON '0 0 0 * * ? *' AT TIME ZONE 'America/Los_Angeles';
-- Drops the schedule for a materialized view
> ALTER MATERIALIZED VIEW my_mv
DROP SCHEDULE;
-- Adds a column comment
> ALTER MATERIALIZED VIEW my_mv
ALTER COLUMN my_column_name COMMENT 'test'