Référence des propriétés de table
Les tables Delta Lake et Apache Iceberg utilisent les propriétés de table pour configurer le comportement et les fonctionnalités, y compris la Layout des données, la taille des fichiers, le saut de données, le niveau d'isolation et le flux de données de modification.
Toutes les opérations qui définissent ou mettent à jour les propriétés de table entrent en conflit avec d'autres opérations d'écriture simultanées, les faisant échouer. Databricks recommande de modifier une propriété de table uniquement lorsqu'il n'y a pas d'opérations d'écriture simultanées sur la table.
Modifier les propriétés de la table
Pour modifier les propriétés des tables existantes, utilisez SET TBLPROPERTIES.
Préfixes de propriété Delta et Iceberg
Les tables Delta Lake et Apache Iceberg partagent les mêmes noms de propriétés de table, mais nécessitent des préfixes différents :
- Tables Delta Lake : Utilisez le préfixe
delta. - Iceberg tables : utilisez le préfixe
iceberg..
Par exemple, pour activer les vecteurs de suppression sur une table :
- Delta Lake table
- Iceberg table
ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);
ALTER TABLE <table-name> SET TBLPROPERTIES ('iceberg.enableDeletionVectors' = true);
Propriétés de table et propriétés de SparkSession
Chaque table a ses propres propriétés qui contrôlent son comportement. Certaines configurations SparkSession remplacent toujours les propriétés de table. Par exemple, autoCompact.enabled et optimizeWrite.enabled permettent le compactage automatique et les écritures optimisées au niveau SparkSession. Databricks recommande d'utiliser des configurations au niveau de la table pour la plupart des charges de travail.
Vous pouvez définir des valeurs default pour les nouvelles tables à l'aide des configurations SparkSession. Ces default s'appliquent uniquement aux nouvelles tables et n'affectent pas les propriétés des tables existantes. Les configurations SparkSession utilisent un préfixe différent des propriétés de table, comme indiqué dans le tableau suivant :
Propriété de table |
|
|---|---|
|
|
Par exemple, pour définir la propriété appendOnly = true pour toutes les nouvelles tables créées dans une session, définissez les éléments suivants :
- Delta Lake table
- Iceberg table
SET spark.databricks.delta.properties.defaults.appendOnly = true
SET spark.databricks.iceberg.properties.defaults.appendOnly = true
Propriétés de la table
La plupart des propriétés de table suivantes sont disponibles pour les tables Delta Lake et Apache Iceberg, sauf indication contraire. Utilisez le préfixe delta. pour les tables Delta Lake et le préfixe iceberg. pour les tables Iceberg.
Propriété | Description |
|---|---|
|
Voir les écritures optimisées. Type de données : default: (aucun) |
| Le nombre de colonnes pour lesquelles collecter des statistiques pour l'ignoration de données. Une valeur de Consultez la section Saut de données. Type de données : default: |
| Une liste de noms de colonnes séparés par des virgules sur lesquels collecter des statistiques pour améliorer la fonctionnalité de saut de données. Cette propriété prime sur Consultez la section Saut de données. Type de données : default: (aucun) |
| La durée la plus courte pour conserver les fichiers de données supprimés logiquement avant de les supprimer physiquement. Cela évite les échecs chez les lecteurs obsolètes après des compactages ou des écrasements de partition. Databricks recommande la valeur default de 7 jours ou plus. Si votre période de rétention est trop courte, les Jobs de longue durée peuvent voir leurs fichiers non validés supprimés avant la fin du Job. Consultez Configurer la conservation des données pour les requêtes time travel. Type de données : default: |
|
Consultez les vecteurs de suppression dans Databricks et l'activation des vecteurs de suppression. Type de données : Default: Depends on Workspace admin settings and Databricks Runtime version. Voir activer automatiquement les vecteurs de suppression. |
| Combien de temps faut-il conserver l'historique d'une table. Databricks nettoie automatiquement les entrées de journal plus anciennes que l'intervalle de rétention chaque fois qu'un point de contrôle est écrit. Définir cette propriété sur une valeur élevée conserve de nombreux Logs. Cela n'a pas d'impact sur les performances car les Opérations sur les Logs sont à temps constant. Les Opérations sur l'historique sont parallèles, mais deviennent plus coûteuses à mesure que la taille des Logs augmente. Consultez Configurer la conservation des données pour les requêtes time travel. Type de données : default: |
| La version minimale requise du lecteur de protocole pour lire cette table. Databricks recommande de ne pas configurer manuellement cette propriété. Consultez la compatibilité des fonctionnalités et les protocoles de Delta Lake. Type de données : default: |
| Version minimale du protocole d'écriture requise pour écrire dans cette table. Databricks recommande de ne pas configurer manuellement cette propriété. Consultez la compatibilité des fonctionnalités et les protocoles de Delta Lake. Type de données : default: |
| La version du format de table Iceberg. Databricks recommande de ne pas configurer manuellement cette propriété. Voir Utiliser les fonctionnalités v3 d'Apache Iceberg. Type de données : default: |
|
Type de données : default: |
| La taille de fichier cible en octets ou en unités supérieures pour l'ajustement des fichiers. Par exemple, Voir Contrôler la taille des fichiers de données. Type de données : default: (aucun) |
| Le codec de compression pour une table. Valeurs valides : Cette propriété garantit que toutes les futures écritures dans la table utilisent le codec choisi, en remplaçant la default du cluster ou de la session ( Type de données : default: |
| La version du format Parquet utilisée lors de l'écriture des fichiers de données. La définition de cette option sur Les valeurs valides sont Cette propriété peut être définie sur les tables Delta Lake et Apache Iceberg. Certains lecteurs Iceberg OSS pourraient ne pas prendre en charge les encodages Parquet v2. Consultez les Limitations. Voir Parquet v2. Type de données : default: |
|
Type de données : default: |
| Combine automatiquement les petits fichiers au sein des partitions de table afin de réduire les problèmes liés aux petits fichiers. Accepte Voir Compactage automatique. Type de données : default: (aucun) |
|
Type de données : default: |
|
Type de données : default: |
|
Consultez Checkpoint V2 et Compatibilité pour les tables avec clustering liquide. Type de données : default: |
| Active le mappage de colonnes pour les colonnes de table et les colonnes Parquet correspondantes qui utilisent des noms différents. Les valeurs possibles sont Voir Renommer et supprimer des colonnes avec le mappage de colonnes Delta Lake. Remarque : l'activation de Type de données : default: |
|
Type de données : default: |
|
Voir Utiliser le flux de données de modification. Type de données : default: |
|
Voir l'élargissement de type. Type de données : default: |
| Le degré auquel une transaction doit être isolée des modifications apportées par des transactions simultanées. Les valeurs valides sont Voir les niveaux d'isolement (WriteSerializable et Serializable). Type de données : default: |
| Le nombre de caractères à générer pour les préfixes aléatoires lorsque Type de données : default: |
| La durée la plus courte pendant laquelle les nouveaux instantanés conservent les identificateurs de transaction (par exemple, Type de données : default: (aucun) |