Propriétés de table et options de table
S’applique à : Databricks SQL Databricks Runtime
Définit les balises définies par l’utilisateur pour les tables et les vues.
-
Une propriété de table est une paire clé-valeur que vous pouvez initialiser lorsque vous effectuez un CREATE TABLE ou un CREATE VIEW. Vous pouvez UNSET des propriétés de table existantes ou SET des propriétés de table nouvelles ou existantes en utilisant ALTER TABLE ou ALTER VIEW.
Vous pouvez utiliser les propriétés de table pour marquer les tables avec des informations non suivies par SQL.
-
L’objectif des options de table est de transmettre des propriétés de stockage au stockage sous-jacent, comme les propriétés SERDE à Hive.
Une option de table est une paire clé-valeur que vous pouvez initialiser lorsque vous effectuez un CREATE TABLE. Vous ne pouvez pas
SET
ouUNSET
une option de table.
TBLPROPERTIES
Définit une ou plusieurs propriétés de table dans une nouvelle table ou vue.
Vous pouvez utiliser les propriétés de table pour marquer les tables avec des informations non suivies par SQL.
Syntaxe
TBLPROPERTIES ( { property_key [ = ] property_val } [, ...] )
property_key
{ identifier [. ...] | string_literal }
Paramètres
property_key
Clé de la propriété. La clé peut comporter un ou plusieurs identificateurs séparés par un point, ou un littéral de chaîne.
Les clés de propriété doivent être uniques et respectent la casse.
property_val
Valeur de la propriété. La valeur doit être
BOOLEAN
,STRING
,INTEGER
, ouDECIMAL
un littéral.
Exemples
-- 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
Définit une ou plusieurs propriétés de table dans une table ou vue existante.
Syntaxe
SET TBLPROPERTIES ( { property_key [ = ] property_val } [, ...] )
property_key
{ identifier [. ...] | string_literal }
Paramètres
property_key
Clé de la propriété. La clé peut comporter un ou plusieurs identificateurs séparés par un point, ou un littéral de chaîne.
Les clés de propriété doivent être uniques et respectent la casse.
property_val
Nouvelle valeur de la propriété. La valeur doit être
BOOLEAN
,STRING
,INTEGER
, ouDECIMAL
un littéral.
Exemples
-- 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
Supprime une ou plusieurs propriétés de table d’une table ou d’une vue.
Syntaxe
UNSET TBLPROPERTIES [ IF EXISTS ] ( property_key [, ...] )
property_key
{ identifier [. ...] | string_literal }
Paramètres
IF EXISTS
Une clause facultative qui demande à Databricks SQL de ne pas déclencher d’erreur si l’une des clés de propriété n’existe pas.
property_key
La clé de propriété à supprimer. La clé peut comporter un ou plusieurs identificateurs séparés par un point, ou un littéral de chaîne.
Les clés de propriété sont sensibles à la casse. Si
property_key
n’existe pas, une erreur est générée, sauf siIF EXISTS
a été spécifié.
Exemples
-- 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 ...
OPTIONS
Définit une ou plusieurs options de table dans une nouvelle table.
L’objectif des options de table est de transmettre des propriétés de stockage au stockage sous-jacent, comme les propriétés SERDE à Hive.
La spécification des options de table pour les tables Delta Lake fait également écho à ces options en tant que propriétés de table.
Syntaxe
OPTIONS ( { property_key [ = ] property_val } [, ...] )
property_key
{ identifier [. ...] | string_literal }
Paramètres
property_key
Clé de la propriété. La clé peut comporter un ou plusieurs identificateurs séparés par un point, ou un littéral de chaîne.
Les clés de propriété doivent être uniques et respectent la casse.
property_val
Valeur de la propriété. La valeur doit être
BOOLEAN
,STRING
,INTEGER
, ouDECIMAL
un littéral.Dans Databricks SQL et Databricks Runtime 13.3 LTS et versions ultérieures,
property_val
peut être une expression constante.
Exemples
-- 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
...
Clés de propriété de table réservées
Azure Databricks réserve certaines clés de propriété pour sa propre utilisation et déclenche une erreur si vous tentez de les utiliser :
external
Utilisez CREATE EXTERNAL TABLE pour créer une table externe.
location
Utilisez les clauses
LOCATION
de ALTER TABLE et CREATE TABLE pour définir l’emplacement d’une table.owner
Utilisez la clause
[SET] OWNER TO
de ALTER TABLE et ALTER VIEW pour transférer la propriété d’une table ou d’une vue. SET est autorisé en tant que mot clé facultatif dans Databricks SQL.provider
Utilisez la clause
USING
de CREATE TABLE pour définir la source de données d’une table
Vous ne devez pas utiliser de clés de propriété commençant par l’identifiant option
.
Cet identificateur de préfixe est filtré dans SHOW TBLPROPERTIES.
Le préfixe option
est également utilisé pour afficher les options de la table.
Clés TBLPROPERTIES et OPTIONS courantes
Les paramètres suivants sont couramment utilisés avec Delta Lake :
delta.appendOnly
: définissez surtrue
pour désactiver les opérationsUPDATE
etDELETE
.delta.dataSkippingNumIndexedCols
: définissez sur le numéro de la colonne de tête pour laquelle il faut collecter et considérer les statistiques.delta.deletedFileRetentionDuration
: définissez sur un intervalle tel que'interval 7 days'
pour contrôler quandVACUUM
est autorisé à supprimer des fichiers.delta.logRetentionDuration
: définissez sur un intervalle tel que'interval 60 days'
pour contrôler la durée de conservation de l’historique pour les requêtes de voyage dans le temps.