Table свойства и параметры table
Область применения: Databricks SQL Databricks Runtime
Определяет пользовательские теги для tables и views.
свойства table
Свойство table — это пара "ключ-значение", которую можно инициализировать при выполнении CREATE TABLE или CREATE VIEW. Можно UNSET существующие или SET новые или существующие table свойства с помощью ALTER TABLE или ALTER VIEW.
Свойства table можно использовать для тегов tables с информацией, не отслеживаемой SQL.
параметры table
Целью опций table является передача свойств хранилища в основное хранилище, таких как свойства SERDE в Hive.
Параметр table — это пара "ключ-значение", которую можно инициализировать при выполнении операции CREATE TABLE. Невозможно
SET
илиUNSET
параметр table.
TBLPROPERTIES
Задает одно или несколько свойств table в новом table или представлении.
Свойства table можно использовать для тегов tables с информацией, не отслеживаемой SQL.
Синтаксис
TBLPROPERTIES ( { property_key [ = ] property_val } [, ...] )
property_key
{ identifier [. ...] | string_literal }
Parameters
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 14
this.is.my.key2 false
...
SET TBLPROPERTIES
Задает одно или несколько свойств table в существующем table или представлении.
Синтаксис
SET TBLPROPERTIES ( { property_key [ = ] property_val } [, ...] )
property_key
{ identifier [. ...] | string_literal }
Parameters
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
...
UNSET TBLPROPERTIES
Удаляет одно или несколько свойств table из table или представления.
Синтаксис
UNSET TBLPROPERTIES [ IF EXISTS ] ( property_key [, ...] )
property_key
{ identifier [. ...] | string_literal }
Parameters
IF EXISTS
Необязательное предложение, не позволяющее Databricks SQL возвращать ошибку, если какой-либо из ключей свойств не существует.
property_key
Ключ свойства для remove. Ключ может состоять из одного или нескольких идентификаторов, разделенных точкой, или строкового литерала.
В ключах свойств учитывается регистр. Если
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 ...
ПАРАМЕТРЫ
Задает один или несколько параметров table в новом table.
Целью опций table является передача свойств хранилища для базового хранилища, например, свойств SERDE в Hive.
Указание параметров table для Delta Lake tables также будет отображать эти параметры как table свойства.
Синтаксис
OPTIONS ( { property_key [ = ] property_val } [, ...] )
property_key
{ identifier [. ...] | string_literal }
Parameters
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
...
Зарезервированные ключи свойств table
Azure Databricks резервирует некоторые ключи свойств для собственного использования и вызывает ошибку при попытке их использования:
external
Используйте CREATE EXTERNAL TABLE для создания внешней table.
location
Используйте клаузулы
LOCATION
из ALTER TABLE и CREATE TABLE для set местоположения table.owner
Используйте пункт
[SET] OWNER TO
из ALTER TABLE и ALTER VIEW для передачи права собственности на table или право доступа. SET разрешено в качестве необязательного ключевого слова в Databricks SQL.provider
Используйте предложение
USING
CREATE TABLE для set источника данных table
Не следует использовать ключи свойств, начиная с option
identifier.
Этот префикс identifier будет отфильтрован в SHOW TBLPROPERTIES.
Префикс option
также используется для отображения параметров table.
Общие ключи TBLPROPERTIES и OPTIONS
В Delta Lake часто используются следующие параметры:
-
delta.appendOnly
: чтобы отключить операцииUPDATE
иDELETE
, используйте Set,true
. -
delta.dataSkippingNumIndexedCols
: Set к числу ведущих column, для которых следует собирать и рассматривать статистику. -
delta.deletedFileRetentionDuration
: задайте Set интервал, например'interval 7 days'
, чтобы контролировать, когдаVACUUM
разрешено удалять файлы. -
delta.logRetentionDuration
: Set до интервала, например'interval 60 days'
, чтобы контролировать, как долго хранятся запросы на путешествие во времени.