ALTER SHARE

適用対象:check marked yes Databricks SQL Databricks Runtime 10.4 LTS 以降 Unity Catalog のみ

共有に対してスキーマ、テーブル、具体化されたビュー、またはビューを追加、変更、または削除します。 共有の名前を変更します。 共有の所有権を新しいプリンシパルに移します。

必要なアクセス許可:

  • 共有所有者を更新するには、メタストア管理者、共有オブジェクトの所有者、または USE SHARESET SHARE PERMISSION の両方の特権を持つユーザーのいずれかである必要があります。
  • 共有名を更新するには、メタストア管理者 (または CREATE_SHARE 特権を持つユーザー) であり、"同時に" 共有の所有者である必要があります。
  • テーブルまたはビューを追加するには、共有オブジェクトの所有者であり、テーブルまたはビューを含むスキーマに対する USE SCHEMA と、テーブルまたはビューに対する SELECT 権限を持っている必要があります。 テーブルまたはビューの共有を希望する限り、SELECT 特権を維持する必要があります。
  • その他の共有プロパティを更新するには、所有者である必要があります。

構文

ALTER SHARE share_name
  { alter_add_materialized_view |
    REMOVE MATERIALIZED VIEW mat_view_name |
    alter_add_table |
    REMOVE TABLE table_name |
    alter_add_schema |
    REMOVE SCHEMA schema_name |
    alter_add_view |
    REMOVE VIEW view_name |
    alter_add_model |
    REMOVE MODEL model_name |
    RENAME TO to_share_name |
    [ SET ] OWNER TO principal }

alter_add_materialized_view
  { { ALTER | ADD } MATERIALIZED VIEW mat_view_name [ COMMENT comment ] [ AS mat_view_share_name ]

alter_add_table
  { { ALTER | ADD } [ TABLE ] table_name [ COMMENT comment ]
        [ PARTITION clause ] [ AS table_share_name ]
        [ WITH HISTORY | WITHOUT HISTORY ] }

alter_add_schema
  { { ALTER | ADD } SCHEMA schema_name [ COMMENT comment ]

alter_add_view
  { { ALTER | ADD } VIEW view_name [ COMMENT comment ] [ AS view_share_name ]

alter_add_model
  { { ALTER | ADD } VIEW model_name [ COMMENT comment ] [ AS model_share_name ]

Note

WITH HISTORY | WITHOUT HISTORY Databricks Runtime 12.2 LTS 以降でサポートされています。 Databricks Runtime バージョン 11.1 から 12.0 まででは、WITH HISTORY ではなく WITH CHANGE DATA FEED [ START VERSION version ] ] を指定する必要があります。

WITH CHANGE DATA FEED は非推奨とされます。

タイム トラベル クエリとストリーミング読み取りに加えて、顧客が table_changes() 関数を使ってテーブルの変更データ フィード (CDF) のクエリを実行できるようにする場合、WITH HISTORY (または WITH CHANGE DATA FEED) で共有する前に、テーブルで CDF を有効にする必要があることにもご注意ください。

パラメーター

  • share_name

    変更する共有の名前。

  • alter_add_materialized_view

    適用対象:check marked yes Databricks SQL 「はい」のチェック マーク Databricks Runtime 13.3 LTS 以降

    重要

    この機能は、プライベート プレビュー段階にあります。 これを試すには、Azure Databricks の連絡先に問い合わせてください。

    共有に具体化されたビューを追加するか、既存の共有の具体化されたビューを変更します。 このステートメントを実行するには、共有の所有者であり、具体化されたビューに対する SELECT 特権を持っている必要があります。

    • ADD MATERIALIZED VIEW mat_view_name

      追加する具体化されたビューを指定します。 具体化されたビューが見つからない場合、Azure Databricks で TABLE_OR_VIEW_NOT_FOUND エラーが発生します。

    • ALTER MATERIALIZED VIEW mat_view_name

      変更する具体化されたビューを指定します。 具体化されたビューがまだ共有の一部ではない場合、Azure Databricks でエラーが発生します。

    • COMMENT comment

      具体化されたビュー共有にコメントとして添付されるオプションの STRING リテラル。

    • AS mat_view_share_name

      オプションで、具体化されたビューを別の名前で公開します。 この名前はスキーマ名で修飾できます。 mat_view_share_name が指定されていない場合、具体化されたビューはそれ自体の名前で認識されます。

      共有名が既に存在する場合、Azure Databricks にエラーが発生します。

    • REMOVE MATERIALIZED VIEW mat_view_name

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

      mat_view_name で指定された具体化されたビューを共有から削除します。 このステートメントを実行するには、共有の所有者である必要があります。

    • alter_add_table

      テーブルまたはテーブルのパーティションを共有に追加するか、既存の共有テーブルを変更します。 このステートメントを実行するには、共有の所有者であり、テーブルに対する SELECT 特権を持っている必要があります。

      • ADD [ TABLE ] table_name

        追加するテーブルを識別します。 テーブルは Unity Catalog に存在してはいけません。 テーブルが見つからない場合、Azure Databricks で TABLE_OR_VIEW_NOT_FOUND エラーが発生します。

      • ALTER [ TABLE ] table_name

        変更するテーブルを指定します。 テーブルがまだ共有の一部ではない場合、Azure Databricks でエラーが発生します。

      • COMMENT comment

        テーブル共有にコメントとして添付されるオプションの STRING リテラル。

      • PARTITION 句

        追加するテーブルの 1 つまたは複数のパーティション。 パーティション キーは、テーブルのパーティション分割と一致し、値に関連付けられている必要があります。 PARTITION clause が存在しない場合は、ADD TABLE によってテーブル全体が追加されます。

        受信者のプロパティを参照してパーティション分割するには、次の構文を使用します。

        PARTITION (column_name = CURRENT_RECIPIENT().<property-key>)
        

        受信者のプロパティを参照したパーティション分割 適用対象:check marked yes Databricks SQL Databricks Runtime 12.2 LTS 以降。

      • AS table_share_name

        必要に応じて、テーブルを別の名前で公開します。 この名前はデータベース (スキーマ) 名で修飾できます。 table_share_name が指定されていない場合、テーブルはそれ自体の名前で認識されます。

      • WITH HISTORY または WITHOUT HISTORY

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

        WITH HISTORY が指定されている場合、完全な履歴を含むテーブルを共有して、受信者がタイム トラベル クエリを実行できるようにします。 共有テーブルは、VERSION AS OF と TIMESTAMP AS OF を使用して参照できます。

        タイム トラベル クエリとストリーミング読み取りに加えて、顧客が table_changes() 関数を使ってテーブルの変更データ フィード (CDF) のクエリを実行できるようにする場合は、WITH HISTORY で共有する前に、テーブルで CDF を有効にする必要があります。

        既定の動作は WITHOUT HISTORY です。

    • REMOVE TABLE table_name

      table_name によって識別されるテーブルを共有から削除します。 このステートメントを実行するには、共有の所有者である必要があります。

    • alter_add_schema

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

      共有にスキーマを追加する、または既存の共有スキーマを変更します。 このステートメントを実行するには、共有とスキーマの所有者である必要があります。

      • ADD SCHEMA schema_name

        追加するスキーマを指定します。 スキーマが見つからない場合、Azure Databricks では SCHEMA_NOT_FOUND エラーが生じます。

      • ALTER SCHEMA schema_name

        変更するスキーマを指定します。 スキーマがまだ共有の一部ではない場合、Azure Databricks でエラーが発生します。

      • COMMENT comment

        スキーマ共有にコメントとして添付されるオプションの STRING リテラル。

    • REMOVE SCHEMA schema_name

      schema_name で指定されたスキーマを共有から削除します。 このステートメントを実行するには、共有の所有者である必要があります。

    • alter_add_view

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

      共有にビューを追加する、または既存の共有ビューを変更します。 このステートメントを実行するには、共有の所有者であり、ビューに対して SELECT 特権を持っている必要があります。

      • ADD VIEW view_name

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

      • ALTER VIEW view_name

        変更するビューを指定します。 ビューがまだ共有の一部ではない場合、Azure Databricks でエラーが発生します。

      • COMMENT comment

        ビュー共有にコメントとして添付されるオプションの STRING リテラル。

      • AS view_share_name

        オプションで、ビューを別の名前で公開します。 この名前はスキーマ名で修飾できます。 view_share_name が指定されていない場合、ビューはそれ自体の名前で認識されます。

        共有名が既に存在する場合、Azure Databricks にエラーが発生します。

    • REMOVE VIEW view_name

      view_name で指定されたビューを共有から削除します。 このステートメントを実行するには、共有の所有者である必要があります。

    • alter_add_model

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

      共有にモデルを追加するか、または既存の共有モデルを変更します。 このステートメントを実行するには、共有の所有者であり、モデルに対する EXECUTE 特権を持っている必要があります。

      • ADD MODEL model_name

        追加するモデルを指定します。 モデルが見つからない場合は、Azure Databricks で RESOURCE_DOES_NOT_EXIST エラーが発生します。

      • ALTER MODEL model_name

        変更するモデルを指定します。 モデルがまだ共有に含まれない場合は、Azure Databricks でエラーが発生します。

      • COMMENT comment

        モデル共有にコメントとして添付されるオプションの STRING リテラル。

      • AS model_share_name

        必要に応じて、別の名前でモデルを公開します。 この名前はスキーマ名で修飾できます。 model_share_name を指定しないと、モデルはそれ自体の名前で認識されます。

        共有名が既に存在する場合、Azure Databricks にエラーが発生します。

    • REMOVE MODEL model_name

      model_name で指定されたモデルを共有から削除します。 このステートメントを実行するには、共有の所有者である必要があります。

    • RENAME TO to_share_name

      適用対象:check marked yes Databricks SQL 「はい」のチェック マーク Databricks Runtime 11.3 LTS 以降

      共有の名前を変更します。 名前は、メタストア内のすべての共有で一意にする必要があります。 このステートメントを実行するには、共有の所有者であり、メタストアに対する CREATE SHARE 特権を持っている必要があります。

    • [ SET ] OWNER TO principal

      共有の所有権を principal に転送します。 このステートメントを実行するには、共有の所有者である必要があります。

      適用対象:check marked yes Databricks SQL 「はい」のチェックマーク Databricks Runtime 11.3 LTS 以降

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

-- Creates a share named `some_share`.
> CREATE SHARE some_share;

-- Add a table to the share.
> ALTER SHARE some_share
     ADD TABLE my_schema.my_tab
         COMMENT 'some comment'
         PARTITION(c1_int = 5, c2_date LIKE '2021%')
         AS shared_schema.shared_tab;

-- Add a schema to the share.
> ALTER SHARE some_share
     ADD SCHEMA some_schema
         COMMENT 'some comment';

-- Add a view to the share.
> ALTER SHARE some_share
     ADD VIEW my_schema.my_view
         COMMENT 'some comment'
         AS shared_schema.shared_view;

-- Add a materialized view to the share.
> ALTER SHARE some_share
     ADD MATERIALIZED VIEW my_schema.my_mat_view
         COMMENT 'some comment'
         AS shared_schema.shared_mat_view;

-- Share a table with history
> ALTER SHARE share ADD TABLE table1 WITH HISTORY;
> ALTER SHARE share ADD TABLE table2 WITHOUT HISTORY;
> SHOW ALL IN SHARE share;
  Name    type   ... history_sharing  ...
  ------  ------ ... ----------------
  Table1  TABLE  ... ENABLED          ...
  Table2  TABLE  ... DISABLED         ...

-- Remove the table again
> ALTER SHARE some_share
    REMOVE TABLE shared_schema.shared_tab;

-- Remove the schema again
> ALTER SHARE some_share
    REMOVE SCHEMA some_schema;

-- Remove a view again
> ALTER SHARE some_share
    REMOVE VIEW shared_schema.shared_view;

-- Rename a share
> ALTER SHARE some_share
    RENAME TO new_share;

-- Change ownership of the share
> ALTER SHARE some_share
    OWNER TO `alf@melmak.et`