ALTER SHARE
適用於: Databricks SQL Databricks Runtime 10.4 LTS 和更新版本, Unity Catalog
在共用中加入、改變或移除架構、數據表、具體化檢視或檢視。 重新命名共用。 將共用的擁有權轉移至新的 主體。
所需的權限:
- 若要更新共用擁有者,您必須是下列其中一項:中繼存放區管理員、共用對象的擁有者,或具有
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`