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.