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