Поделиться через


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, STRINGINTEGERили 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, STRINGINTEGERили 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, STRINGINTEGERили 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

    Используйте предложение USINGCREATE TABLE для set источника данных table

Не следует использовать ключи свойств, начиная с optionidentifier. Этот префикс 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', чтобы контролировать, как долго хранятся запросы на путешествие во времени.