適用於:
Databricks SQL
Databricks Runtime
定義資料表和檢視的使用者定義標記。
-
表屬性是鍵-值對,您可以在執行 CREATE TABLE 或 CREATE VIEW時初始化。 您可以使用 或 SET 取消已存在或新的資料表屬性設定。
您可以使用資料表屬性來標記數據表,其中包含 SQL 未追蹤的資訊。
-
數據表選項的目的是將記憶體屬性傳遞至基礎記憶體,例如SERDE屬性至Hive。
表格選項是一個鍵值對,您可以在執行CREATE TABLE時進行初始化。 您無法
SET或UNSET資料表選項。
TBLPROPERTIES
在新數據表或檢視中設定一或多個數據表屬性。
您可以使用資料表屬性來標記數據表,其中包含 SQL 未追蹤的資訊。
語法
TBLPROPERTIES ( { property_key [ = ] property_val } [, ...] )
property_key
{ identifier [. ...] | string_literal }
參數
property_key
屬性鍵。 索引鍵可以包含一或多個 以點分隔的識別符 或字串常數。
屬性索引鍵必須是唯一的,而且區分大小寫。
property_val
屬性的值。 值必須是
BOOLEAN、STRING、INTEGER或DECIMAL常值。
範例
-- 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 12
this.is.my.key2 true
...
SET TBL屬性
在現有的數據表或檢視中設定一或多個數據表屬性。
語法
SET TBLPROPERTIES ( { property_key [ = ] property_val } [, ...] )
property_key
{ identifier [. ...] | string_literal }
參數
property_key
屬性鍵。 索引鍵可以包含一或多個 以點分隔的識別符 或字串常數。
屬性索引鍵必須是唯一的,而且區分大小寫。
property_val
屬性的新值。 值必須是
BOOLEAN、STRING、INTEGER或DECIMAL常值。
範例
-- 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
...
取消設定 TBLPROPERTIES
從數據表或檢視中移除一或多個數據表屬性。
語法
UNSET TBLPROPERTIES [ IF EXISTS ] ( property_key [, ...] )
property_key
{ identifier [. ...] | string_literal }
參數
如果存在
可選的子句,用於指示 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
屬性的值。 值必須是
BOOLEAN、STRING、INTEGER或DECIMAL常值。在 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使用
LOCATION和 ALTER TABLE 的 CREATE TABLE 子句來設定數據表位置。owner使用
[SET] OWNER TO和 ALTER TABLE 的 ALTER VIEW 語句來轉移表或檢視的擁有權。 SET 在 Databricks SQL 中可做為選擇性關鍵詞。provider使用
USING的 CREATE TABLE 子句來設定數據表的數據源
您不應該使用以識別符開頭 option 的屬性索引鍵。
此前綴標識將會在 SHOW TBLPROPERTIES中篩選掉。
前置 option 詞也用來顯示 數據表選項。
常用的 TBLPROPERTIES 和 OPTIONS 鍵
下列設定通常與 Delta Lake 搭配使用:
-
delta.appendOnly:設定為true以停用UPDATE和DELETE作業。 -
delta.dataSkippingNumIndexedCols:設定為要收集和考慮統計數據的前置數據行數目。 -
delta.deletedFileRetentionDuration:設置為間隔時間,例如'interval 7 days'以控制何時允許刪除檔案VACUUM。 -
delta.logRetentionDuration:設定為一段時間,例如'interval 60 days',以控制時間旅行查詢的歷史保留時間。