Свойства и параметры таблиц

Область применения:проверка помечены да Databricks SQL проверка помечены да Databricks Runtime

Определяет пользовательские теги для таблиц и представлений.

  • Свойства таблицы

    Свойство таблицы — это пара "ключ-значение", которую можно инициализировать при выполнении инструкции CREATE TABLE или CREATE VIEW. С помощью ALTER TABLE или ALTER VIEW можно НАСТРОИТЬ существующие или новые или существующие свойства таблицы.

    Свойства таблицы можно использовать для добавления тегов к таблицам с информацией, не отслеживаемой SQL.

  • Параметры таблицы

    Параметры таблицы предназначены для передачи свойств хранилища в базовое хранилище, например свойств SERDE в Hive.

    Свойство таблицы — это пара "ключ-значение", которую можно инициализировать при выполнении инструкции CREATE TABLE. Удалить существующие (SET) или задать новые (UNSET) параметры таблицы нельзя.

TBLPROPERTIES

Задает одно или несколько свойств таблицы в новых таблице или представлении.

Свойства таблицы можно использовать для добавления тегов к таблицам с информацией, не отслеживаемой SQL.

Синтаксис

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

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

Параметры

  • 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;
option.serialization.format     1
this.is.my.key  12
this.is.my.key2 true
transient_lastDdlTime   1649783569

SET TBLPROPERTIES

Задает одно или несколько свойств таблицы в существующих таблице или представлении.

Синтаксис

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

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

Параметры

  • 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;
option.serialization.format     1
this.is.my.key  14
this.is.my.key2 false
transient_lastDdlTime   1649783980

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;
option.serialization.format     1
transient_lastDdlTime   1649784415

ПАРАМЕТРЫ

Задает один или несколько параметров таблицы в новой таблице.

Параметры таблицы предназначены для передачи свойств хранилища в базовое хранилище, например свойств SERDE в Hive.

При указании параметров таблицы для таблиц Delta Lake эти параметры также будут отображаться в качестве свойств таблицы.

Синтаксис

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

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

Параметры

  • 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;
option.this.is.my.key bluegreen
option.serialization.format     2

Зарезервированные ключи свойств таблицы

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', определяющий время хранения журнала для запросов на переходы по времени.