Voyage dans le temps pour la table Iceberg

Les données temporelles sont essentielles à la plupart des bases de données d'application. Avec la fonction de déplacement dans le temps watsonx.data disponible à partir de la version 11.2.3, vous pouvez extraire et analyser des données d'historique sans avoir à développer de logique d'application supplémentaire, telle que des tables d'historique. Cet outil puissant est pratique lorsque vous souhaitez suivre l'historique des modifications de données ou reconstruire vos données.

A l'aide du trajet temporel watsonx.data, vous pouvez accéder aux données d'historique (données qui ont été modifiées) à des moments passés.

Interrogation des données pour une heure spécifique avec AS OF

SELECT product_id, product_name FROM product for SYSTEM_TIME AS OF "2023-10-23 10:00:00"

Les contraintes suivantes seront appliquées:

  • Seule la sous-clause AS OF/BEFORE de system_time sera prise en charge pour la table watsonx.data de format de type Iceberg.
  • En ce qui concerne le " <timestamp value>, il ne peut être que de type horodaté ou promouvable en valeur d'horodatage.
  • Comme " <timestamp value> peut être une expression, mais elle doit finalement être évaluée à une valeur constante.
  • À partir de " <timetamp value>, il n'est pas possible de faire référence à des attributs ou à des sous-requêtes.
  • As of '<timestamp value> ne peut être antérieur à l'heure associée au tout premier identifiant d'instantané disponible de la table.

Interrogation des données pour une heure spécifique avec BEFORE

SELECT product_id, product_name, product_price FROM product FOR SYSTEM_TIME BEFORE '2023-12-01 12:00:00'

La sous-clause BEFORE attend une valeur d'horodatage et renvoie l'état de la table en termes de données avant l'horodatage donné.

Recherche de données pour un instantané spécifique avec SYSTEM_VERSION

SELECT product_id, product_name, product_price FROM product FOR SYSTEM_VERSION AS OF 1887396386633333444

Avec la sous-clause SYSTEM_VERSION AS OF, vous pouvez fournir l'ID d'instantané pour demander l'état de la table en fonction de l'ID d'instantané donné. Cette requête de déplacement temporel utilisant la clause SYSTEM_VERSION est autorisée uniquement sur les tables watsonx.data au format Iceberg.

SHOW SNAPSHOTS FOR '<table-name> (en anglais)

SHOW SNAPSHOTS FOR PRODUCT:

     SNAPSHOT_ID     |   SNAPSHOT_TIMESTAMP

---------------------+-------------------------

 9200563116884920042 | 2023-11-22 14:07:11.568

  772896300100219109 | 2023-11-22 14:07:23.075

 6627427340973491406 | 2023-11-22 14:07:30.401

 5580047607422801480 | 2023-11-22 14:07:36.699

 9177117635666586877 | 2023-12-01 12:07:53.511
(5 rows)

Cette instruction d'affichage des instantanés répertorie tous les instantanés associés à une table d'icebergs donnée. Ces informations peuvent être utiles pour effectuer des requêtes de déplacement dans le temps à l'aide de l'horodatage AS OF ou de l'ID d'instantané AS OF. Cette commande show est également autorisée uniquement sur les tables watsonx.data au format Iceberg.

Compte de référence

Voir Voyage dans le temps et données d'historique.