タイム・トラベル用のオブジェクトの作成と変更

概要

NPSaaSでタイム・トラベル照会を実行するには、 DATA_VERSION_RETENTION_TIME (保存時間間隔) をゼロ以外の値に設定して、タイム・トラベル表、スキーマ、またはデータベース (タイム・トラベル・オブジェクト) を作成します。 DATA_VERSION_RETENTION_TIME を設定するには、これらのオブジェクト・タイプに対して CREATE または ALTER コマンドを使用するか、Web コンソールを使用します。 1 日から 99 日までを選択することも、ゼロを選択してテンポラル・オブジェクトを非テンポラルに変更することもできます。

スキーマまたはデータベース内のすべての表に対して保存時間間隔を設定する前に、テンポラル表のストレージのコストを考慮してください。これは重要なことです。 タイム・トラベル・スペース使用量の管理 を参照してください。

また、 システムのデフォルトの DATA_VERSION_RETENTION_TIME を設定する こともできます。

テンポラル表には通常、現在行と履歴行があります。 現在の行には削除のマークが付けられていません。 履歴行は、削除対象としてマークされ ( DELETEUPDATEMERGE、または TRUNCATE ステートメントによって)、削除タイム・スタンプを過ぎた指定の保存時間間隔まで、タイム・トラベル照会に対して可視になります。

DATA_VERSION_RETENTION_TIME 値がゼロの表は、非テンポラル表です。 現在の (削除されていない) 行のみが照会に表示されます。 履歴行の中には、増分バックアップの目的で保持されるものもありますが、タイム・トラベル照会ではアクセスできないものもあります。

既存のテンポラル表の DATA_VERSION_RETENTION_TIME をゼロに変更すると、表は非テンポラル表になります。 タイム・トラベル照会を使用した履歴データへのアクセスはサポートされなくなりました。

制限

表、スキーマ、およびデータベースの保存時間間隔に対する変更は、プライマリー・ノードからレプリカ・ノードに複製されません。 これらは、ヒストリカル (削除された) 表の行でもありません。

表、スキーマ、およびデータベースの保存期間は、 nzbackup コマンドによって自動的にバックアップされ、 nzrestore コマンドによってリストアされます。 表の行の挿入および削除のタイム・スタンプは、バックアップおよびリストアされません。 リストアされた行は、ターゲット・データベースまたはシステムに新しい挿入タイム・スタンプを取得し、増分リストアによって削除された行は、ターゲット・データベースまたはシステムに新しい削除タイム・スタンプを取得します。 ターゲット上の行の履歴バージョンの数が、ソース・データベース上の行の数と一致するという期待や保証はありません。 例えば、ソース上のバックアップ増分の間に、特定の行が複数回更新されたり、更新されてから削除されたりすることがあります。 このアクションにより、ターゲット上のその行が 1 回削除されます。

追加の SPU エンクロージャーを使用して NPSaaS システムを拡張しようとすると、手順の結果、履歴 (削除済み) 行が失われます。 すべての現在行は、新しい挿入タイム・スタンプを使用して再配分されます。

以下のタイプの表をテンポラル表にすることはできません。

  • 一時表
  • 外部テーブル
  • 列の追加またはドロップ (あるいはその両方) によって変更されたバージョン管理された表
  • 行セキュリティー表。

この制限は、以下のコマンドに影響します。

GROOM TABLE VERSIONS コマンドは、バージョン管理された表をバージョン管理されていない表に変換します。 これが発生した場合は、 ALTER TABLE コマンドでゼロ以外の DATA_VERSION_RETENTION_TIME を指定できます。

watsonx.data の DATA_VERSION_RETENTION_TIME に関連する例外

watsonx.data には、 DATA_VERSION_RETENTION_TIME に関連する例外があります。 以下の表は、 watsonx.dataのデータベース、スキーマ、および表の DATA_VERSION_RETENTION_TIME プロパティーの動作を示しています。

動作と例外
動作 例外
watsonx.data の DATA_VERSION_RETENTION_TIME を指定した CREATE DATABASE 使用不可
watsonx.data の DATA_VERSION_RETENTION_TIME を指定した ALTER DATABASE 使用不可
watsonx.data の DATA_VERSION_RETENTION_TIME を指定した CREATE SCHEMA 使用不可
watsonx.data の DATA_VERSION_RETENTION_TIME を指定した ALTER SCHEMA NETEZZA_SCHEMA を除き、許可されません。
DATA_VERSION_RETENTION_TIME (テンポラル) 表を指定した CREATE TABLE NETEZZA_SCHEMA の下でのみ使用可能
DATA_VERSION_RETENTION_TIME (テンポラル) 表を指定した ALTER TABLE NETEZZA_SCHEMA の下でのみ使用可能

SYSTEM DEFAULT DATA_VERSION_RETENTION_TIME がゼロ以外の場合、CREATE DATABASE は SYSTEM DEFAULT からプロパティーを継承しません。 NETEZZA_SCHEMA を含む CREATE SCHEMA は DB プロパティーを継承しません。 watsonx.dataのタイム・トラベル関連の自動保守タスクに必要な影響や変更はありません。

コマンド行を使用したタイム・トラベル・オブジェクトの作成

コマンド行を使用したテンポラル表の作成

テンポラル表を作成するには、 DATA_VERSION_RETENTION_TIME をゼロ以外の値に設定します。

詳細な構文と特権については、 CREATE TABLE コマンド を参照してください。

CREATE TABLE <tablename> ( <col>[, <col>… ] ) DATA_VERSION_RETENTION_TIME <number-of-days>;

例:

CREATE TABLE PRODUCT (prodid int, proddesc char(100)) DATA_VERSION_RETENTION_TIME 30;

表に行を挿入すると、その行は、挿入トランザクションのコミット時刻と等しい仮想挿入タイム・スタンプを受け取ります。

表から行を削除すると、その行は、削除 (または切り捨て) トランザクションのコミット時刻と等しい仮想削除タイム・スタンプを受け取ります。

コマンド行を使用したテンポラル・スキーマの作成

テンポラル・スキーマを作成するには、 DATA_VERSION_RETENTION_TIME をゼロ以外の値に設定します。

詳細な構文と特権については、 CREATE SCHEMA コマンドを参照してください。

CREATE SCHEMA <schema_name> DATA_VERSION_RETENTION_TIME <number-of-days>;

例:

CREATE SCHEMA SCHEMA1 DATA_VERSION_RETENTION_TIME 30;

コマンド行を使用したテンポラル・データベースの作成

テンポラル・データベースを作成するには、 DATA_VERSION_RETENTION_TIME をゼロ以外の値に設定します。

詳細な構文と特権については、 CREATE DATABASE コマンド を参照してください。

CREATE DATABASE <db_name> DATA_VERSION_RETENTION_TIME <number-of-days>;

例:

CREATE DATABASE DB1 DATA_VERSION_RETENTION_TIME 30;

Web コンソールを使用したタイム・トラベル・オブジェクトの作成

Web コンソールを使用したテンポラル表の作成

  1. Web コンソールの概要 の説明に従って、Web コンソールにログインします。
  2. 表の作成 の説明に従って、テンポラル表を作成します。

保存時間間隔 をゼロ以外の値に設定する必要があります。

ドット文字 (「.」) を含むデータベース、スキーマ、および表名 保存時間間隔 をゼロ以外の値に設定した場合は、タイム・トラベル統計およびグラフに表示されません。 保存時間間隔を設定しない場合は、すべての特殊文字がサポートされます。

表に行を挿入すると、その行は、挿入トランザクションのコミット時刻と等しい仮想挿入タイム・スタンプを受け取ります。

表から行を削除すると、その行は、削除 (または切り捨て) トランザクションのコミット時刻と等しい仮想削除タイム・スタンプを受け取ります。

Web コンソールを使用したテンポラル・スキーマの作成

テンポラル・スキーマを作成するには、 retention time interval をゼロ以外の値に設定します。

  1. Web コンソールの概要 の説明に従って、Web コンソールにログインします。
  2. スキーマの作成 の説明に従って、テンポラル・スキーマを作成します。

コマンド行を使用したテンポラル・データベースの作成

テンポラル・データベースを作成するには、 retention time interval をゼロ以外の値に設定します。

  1. Web コンソールの概要 の説明に従って、Web コンソールにログインします。
  2. データベースの作成 の説明に従って、テンポラル・データベースを作成します。

コマンド行を使用したタイム・トラベル・オブジェクトの変更

コマンド行を使用したテンポラル表の非テンポラルへの変更

テンポラル表を非テンポラル表に変更するには、 DATA_VERSION_RETENTION_TIME を 0 に設定します。

詳細な構文と必要な特権については、 ALTER TABLE コマンド を参照してください。

ALTER TABLE <table> DATA_VERSION_RETENTION_TIME 0;

例:

ALTER TABLE PRODUCT DATA_VERSION_RETENTION_TIME 0;

DATA_VERSION_RETENTION_TIME を 0 に設定すると、タイム・トラベル照会を実行できなくなり、その表の履歴行にアクセスできなくなります。 GROOM TABLE を指定して、表内の現在アクセスできない履歴行の一部またはすべてを再利用することができます。

コマンド行を使用した非テンポラル表のテンポラルへの変更

非テンポラル表をテンポラル表に変更するには、 DATA_VERSION_RETENTION_TIME] をゼロ以外の値に設定します。

詳細な構文と必要な特権については、 ALTER TABLE コマンド を参照してください。

ALTER TABLE <table> DATA_VERSION_RETENTION_TIME <number-of-days>;

例:

ALTER TABLE PRODUCT DATA_VERSION_RETENTION_TIME 30;

最初にテンポラル表を無効にしてから、同じ表をテンポラル表に変換した場合、その表の以前の履歴行にアクセスすることはできません。 表がテンポラルに変換された後に行が削除または更新されると、履歴データが収集されます。

CREATE TABLE コマンドの場合と同様に、表に挿入される行は、挿入トランザクションのコミット時刻と等しい仮想挿入タイム・スタンプを受け取ります。 表から削除された行は、仮想削除タイム・スタンプを受け取ります。このタイム・スタンプは、削除 (または切り捨て) トランザクションのコミット時刻と同じです。 表の保存の下限および保存の開始時刻が、この ALTER TABLE トランザクションのコミット時刻と同じか、その直前になっています。

既存の行がない CREATE TABLE コマンドとは異なり、表内の既存の可視行は、この ALTER TABLE トランザクションによって挿入されたかのように扱われます。 既存の可視行は、保存開始時刻と等しい仮想挿入タイム・スタンプを受け取ります。 これらのタイム・スタンプを使用すると、タイム・トラベル照会で行が表示される可能性があります。

コマンド行を使用したテンポラル・スキーマの非テンポラルへの変更

テンポラル・スキーマを非テンポラルに変更するには、 DATA_VERSION_RETENTION_TIME を 0 に設定します。

詳細な構文、必要な特権、および CASCADE オプションについては、 ALTER SCHEMA コマンド を参照してください。

ALTER SCHEMA <schema_name> DATA_VERSION_RETENTION_TIME 0 NOCASCADE;

例:

ALTER SCHEMA SCHEMA DATA_VERSION_RETENTION_TIME 0 NOCASCADE;

コマンド行を使用した非テンポラル・スキーマのテンポラルへの変更

非テンポラル・スキーマをテンポラルに変更するには、 DATA_VERSION_RETENTION_TIME をゼロ以外の値に設定します。

詳細な構文、必要な特権、および CASCADE オプションについては、 ALTER SCHEMA コマンド を参照してください。

ALTER SCHEMA <schema_name> DATA_VERSION_RETENTION_TIME <number-of-days> NOCASCADE;

例:

ALTER SCHEMA DB1 DATA_VERSION_RETENTION_TIME 30 NOCASCADE;

コマンド行を使用したテンポラル・データベースの非テンポラルへの変更

テンポラル・データベースを非テンポラルに変更するには、 DATA_VERSION_RETENTION_TIME を 0 に設定します。

詳細な構文および必要な特権については、 ALTER DATABASE コマンド を参照してください。

ALTER DATABASE <db_name> DATA_VERSION_RETENTION_TIME 0 NOCASCADE;

例:

ALTER DATABASE DB1 DATA_VERSION_RETENTION_TIME 0 NOCASCADE;

コマンド行を使用した非テンポラル・データベースのテンポラルへの変更

非テンポラル・データベースをテンポラルに変更するには、 DATA_VERSION_RETENTION_TIME をゼロ以外の値に設定します。

詳細な構文および必要な特権については、 ALTER DATABASE コマンド を参照してください。

ALTER DATABASE <db_name> DATA_VERSION_RETENTION_TIME <number-of-days> NOCASCADE;

例:

ALTER DATABASE DB1 DATA_VERSION_RETENTION_TIME 30 NOCASCADE;

Web コンソールを使用したタイム・トラベル・オブジェクトの変更

Web コンソールを使用したテンポラル表の非テンポラルへの変更

テンポラル表を非テンポラルに変更するには、 retention time interval を 0 に設定します。

  1. Web コンソールの概要 の説明に従って、Web コンソールにログインします。
  2. 表の保存期間の更新 の説明に従って、表を変更します。

「保存期間」 を 0 に設定すると、タイム・トラベル照会を実行できなくなり、その表の履歴行にアクセスできなくなります。 GROOM TABLE を指定して、表内の現在アクセスできない履歴行の一部またはすべてを再利用することができます。

Web コンソールを使用した非テンポラル表のテンポラルへの変更

非テンポラル表をテンポラル表に変更するには、 保存時間間隔 をゼロ以外の値に設定します。

  1. Web コンソールの概要 の説明に従って、Web コンソールにログインします。
  2. 表の保存期間の更新 の説明に従って、表を変更します。

最初にテンポラル表を無効にしてから、同じ表をテンポラル表に変換した場合、その表の以前の履歴行にアクセスすることはできません。 表がテンポラルに変換された後に行が削除または更新されると、履歴データが収集されます。

表を作成する場合と同様に、表に挿入される行は、挿入トランザクションのコミット時刻と等しい仮想挿入タイム・スタンプを受け取ります。 表から削除された行は、仮想削除タイム・スタンプを受け取ります。このタイム・スタンプは、削除 (または切り捨て) トランザクションのコミット時刻と同じです。 表の保存の下限と保存の開始時刻が、この変更トランザクションのコミット時刻と同じか、その直前になっています。

表を作成するときとは異なり、表内の既存の可視行は、この変更トランザクションによって挿入されたかのように扱われます。 既存の可視行は、保存開始時刻と等しい仮想挿入タイム・スタンプを受け取ります。 これらのタイム・スタンプを使用すると、タイム・トラベル照会で行が表示される可能性があります。

Web コンソールを使用したテンポラル・スキーマの非テンポラルへの変更

テンポラル・スキーマを非テンポラルに変更するには、 retention time interval を 0 に設定します。

  1. Web コンソールの概要 の説明に従って、Web コンソールにログインします。
  2. スキーマの保存期間の更新 の説明に従って、表を変更します。

Web コンソールを使用した非テンポラル・スキーマのテンポラルへの変更

非テンポラル・スキーマをテンポラルに変更するには、 保存時間間隔 をゼロ以外の値に設定します。

  1. Web コンソールの概要 の説明に従って、Web コンソールにログインします。
  2. スキーマの保存期間の更新 の説明に従って、表を変更します。

Web コンソールを使用したテンポラル・データベースの非テンポラルへの変更

テンポラル・データベースを非テンポラルに変更するには、 retention time interval を 0 に設定します。

  1. Web コンソールの概要 の説明に従って、Web コンソールにログインします。
  2. データベースの保存期間の更新 の説明に従って、表を変更します。

Web コンソールを使用した非テンポラル・データベースからテンポラル・データベースへの変更

非テンポラル・データベースをテンポラル・データベースに変更するには、 保存時間間隔 をゼロ以外の値に設定します。

  1. Web コンソールの概要 の説明に従って、Web コンソールにログインします。
  2. データベースの保存期間の更新 の説明に従って、表を変更します。

次のタスク

タイム・トラベル・オブジェクトを作成した後、タイム・トラベル照会の実行を開始できます。 詳しくは、以下のリンクを参照してください。