ALTER SHARE

適用於:檢查標示為是Databricks SQL 檢查標示為是 Databricks Runtime 10.4 LTS 和更新版本檢查標示為是僅限 Unity 目錄

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

需要的權限:

  • 若要更新共享擁有者,您必須是下列其中一項:中繼存放區管理員、共用對象的擁有者,或是具有 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 clause如果沒有 ,ADD 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`