Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Disponible dans Databricks Runtime 14.1 et versions ultérieures, le suivi des lignes affecte des ID de ligne stables et des versions de validation de ligne à chaque ligne, ce qui permet le suivi de traçabilité au niveau des lignes. Certaines mises à jour incrémentielles pour les vues matérialisées nécessitent cette fonctionnalité.
Toutes les tables Apache Iceberg v3 incluent le suivi des lignes. Consultez Utiliser les fonctionnalités Apache Iceberg v3. Pour les tables Delta Lake, vous devez activer explicitement le suivi des lignes.
Note
L’activation du suivi des lignes met à niveau le protocole enregistreur de tables et peut affecter la compatibilité avec les clients Delta Lake externes. Consultez les protocoles et la compatibilité des fonctionnalités Delta Lake.
Activer le suivi des lignes sur les tables Delta Lake
Pour activer le suivi des lignes sur une table Delta Lake, définissez la propriété delta.enableRowTracking = true de table lors de la création de la table :
CREATE TABLE table_name
TBLPROPERTIES (delta.enableRowTracking = true)
AS SELECT * FROM source_table;
Pour activer le suivi des lignes sur une table Delta Lake existante, utilisez l’exemple suivant :
ALTER TABLE table_name SET TBLPROPERTIES (delta.enableRowTracking = true);
Important
L’activation du suivi des lignes sur les tables existantes attribue automatiquement des ID de ligne et des versions de validation de ligne à toutes les lignes existantes de la table. Ce processus peut entraîner la création de plusieurs nouvelles versions de la table et prendre beaucoup de temps.
Warning
Si votre table est une cible pour les écritures continues, telles que les charges de travail Structured Streaming, suspendez les opérations d’écriture avant d’activer le suivi des lignes et reprendre une fois l’opération terminée. L’utilisation de ALTER TABLE pour activer le suivi des lignes met à jour les métadonnées de la table, ce qui entraîne l’échec de toute opération d’écriture concurrente avec une erreur MetadataChangedException pendant toute la durée de l’opération. Voir exceptions de conflit.
Le clonage d’une table crée un historique distinct, de sorte que les ID de ligne et les versions de validation de ligne sur les tables clonées ne correspondent pas à celles de la table d’origine.
Champs de métadonnées
Le suivi des lignes ajoute deux champs de métadonnées masqués à la table. Vous pouvez ajouter explicitement ces champs à votre requête pour retourner les valeurs.
| Nom de la colonne | Type | Values | Explanation |
|---|---|---|---|
_metadata.row_id |
Long | Identificateur unique de la ligne. | Une ligne conserve le même ID chaque fois qu’elle est modifiée à l’aide d’une instruction MERGE ou UPDATE. |
_metadata.row_commit_version |
Long | Version du journal ou de la table Delta à laquelle la ligne a été insérée ou mise à jour en dernier. | Une ligne reçoit une nouvelle version chaque fois qu’elle est modifiée à l’aide d’une instruction MERGE ou UPDATE. |
Certaines opérations stockent ces champs de métadonnées à l’aide du journal des transactions. L’exécution d’opérations OPTIMIZE ou REORG sur une table avec le suivi des lignes activé réécrit les fichiers de données pour stocker ces champs.
Désactiver le suivi des lignes sur les tables Delta Lake
Pour désactiver le suivi des lignes dans une table Delta Lake, définissez la propriété de table sur false.
ALTER TABLE table_name SET TBLPROPERTIES (delta.enableRowTracking = false);
Important
La désactivation du suivi des lignes ne supprime pas la fonctionnalité de table correspondante et ne rétrograde pas la version du protocole de table. Elle ne supprime pas non plus les champs de métadonnées de la table cible. Pour supprimer entièrement la fonctionnalité de table et rétrograder le protocole, utilisez DROP FEATURE. Consultez Supprimer une fonctionnalité de table Delta Lake et passer à une version antérieure du protocole de table.
Après avoir désactivé le suivi des lignes, les ID de ligne générés ne sont plus fiables pour le suivi des lignes uniques.
Limitations
Les ID de ligne et les champs de métadonnées des versions de validation ne sont pas accessibles lors de la lecture du flux de données modifiées. Consultez Utiliser le flux de données modifiées sur Azure Databricks.