Partager via


Informations de référence sur les propriétés de table Delta

Delta Lake réserve les propriétés de table Delta à partir de delta.. Ces propriétés peuvent avoir des significations spécifiques et affecter des comportements lorsque ces propriétés sont définies.

Remarque

Toutes les opérations, définissant ou mettant à jour les propriétés de la table, entrent en conflit avec d’autres opérations d’écriture simultanées, ce qui entraîne leur échec. Databricks vous recommande de modifier une propriété de table uniquement à un moment où il n’y a pas d’opérations d’écriture simultanées sur la table.

Comment les propriétés de table et les propriétés SparkSession interagissent-elles ?

Les propriétés de table Delta sont définies par table. Si une propriété est définie sur une table, il s’agit du paramètre suivi par défaut.

Certaines propriétés de table ont des configurations SparkSession associées qui sont toujours prioritaires sur les propriétés de table. Parmi les exemples, citons les configurations spark.databricks.delta.autoCompact.enabled et spark.databricks.delta.optimizeWrite.enabled, qui activent le compactage automatique et les écritures optimisées au niveau SparkSession plutôt qu’au niveau de la table. Databricks recommande d’utiliser des configurations de portée de table pour la plupart des charges de travail.

Pour chaque propriété de table Delta, vous pouvez définir une valeur par défaut pour les nouvelles tables à l’aide d’une configuration SparkSession, en remplaçant la valeur par défaut intégrée. Ce paramètre affecte uniquement les nouvelles tables et ne remplace pas les propriétés définies sur les tables existantes. Le préfixe utilisé dans la SparkSession est différent des configurations utilisées dans les propriétés de table, comme indiqué dans le tableau suivant :

Configuration Delta Lake Configuration SparkSession
delta.<conf> spark.databricks.delta.properties.defaults.<conf>

Par exemple, pour définir la propriété delta.appendOnly = true pour toutes les nouvelles tables Delta Lake créées dans une session, définissez les éléments suivants :

SET spark.databricks.delta.properties.defaults.appendOnly = true

Pour modifier les propriétés de table des tables existantes, utilisez SET TBLPROPERTIES.

Propriétés de table Delta

Les propriétés de table Delta disponibles incluent les suivantes :

Propriété
delta.appendOnly

true pour que cette table Delta soit pour ajout uniquement. En cas d’ajout uniquement, les enregistrements existants ne peuvent pas être supprimés et les valeurs existantes ne peuvent pas être mises à jour.

Consultez Référence sur les propriétés de table Delta.

Type de données : Boolean

Valeur par défaut : false
delta.autoOptimize.autoCompact

auto pour Que Delta Lake optimise automatiquement la disposition des fichiers pour cette table Delta.

Consultez Compactage automatique pour Delta Lake sur Azure Databricks.

Type de données : Boolean

Valeur par défaut : (« none »)
delta.autoOptimize.optimizeWrite

true pour Que Delta Lake optimise automatiquement la disposition des fichiers pour cette table Delta pendant les écritures.

Consultez Écritures optimisées pour Delta Lake sur Azure Databricks.

Type de données : Boolean

Valeur par défaut : (« none »)
delta.checkpoint.writeStatsAsJson

true pour que Delta Lake écrive des statistiques de fichier dans des points de contrôle au format JSON pour la colonne stats.

Consultez Gérer les statistiques au niveau des colonnes dans les points de contrôle.

Type de données : Boolean

Valeur par défaut : true
delta.checkpoint.writeStatsAsStruct

true pour que Delta Lake écrive des statistiques de fichier dans des points de contrôle au format struct pour la colonne stats_parsed et écrive des valeurs de partition au format struct pour partitionValues_parsed.

Consultez Gérer les statistiques au niveau des colonnes dans les points de contrôle.

Type de données : Boolean

Valeur par défaut : (« none »)
delta.checkpointPolicy

classic pour les points de contrôle Delta Lake classiques. v2 pour les points de contrôle v2.

Consultez Compatibilité pour les tables avec un clustering liquide.

Type de données : String

Valeur par défaut : classic
delta.columnMapping.mode

Indique si le mappage de colonnes est activé pour les colonnes de table Delta et les colonnes Parquet correspondantes qui utilisent différents noms.

Cf. Renommage et suppression des colonnes avec le mappage de colonnes Delta Lake.

Remarque : L’activation de delta.columnMapping.mode active automatiquement
delta.randomizeFilePrefixes.

Type de données : DeltaColumnMappingMode

Valeur par défaut : none
delta.dataSkippingNumIndexedCols

Nombre de colonnes pour que Delta Lake collecte des statistiques sur l’ignorance des données. Valeur de -1 pour collecter des statistiques pour toutes les colonnes.

Consultez Saut de données pour Delta Lake.

Type de données : Int

Valeur par défaut : 32
delta.dataSkippingStatsColumns

Liste séparée par des virgules des noms des colonnes sur lesquelles Delta Lake collecte des statistiques pour améliorer la fonctionnalité d’omission de données. Cette propriété est prioritaire sur delta.dataSkippingNumIndexedCols.

Consultez Saut de données pour Delta Lake.

Type de données : String

Valeur par défaut : (« none »)
delta.deletedFileRetentionDuration

Durée la plus courte pour que Delta Lake conserve logiquement les fichiers de données supprimés avant de les supprimer physiquement. Cela permet d’éviter les échecs dans les lecteurs obsolètes après des compactages ou des remplacements de partitions.

Cette valeur doit être suffisamment grande pour garantir que :

- Elle est supérieure à la durée la plus longue possible d’un travail si vous exécutez VACUUM lorsque des lecteurs ou des enregistreurs simultanés accèdent à la table Delta.
- Si vous exécutez une requête de diffusion en continu qui lit à partir de la table, cette requête ne s’arrête pas plus longtemps que cette valeur. Sinon, la requête peut ne pas être en mesure de redémarrer, car elle doit toujours lire les anciens fichiers.

Voir Configurer la conservation des données pour des requêtes de voyage dans le temps.

Type de données : CalendarInterval

Valeur par défaut : interval 1 week
delta.enableChangeDataFeed

true pour activer le flux des changements de données.

Consultez Activer le flux des changements de données.

Type de données : Boolean

Valeur par défaut : false
delta.enableDeletionVectors

true pour activer des vecteurs de suppression et des E/S prédictives pour des mises à jour.

Consultez Que sont les vecteurs de suppression ?.

Type de données : Boolean

Valeur par défaut : Dépend des paramètres d’administration de l’espace de travail et de la version de Databricks Runtime. Consultez Activer automatiquement des vecteurs de suppression
delta.isolationLevel

Degré auquel une transaction doit être isolée des modifications effectuées par des transactions concurrentes.

Les valeurs valides sont Serializable et WriteSerializable.

Consultez Niveaux d’isolation et conflits d’écriture sur Azure Databricks.

Type de données : String

Valeur par défaut : WriteSerializable
delta.logRetentionDuration

Durée de conservation de l’historique d’une table Delta. VACUUM les opérations remplacent ce seuil de rétention.

Chaque fois qu’un point de contrôle est écrit, Delta Lake nettoie automatiquement les entrées de journal antérieures à l’intervalle de rétention. Si vous définissez cette propriété sur une valeur suffisamment élevée, de nombreuses entrées de journal sont conservées. Cela ne doit pas affecter les performances, car les opérations sur le journal sont des temps constants. Les opérations sur l’historique sont parallèles, mais elles deviennent plus onéreuses au fur et à mesure que la taille du journal augmente.

Voir Configurer la conservation des données pour des requêtes de voyage dans le temps.

Type de données : CalendarInterval

Valeur par défaut : interval 30 days
delta.minReaderVersion

Version minimale requise du lecteur de protocole pour un lecteur qui permet de lire à partir de cette table Delta.

Databricks recommande de ne pas configurer manuellement cette propriété.

Consultez Comment Azure Databricks gère-t-il la compatibilité des fonctionnalités Delta Lake ?.

Type de données : Int

Valeur par défaut : 1
delta.minWriterVersion

Version minimale requise de l’enregistreur de protocole pour un enregistreur qui permet d’écrire dans cette table Delta.

Databricks recommande de ne pas configurer manuellement cette propriété.

Consultez Comment Azure Databricks gère-t-il la compatibilité des fonctionnalités Delta Lake ?.

Type de données : Int

Valeur par défaut : 2
delta.randomizeFilePrefixes

true pour que Delta Lake génère un préfixe aléatoire pour un chemin d’accès au fichier au lieu d’informations de partition.

Type de données : Boolean

Valeur par défaut : false
delta.randomPrefixLength

Lorsque delta.randomizeFilePrefixes est défini sur true, nombre de caractères générés par Delta Lake pour les préfixes aléatoires.

Type de données : Int

Valeur par défaut : 2
delta.setTransactionRetentionDuration

Durée la plus courte dans laquelle les nouveaux instantanés conservent les identificateurs de transaction (par exemple, SetTransaction s). Lorsqu’un nouvel instantané voit un identificateur de transaction antérieur ou égal à la durée spécifiée par cette propriété, l’instantané considère qu’il a expiré et l’ignore. L’identificateur SetTransaction est utilisé lors de l’écriture idempotente. Pour plus d’informations, consultez Écritures de tables idempotentes dans foreachBatch.

Type de données : CalendarInterval

Valeur par défaut : (« none »)
delta.targetFileSize

Taille de fichier cible en octets ou unités supérieures pour le réglage des fichiers. Par exemple,
104857600 (octets) ou 100mb.

Consultez Configurer Delta Lake pour contrôler la taille du fichier de données.

Type de données : String

Valeur par défaut : (« none »)
delta.tuneFileSizesForRewrites

true pour toujours utiliser des tailles de fichiers inférieures pour toutes les opérations d’optimisation de la présentation des données sur la table Delta.

false pour ne jamais ajuster aux tailles de fichiers inférieures, c’est-à-dire empêcher l’activation de la détection automatique.

Consultez Configurer Delta Lake pour contrôler la taille du fichier de données.

Type de données : Boolean

Valeur par défaut : (« none »)