ALTER SCHEMA

適用於:核取記號為「是」Databricks SQL 核取記號為「是」Databricks Runtime

變更結構的擁有者、改變結構的管理儲存位置、設定 預測優化 行為,或透過設定 DBPROPERTIES改變與結構相關的元資料。 指定的屬性值會覆蓋任何具有相同屬性名稱的現有值。

雖然 和 SCHEMADATABASE 的使用是可互換的, SCHEMA 但偏好使用 。

語法

ALTER SCHEMA schema_name
    { DEFAULT COLLATION default_collation_name |
      SET DBPROPERTIES ( { key = val } [, ...] ) |
      [ SET ] OWNER TO principal
      SET TAGS ( { tag_name = tag_value } [, ...] ) |
      UNSET TAGS ( tag_name [, ...] ) |
      { ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION |
      SET MANAGED LOCATION location }

參數

  • schema_name

    要改變之架構的名稱。 若找不到該結構,Azure Databricks會產生SCHEMA_NOT_FOUND錯誤。

  • 預設排序 default_collation_name

    適用於:核取標示為是 Databricks SQL 核取標示為是 Databricks Runtime 17.1 和更新版本

    變更結構描述內定義之新物件的預設定序。 結構描述內現有物件的預設定序不會變更。

  • DBPROPERTIES (key = val [, ...] )

    要設定或取消設定的架構屬性。

  • [ SET ] 所有者至 主要

    將架構的擁有權轉移至 principal

    適用於:核取記號為「是」 Databricks SQL 核取記號為「是」 Databricks Runtime 11.3 LTS 和更新版本

    允許 SET 作為可選關鍵字。

  • SET TAGS ( { tag_name = tag_value } [, ...] )

    將標籤套用至架構。 您必須有 USE SCHEMA,才能將標籤套用至架構。

    適用於:核取記號為「是」 Databricks SQL 核取記號為「是」 Databricks Runtime 13.3 LTS 和更新版本

  • UNSET TAGS (tag_name [, ...] )

    從架構中移除標籤。 您必須有 USE SCHEMA,才能從架構中移除標籤。

    適用於:核取記號為「是」 Databricks SQL 核取記號為「是」 Databricks Runtime 13.3 LTS 和更新版本

  • tag_name

    常值 STRINGtag_name 在架構內必須是唯一的。

  • tag_value

    常值 STRING

  • { ENABLE |DISABLE |INHERIT } 預測優化

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

    將架構變更為所需的預測優化設定。 預設情況下,當建立結構描述時,預設動作是從目錄 INHERIT。 根據預設,在架構中建立的新物件會繼承架構中的設定。

    如果變更架構,行為會串聯至繼承預測優化的所有物件。 明確 ENABLEDISABLE 預測優化的物件不會受到架構設定的影響。

    若要設定架構的預測優化,用戶必須具有架構 CREATE 許可權。

    只有非 Delta Sharing 的架構以及 Unity Catalog 中的受控目錄才有資格進行預測優化。

  • SET 管理位置

    適用於:勾選已勾選為是 ,Databricks SQL 勾選為是 ,Databricks 執行時 18.1 及以上版本勾 選為是 ,僅限 Unity 目錄

    更改標準架構的託管儲存位置。 在結構中建立的新管理資料表和管理磁碟區會使用更新後的位置。 Databricks 不會移動現有物件。

    • 位置

      新的託管儲存位置的雲端儲存路徑。 它必須被限制在外部地點。

範例

-- Creates a schema named `inventory`.
> CREATE SCHEMA inventory;

-- Alters the schema to set properties `Edited-by` and `Edit-date`.
> ALTER SCHEMA inventory SET DBPROPERTIES ('Edited-by' = 'John', 'Edit-date' = '01/01/2001');

-- Verify that properties are set.
> DESCRIBE SCHEMA EXTENDED inventory;
 database_description_item                 database_description_value
 ------------------------- ------------------------------------------
             Database Name                                  inventory
               Description
                  Location    file:/temp/spark-warehouse/inventory.db
                Properties ((Edit-date,01/01/2001), (Edited-by,John))

-- Transfer ownership of the schema to another user
> ALTER SCHEMA inventory OWNER TO `alf@melmak.et`

-- Applies three tags to the schema named `test`.
> ALTER SCHEMA test SET TAGS ('tag1' = 'val1', 'tag2' = 'val2', 'tag3' = 'val3');

-- Removes three tags from the schema named `test`.
> ALTER SCHEMA test UNSET TAGS ('tag1', 'tag2', 'tag3');

-- Enables predictive optimization for objects in schema my_schema
> ALTER SCHEMA my_schema ENABLE PREDICTIVE OPTIMIZATION;

-- Alter the default collation of a schema
> ALTER SCHEMA my_schema DEFAULT COLLATION UNICODE_CI_AI;

-- Change the managed storage location of a schema
> ALTER SCHEMA my_catalog.my_schema SET MANAGED LOCATION 's3://my-bucket/schemas/my_schema/';