Iceberg テーブルのタイム・トラベル

時間関連のデータは、ほとんどのアプリケーション・データベースの中核となります。 バージョン 11.2.3以降で使用可能な watsonx.data のタイム・トラベル機能を使用すると、履歴表などの追加のアプリケーション・ロジックを開発することなく、履歴データを取得して分析することができます。 この強力なツールは、データ変更の履歴を追跡したり、データを再構成したりする場合に役立ちます。

watsonx.data のタイム・トラベルを使用して、過去の時点の履歴データ (変更されたデータ) にアクセスできます。

AS OF を使用した特定の時刻のデータの照会

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

以下の制約が適用されます。

  • Isceberg タイプ・フォーマットの watsonx.data テーブルでは、system_time の AS OF/BEFORE サブ節のみがサポートされます。
  • <timestamp value>」は、タイムスタンプ型か、タイムスタンプ値に昇格可能なものでなければならない。
  • <timestamp value> 時点では式にすることができるが、最終的には定数値に評価される必要がある。
  • <timetamp value> の時点では、属性やサブクエリを参照することはできません。
  • <timestamp value> の時点は、そのテーブルの最初のスナップショットIDの時点より前であってはならない。

BEFORE を使用した特定の時刻のデータの照会

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

BEFORE 副節はタイム・スタンプ値を予期し、指定されたタイム・スタンプの前のデータに関して表の状態を戻します。

SYSTEM_VERSION を使用した特定のスナップショットのデータの照会

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

SYSTEM_VERSION AS OF サブ節を使用すると、スナップショット ID を指定して、指定されたスナップショット ID に基づいて表の状態を要求することができます。 SYSTEM_VERSION 節を使用したこのタイム・トラベル照会は、Iceberg 形式の watsonx.data 表でのみ許可されます。

<table-name> スナップショットを表示する。

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)

この show snapshots ステートメントは、指定された iceberg テーブルに関連付けられているすべての snaphosts をリストします。 この情報は、AS OF タイム・スタンプまたは AS OF スナップショット ID を使用してタイム・トラベル照会を行う場合に役立ちます。 また、この show コマンドは、Iceberg 形式の watsonx.data テーブルでのみ使用できます。

参照資料

タイム・トラベルおよび履歴データ を参照してください。