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


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

Область применения:отмечено «Да» 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, 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

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

Синтаксис

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 }

Параметры

  • 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

    Значение свойства Значение должно быть 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
...

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

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