Visualisation de l’Historique des Tables (Principes de Base du Voyage dans le Temps)
Glissez pour afficher le menu
Time Travel est une fonctionnalité de Delta Lake qui permet d'interroger les versions précédentes d'une table. En utilisant le journal des transactions, Databricks peut reconstruire l'état de vos données à n'importe quel moment de son historique enregistré.
L'un des "filets de sécurité" les plus puissants dans Databricks est la possibilité de voir exactement qui a modifié une table, quand elle a été modifiée, et à quoi ressemblaient les données avant cette modification.
Pour notre table diamonds à workspace.workshop.diamonds, chaque mise à jour ou suppression est suivie automatiquement.
1. La commande DESCRIBE HISTORY
Pour visualiser la chronologie complète de vos données, utilisez la commande DESCRIBE HISTORY — elle fournit un registre détaillé de chaque version de la table.
DESCRIBE HISTORY workspace.workshop.diamonds
Lorsque vous exécutez cette commande, vous verrez une table avec les colonnes clés suivantes :
- version : un entier commençant à 0 (la première création de la table) ;
- timestamp : la date et l'heure exactes de la modification ;
- userName : la personne ayant effectué l'action ;
- operation : l'action réalisée (par exemple,
WRITE,UPDATE,DELETEouMERGE) ; - operationParameters : détails techniques concernant la modification.
2. Interrogation d’une version spécifique
Si une mise à jour récente a modifié la colonne "Price", il est possible d’interroger une version antérieure pour consulter les valeurs d’origine à l’aide de la syntaxe VERSION AS OF.
-- Look at the diamonds table exactly as it was in Version 0
SELECT * FROM workspace.workshop.diamonds VERSION AS OF 0
3. Interrogation par horodatage
Si le numéro de version est inconnu mais que la date à laquelle les données étaient correctes est connue, il est possible de revenir dans le temps à l’aide de TIMESTAMP AS OF.
-- Look at the data as it existed at a specific time
SELECT * FROM workspace.workshop.diamonds TIMESTAMP AS OF '2026-02-11 09:00:00'
4. Importance de cette fonctionnalité
Dans les bases de données traditionnelles, une exécution accidentelle d’une commande DELETE sans clause WHERE nécessite l’intervention d’un administrateur de base de données pour restaurer une sauvegarde — un processus pouvant durer plusieurs heures.
Avec Delta Lake Time Travel, il est possible de corriger l’erreur en quelques secondes en sélectionnant les données d’une version antérieure et en écrasant la table actuelle corrompue avec les données historiques saines.
5. Gestion de l'historique
Par défaut, Delta Lake conserve 30 jours d'historique. Bien que très utile, la conservation de l'historique nécessite de garder les anciens fichiers de données, mais les fichiers de données sous-jacents des versions supprimées/écrasées ne sont conservés que pendant 7 jours (delta.deletedFileRetentionDuration) avant que la commande VACUUM puisse les nettoyer.
Dans les environnements professionnels, les ingénieurs de données utilisent la commande VACUUM pour nettoyer les fichiers très anciens et réduire les coûts de stockage. Pour ce cours, votre historique est sécurisé et prêt à être exploré.
VACUUM est une commande de nettoyage qui supprime définitivement les anciens fichiers de données dont Delta Lake n'a plus besoin — ceux laissés après des mises à jour, suppressions ou remplacements.
VACUUM workspace.workshop.diamonds
Par défaut, Delta conserve 30 jours d'historique de fichiers pour le Time Travel. VACUUM supprime les fichiers plus anciens que ce seuil afin d'économiser de l'espace de stockage.
Il est également possible de définir une fenêtre de rétention personnalisée :
VACUUM workspace.workshop.diamonds RETAIN 7 HOURS
1. Quelle commande SQL permet de voir la liste de toutes les versions précédentes et opérations effectuées sur une table ?
2. Vous avez accidentellement mis à jour la table diamonds et souhaitez voir les données d'il y a 10 minutes. Quelle syntaxe devez-vous utiliser ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion