Propriétés de table et options de table

S’applique à :case marquée oui Databricks SQL case marquée oui Databricks Runtime

Définit les balises définies par l’utilisateur pour les tables et les vues.

  • propriétés de table

    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.

  • options de 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.

    Une option de table est une paire clé-valeur que vous pouvez initialiser lorsque vous effectuez un CREATE TABLE. Vous ne pouvez pas SET ou UNSET 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, ou DECIMAL 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;
option.serialization.format     1
this.is.my.key  12
this.is.my.key2 true
transient_lastDdlTime   1649783569

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

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

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

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 sur true pour désactiver les opérations UPDATE et DELETE.
  • 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 quand VACUUM 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.