共用方式為


資料表屬性和資料表選項

適用於:勾選「是」Databricks SQL 勾選「是」Databricks Runtime

定義資料表和檢視的使用者定義標記。

  • 數據表屬性

    表屬性是鍵-值對,您可以在執行 CREATE TABLECREATE VIEW時初始化。 您可以使用 ALTER TABLEALTER VIEW 取消已存在或新的資料表屬性設定。

    您可以使用資料表屬性來標記數據表,其中包含 SQL 未追蹤的資訊。

  • 數據表選項

    數據表選項的目的是將記憶體屬性傳遞至基礎記憶體,例如SERDE屬性至Hive。

    表格選項是一個鍵值對,您可以在執行CREATE TABLE時進行初始化。 您無法 SETUNSET 資料表選項。

TBLPROPERTIES

在新數據表或檢視中設定一或多個數據表屬性。

您可以使用資料表屬性來標記數據表,其中包含 SQL 未追蹤的資訊。

語法

TBLPROPERTIES ( { property_key [ = ] property_val } [, ...] )

property_key
  { identifier [. ...] | string_literal }

參數

  • property_key

    屬性鍵。 索引鍵可以包含一或多個 以點分隔的識別符 或字串常數。

    屬性索引鍵必須是唯一的,而且區分大小寫。

  • property_val

    屬性的值。 值必須是 BOOLEANSTRINGINTEGERDECIMAL 常值。

範例

-- Create table with user defined table properties
> CREATE TABLE T(c1 INT) TBLPROPERTIES('this.is.my.key' = 12, this.is.my.key2 = true);
> SHOW TBLPROPERTIES T;
key              value
---------------- -----
...
this.is.my.key      14
this.is.my.key2  false
...

SET TBLPROPERTIES

在現有的數據表或檢視中設定一或多個數據表屬性。

語法

SET TBLPROPERTIES ( { property_key [ = ] property_val } [, ...] )

property_key
  { identifier [. ...] | string_literal }

參數

  • property_key

    屬性鍵。 鍵值可以包含一或多個以點分隔的識別符,或字串。

    屬性索引鍵必須是唯一的,而且區分大小寫。

  • property_val

    屬性的新值。 值必須是 BOOLEANSTRINGINTEGERDECIMAL 常值。

範例

-- Alter the a table's table properties.
>  ALTER TABLE T SET TBLPROPERTIES(this.is.my.key = 14, 'this.is.my.key2' = false);
> SHOW TBLPROPERTIES T;
key              value
---------------- -----
...
this.is.my.key      14
this.is.my.key2  false
...

UNSET TBLPROPERTIES

從數據表或檢視中移除一或多個數據表屬性。

語法

UNSET TBLPROPERTIES [ IF EXISTS ] ( property_key [, ...] )

property_key
  { identifier [. ...] | string_literal }

參數

  • IF EXISTS

    可選的子句,用於指示 Databricks SQL 當某些屬性索引鍵不存在時,不會引發錯誤。

  • property_key

    要移除的屬性鍵。 鍵可以由一個或多個以點分隔的標識碼或字串常量組成。

    屬性索引鍵區分大小寫。 如果 property_key 不存在,除非 IF EXISTS 已指定,否則會引發錯誤。

範例

-- Remove a table's table properties.
>  ALTER TABLE T UNSET TBLPROPERTIES(this.is.my.key, 'this.is.my.key2');
> SHOW TBLPROPERTIES T;
key                              value
-------------------------------- -----
... keys other that key and key2 ...

選項

在新數據表中設定一或多個數據表選項。

數據表選項的目的是將記憶體屬性傳遞至基礎記憶體,例如SERDE屬性至Hive。

指定 Delta Lake 資料表的數據表選項也會以數據表屬性的形式回應這些選項。

語法

OPTIONS ( { property_key [ = ] property_val } [, ...] )

property_key
  { identifier [. ...] | string_literal }

參數

  • property_key

    屬性鍵 鍵可以由一個或多個 以點分隔的識別符號 或字串文字組成。

    屬性索引鍵必須是唯一的,而且區分大小寫。

  • property_val

    屬性的值。 值必須是 BOOLEANSTRINGINTEGERDECIMAL 常值。

    在 Databricks SQL 和 Databricks Runtime 13.3 LTS 及以上版本中,property_val 可以是常數表達式。

範例

-- Create table with user defined table option
-- The options appears with an `option.` prefix.
> CREATE TABLE T(c1 INT) OPTIONS(this.is.my.key = 'blue' || 'green');
> SHOW TBLPROPERTIES T;
key              value
---------------- -----
...
option.this.is.my.key bluegreen
...

預留的資料表屬性鍵

Azure Databricks 會保留一些屬性索引鍵供自己使用,如果您嘗試使用這些密鑰,就會引發錯誤:

  • external

    使用 CREATE EXTERNAL TABLE 建立外部數據表。

  • location

    使用 LOCATIONALTER TABLECREATE TABLE 子句來設定數據表位置。

  • owner

    使用 [SET] OWNER TOALTER TABLEALTER VIEW 語句來轉移表或檢視的擁有權。 SET 在 Databricks SQL 中可做為選擇性關鍵詞。

  • provider

    使用 USINGCREATE TABLE 子句來設定數據表的數據源

您不應該使用以識別符開頭 option 的屬性索引鍵。 此前綴標識將會在 SHOW TBLPROPERTIES中篩選掉。 前置 option 詞也用來顯示 數據表選項

常用的 TBLPROPERTIES 和 OPTIONS 鍵

下列設定通常與 Delta Lake 搭配使用:

  • delta.appendOnly:設定為 true 以停用 UPDATEDELETE 作業。
  • delta.dataSkippingNumIndexedCols:設定為要收集和考慮統計數據的前置數據行數目。
  • delta.deletedFileRetentionDuration:設置為間隔時間,例如 'interval 7 days' 以控制何時允許刪除檔案 VACUUM
  • delta.logRetentionDuration:設定為一段時間,例如 'interval 60 days',以控制時間旅行查詢的歷史保留時間。