ALTER VIEW

適用対象:「はい」のチェック マーク Databricks SQL 「はい」のチェック マーク Databricks Runtime

ビューに関連付けられたメタデータを変更します。 ビューの定義を変更する、ビューの名前を別の名前に変更する、または TBLPROPERTIES を設定してビューのメタデータを設定および設定解除できます。

ビューがキャッシュされている場合、このコマンドを使用して、ビューのキャッシュされたデータとそれを参照するすべての依存をクリアします。 ビューのキャッシュは、ビューが次回アクセスされるときに遅れて設定されます。 このコマンドを使用すると、ビューの依存はキャッシュされないまま残ります。

構文

ALTER [ MATERIALIZED ] VIEW view_name
  { rename |
    SET TBLPROPERTIES clause |
    UNSET TBLPROPERTIES clause |
    alter_body |
    owner_to |
    schedule
    SET TAGS clause |
    UNSET TAGS clause }}}

rename
  RENAME TO to_view_name

alter_body
  AS query

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
  }

パラメーター

  • view_name

    変更するビューを指定します。 ビューが見つからない場合、Azure Databricks では TABLE_OR_VIEW_NOT_FOUND エラーが生じます。

  • RENAME TO to_view_name

    スキーマ内の既存のビューの名前を変更します。 具体化されたビューの名前を変更することはできません。

    to_view_name は、ビューの新しい名前を示します。 to_view_name が既に存在する場合、TableAlreadyExistsException がスローされます。 to_view_name が修飾されている場合は、view_nameスキーマ名と一致する必要があります。

  • SET TBLPROPERTIES

    1 つ以上のユーザー定義プロパティを設定またはリセットします。

  • UNSET TBLPROPERTIES

    1 つ以上のユーザー定義プロパティを削除します。

  • AS クエリ

    ベース テーブルまたはその他のビューからビューを構築するクエリです。

    この句は、ビューに付与された権限が保持される点を除いて、既存のビューの CREATE OR REPLACE VIEW ステートメントと同じです。

  • [ SET ] OWNER TO プリンシパル

    ビューの所有権を principal に移します。 hive_metastore でビューが定義されていない限り、自分が属しているグループにのみ所有権を移すことができます。

    適用対象: Databricks SQL 「はい」のチェックマーク Databricks Runtime 11.2 以降

    SET は省略可能なキーワードとして使用できます。

  • SET TAGS ( { tag_name = tag_value } [, …] )

    ビューにタグを適用します。 ビューにタグを追加するには、apply_tag アクセス許可が必要です。

    適用対象:check marked yes Databricks SQL Databricks Runtime 13.3 LTS 以降

  • UNSET TAGS ( tag_name [, …] )

    テーブルからタグを削除します。 ビューからタグを削除するには、apply_tag アクセス許可が必要です。

    適用対象:check marked yes Databricks SQL Databricks Runtime 13.3 LTS 以降

  • tag_name

    リテラル STRINGtag_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 と同等です。

    Delta Live Tables パイプライン定義で SCHEDULE 構文を使用することはできません。

-- 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`

-- 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');