ALTER SHARE
適用対象: Databricks SQL Databricks Runtime 10.4 LTS 以上 Unity Catalog のみ
共有に対してスキーマ、テーブル、具体化されたビュー、またはビューを追加、変更、または削除します。 共有の名前を変更します。 共有の所有権を新しいプリンシパルに移します。
必要なアクセス許可:
- 共有所有者を更新するには、メタストア管理者、共有オブジェクトの所有者、または
USE SHARE
とSET 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 を有効にする必要があることにもご注意ください。
パラメーター
-
変更する共有の名前。
alter_add_materialized_view
適用対象: 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
リテラル。-
オプションで、具体化されたビューを別の名前で公開します。 この名前はスキーマ名で修飾できます。
mat_view_share_name
が指定されていない場合、具体化されたビューはそれ自体の名前で認識されます。共有名が既に存在する場合、Azure Databricks にエラーが発生します。
REMOVE MATERIALIZED VIEW
mat_view_name適用対象: 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
リテラル。-
追加するテーブルの 1 つまたは複数のパーティション。 パーティション キーは、テーブルのパーティション分割と一致し、値に関連付けられている必要があります。
PARTITION clause
が存在しない場合は、ADD TABLE
によってテーブル全体が追加されます。受信者のプロパティを参照してパーティション分割するには、次の構文を使用します。
PARTITION (column_name = CURRENT_RECIPIENT().<property-key>)
受信者のプロパティを参照したパーティション分割 適用対象: Databricks SQL Databricks Runtime 12.2 LTS 以上。
-
必要に応じて、テーブルを別の名前で公開します。 この名前はデータベース (スキーマ) 名で修飾できます。
table_share_name
が指定されていない場合、テーブルはそれ自体の名前で認識されます。 WITH HISTORY
またはWITHOUT HISTORY
適用対象: 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_nametable_name
によって識別されるテーブルを共有から削除します。 このステートメントを実行するには、共有の所有者である必要があります。alter_add_schema
適用対象: 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_nameschema_name
で指定されたスキーマを共有から削除します。 このステートメントを実行するには、共有の所有者である必要があります。alter_add_view
適用対象: 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
リテラル。-
オプションで、ビューを別の名前で公開します。 この名前はスキーマ名で修飾できます。
view_share_name
が指定されていない場合、ビューはそれ自体の名前で認識されます。共有名が既に存在する場合、Azure Databricks にエラーが発生します。
REMOVE VIEW
view_nameview_name
で指定されたビューを共有から削除します。 このステートメントを実行するには、共有の所有者である必要があります。alter_add_model
適用対象: 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
リテラル。-
必要に応じて、別の名前でモデルを公開します。 この名前はスキーマ名で修飾できます。
model_share_name
を指定しないと、モデルはそれ自体の名前で認識されます。共有名が既に存在する場合、Azure Databricks にエラーが発生します。
REMOVE MODEL
model_namemodel_name
で指定されたモデルを共有から削除します。 このステートメントを実行するには、共有の所有者である必要があります。RENAME TO
to_share_name適用対象: Databricks SQL Databricks Runtime 11.3 LTS 以上
共有の名前を変更します。 名前は、メタストア内のすべての共有で一意にする必要があります。 このステートメントを実行するには、共有の所有者であり、メタストアに対する
CREATE SHARE
特権を持っている必要があります。[ SET ] OWNER TO
principal共有の所有権を
principal
に転送します。 このステートメントを実行するには、共有の所有者である必要があります。適用対象: 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`