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