共用方式為


ALTER SHARE

適用於:檢查標示為 yes Databricks SQL 檢查標示為 yes Databricks Runtime 10.4 LTS 和更新版本,檢查標示為 yes Unity Catalog

在共用中加入、改變或移除架構、數據表、具體化檢視或檢視。 重新命名共用。 將共用的擁有權轉移至新的 主體

所需的權限:

  • 若要更新共用擁有者,您必須是下列其中一項:中繼存放區管理員、共用對象的擁有者,或具有 USE SHARESET 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)。

參數

  • share_name

    要改變的共享名稱。

  • 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 常值。

    • AS mat_view_share_name

      選擇性地以不同的名稱公開具體化檢視。 此名稱可以使用架構名稱來限定。 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 條款

        要新增的一或多個數據表的分割區。 分區鍵必須符合資料表的分區,並且與值相關聯。 如果沒有 PARTITION clauseADD TABLE 會加入整個數據表。

        如果想要依參考分割 收件者屬性,請使用語法:

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

        依收件者屬性的參考分割適用於:核取記號為「是」Databricks SQL 核取記號為「是」 Databricks Runtime 12.2 LTS 和更新版本。

      • AS table_share_name

        選擇性地以不同的名稱公開數據表。 名稱可以使用資料庫 (schema) 名稱限定。 如果未指定任何 table_share_name,此表格將會用其原來的名稱識別。

      • WITH HISTORYWITHOUT 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 常值。

      • AS view_share_name

        選擇性地以不同的名稱公開檢視。 此名稱可以使用架構名稱來限定。 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 常值。

      • AS model_share_name

        選擇性地以不同的名稱公開模型。 此名稱可以使用架構名稱來限定。 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`