ALTER VIEW
適用対象: Databricks SQL Databricks Runtime
ビューに関連付けられたメタデータを変更します。 ビューの定義を変更する、ビューの名前を別の名前に変更する、または TBLPROPERTIES
を設定してビューのメタデータを設定および設定解除できます。
ビューがキャッシュされている場合、このコマンドを使用して、ビューのキャッシュされたデータとそれを参照するすべての依存をクリアします。 ビューのキャッシュは、ビューが次回アクセスされるときに遅れて設定されます。 このコマンドを使用すると、ビューの依存はキャッシュされないまま残ります。
構文
ALTER [ MATERIALIZED ] VIEW view_name
{ rename |
SET TBLPROPERTIES clause |
UNSET TBLPROPERTIES clause |
alter_body |
schema_binding |
owner_to |
schedule
SET TAGS clause |
UNSET TAGS clause }}}
rename
RENAME TO to_view_name
alter_body
AS query
schema_binding
WITH SCHEMA { BINDING | [ TYPE ] EVOLUTION | COMPENSATION }
property_key
{ idenitifier [. ...] | string_literal }
owner_to
[ SET ] OWNER TO principal
schedule
{
{ ADD | ALTER } SCHEDULE [ REFRESH ]
CRON cron_string [ AT TIME ZONE timezone_id ] |
DROP SCHEDULE
}
パラメーター
-
変更するビューを指定します。 ビューが見つからない場合、Azure Databricks では TABLE_OR_VIEW_NOT_FOUND エラーが生じます。
RENAME TO to_view_name
スキーマ内の既存のビューの名前を変更します。 具体化されたビューの名前を変更することはできません。
to_view_name は、ビューの新しい名前を示します。
to_view_name
が既に存在する場合、TableAlreadyExistsException
がスローされます。to_view_name
が修飾されている場合は、view_name
のスキーマ名と一致する必要があります。-
1 つ以上のユーザー定義プロパティを設定またはリセットします。
-
1 つ以上のユーザー定義プロパティを削除します。
AS クエリ
ベース テーブルまたはその他のビューからビューを構築するクエリです。
この句は、ビューに付与された権限が保持される点を除いて、既存のビューの CREATE OR REPLACE VIEW ステートメントと同じです。
-
適用対象: Databricks Runtime 15.3 以上
基になるオブジェクト定義の変更により、ビューのスキーマの変更に対してビューの後続のクエリを適用する方法を指定します。 スキーマ バインド モードの詳細については、「スキーマでビューの作成」を参照してください。
[ SET ] OWNER TO プリンシパル
ビューの所有権を
principal
に移します。hive_metastore
でビューが定義されていない限り、自分が属しているグループにのみ所有権を移すことができます。適用対象: Databricks SQL Databricks Runtime 11.3 LTS 以上
SET
は省略可能なキーワードとして使用できます。SET TAGS ( { tag_name = tag_value } [, …] )
ビューにタグを適用します。 ビューにタグを追加するには、
APPLY TAG
アクセス許可が必要です。適用対象: Databricks SQL Databricks Runtime 13.3 LTS 以上
UNSET TAGS ( tag_name [, …] )
テーブルからタグを削除します。 ビューからタグを削除するには、
APPLY TAG
アクセス許可が必要です。適用対象: Databricks SQL Databricks Runtime 13.3 LTS 以上
tag_name
リテラル
STRING
。tag_name
はビュー内で一意である必要があります。tag_value
リテラル
STRING
。SCHEDULE [ REFRESH ] 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
と同等です。
例
-- Rename only changes the view name.
-- The source and target schemas of the view have to be the same.
-- Use qualified or unqualified name for the source and target view.
> ALTER VIEW tempsc1.v1 RENAME TO tempsc1.v2;
-- Verify that the new view is created.
> DESCRIBE TABLE EXTENDED tempsc1.v2;
c1 int NULL
c2 string NULL
# Detailed Table Information
Database tempsc1
Table v2
-- Before ALTER VIEW SET TBLPROPERTIES
> DESCRIBE TABLE EXTENDED tempsc1.v2;
c1 int null
c2 string null
# Detailed Table Information
Database tempsc1
Table v2
Table Properties [....]
-- Set properties in TBLPROPERTIES
> ALTER VIEW tempsc1.v2 SET TBLPROPERTIES ('created.by.user' = "John", 'created.date' = '01-01-2001' );
-- Use `DESCRIBE TABLE EXTENDED tempsc1.v2` to verify
> DESCRIBE TABLE EXTENDED tempsc1.v2;
c1 int NULL
c2 string NULL
# Detailed Table Information
Database tempsc1
Table v2
Table Properties [created.by.user=John, created.date=01-01-2001, ....]
-- Remove the key created.by.user and created.date from `TBLPROPERTIES`
> ALTER VIEW tempsc1.v2 UNSET TBLPROPERTIES (`created`.`by`.`user`, created.date);
-- Use `DESCRIBE TABLE EXTENDED tempsc1.v2` to verify the changes
> DESCRIBE TABLE EXTENDED tempsc1.v2;
c1 int NULL
c2 string NULL
# Detailed Table Information
Database tempsc1
Table v2
Table Properties [....]
-- Change the view definition
> ALTER VIEW tempsc1.v2 AS SELECT * FROM tempsc1.v1;
-- Use `DESCRIBE TABLE EXTENDED` to verify
> DESCRIBE TABLE EXTENDED tempsc1.v2;
c1 int NULL
c2 string NULL
# Detailed Table Information
Database tempsc1
Table v2
Type VIEW
View Text select * from tempsc1.v1
View Original Text select * from tempsc1.v1
-- Transfer ownership of a view to another user
> ALTER VIEW v1 OWNER TO `alf@melmak.et`
-- Change the view schema binding to adopt type evolution
> ALTER VIEW v1 WITH SCHEMA TYPE EVOLUTION;
-- Adds a schedule to refresh a materialized view once a day
-- at midnight in Los Angeles
> ALTER MATERIALIZED VIEW my_mv
ADD SCHEDULE CRON '0 0 0 * * ? *' AT TIME ZONE 'America/Los_Angeles';
-- Alters the schedule to run every 15 minutes for a materialized view
> ALTER MATERIALIZED VIEW my_mv
ALTER SCHEDULE CRON '0 0/15 * * * ? *';
-- Drops the schedule for a materialized view
> ALTER MATERIALIZED VIEW my_mv
DROP SCHEDULE;
-- Applies three tags to the view named `test`.
> ALTER VIEW test SET TAGS ('tag1' = 'val1', 'tag2' = 'val2', 'tag3' = 'val3');
-- Removes three tags from the view named `test`.
> ALTER VIEW test UNSET TAGS ('tag1', 'tag2', 'tag3');