ALTER SHARE
適用於:Databricks SQL Databricks Runtime 10.4 LTS 和更新版本僅限 Unity 目錄
在共用中加入、改變或移除架構、數據表、具體化檢視或檢視。 重新命名共用。 將共用的擁有權轉移至新的 主體。
需要的權限:
- 若要更新共享擁有者,您必須是下列其中一項:中繼存放區管理員、共用對象的擁有者,或是具有
USE SHARE
和SET SHARE PERMISSION
許可權的使用者。 - 若要更新共享名稱,您必須是中繼存放區管理員(或具有
CREATE_SHARE
許可權的使用者) 和 共用擁有者。 - 若要新增資料表或檢視表,您必須是共用對象的擁有者、
USE SCHEMA
包含數據表或檢視表的架構,以及SELECT
數據表或檢視的許可權。 只要您想要共享數據表或檢視表,SELECT
就必須保留許可權。 - 若要更新任何其他共享屬性,您必須是擁有者。
Syntax
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 ]
注意
WITH HISTORY | WITHOUT HISTORY
Databricks Runtime 12.2 LTS 和更新版本支援 。 Databricks Runtime 11.1 到 12.0 版需要您指定 WITH CHANGE DATA FEED [ START VERSION version ] ]
,而不是 WITH HISTORY
。
WITH CHANGE DATA FEED
已被取代。
另請注意,除了執行時間移動查詢和串流讀取之外,您希望您的客戶能夠使用 table_changes() 函式查詢數據表的變更數據摘要 (CDF),您必須先 在數據表 上啟用 CDF,才能共用它 WITH HISTORY
(或 WITH CHANGE DATA FEED
)。
參數
-
要改變的共享名稱。
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 目錄。 如果找不到數據表,Azure Databricks 就會 引發TABLE_OR_VIEW_NOT_FOUND 錯誤。
ALTER [ TABLE ]
table_name識別要改變的數據表。 如果數據表還不是共用 Azure Databricks 的一部分,就會引發錯誤。
COMMENT comment
附加至數據表共享作為批注的選擇性
STRING
常值。-
要加入之數據表的一或多個分割區。 數據分割索引鍵必須符合數據表的數據分割,且與值相關聯。
PARTITION clause
如果沒有 ,ADD TABLE
則加入整個數據表。若要依傳址方式 分割收件者屬性,請使用語法:
PARTITION (column_name = CURRENT_RECIPIENT().<property-key>)
依收件者屬性的參考分割適用於:Databricks SQL Databricks Runtime 12.2 LTS 和更新版本。
-
選擇性地以不同的名稱公開數據表。 名稱可以使用資料庫 (schema) 名稱限定。
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),您必須先 在數據表 上啟用 CDF,才能共用
WITH HISTORY
數據表。預設行為為
WITHOUT HISTORY
。
REMOVE TABLE
table_name從共用中移除 所
table_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_name從共用中移除 所
schema_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_name從共用中移除 所
view_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_name從共用中移除 所
model_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`