17.00 - テンポラル テーブルのコピーについて - Teradata Data Mover

Teradata® Data Mover ユーザー ガイド

Product
Teradata Data Mover
Release Number
17.00
Published
2021年11月
Content Type
ユーザー ガイド
Publication ID
B035-4101-030K-JPN
Language
日本語 (日本)

従来のデータベース システムでは、テーブル内に格納されたデータは、現時点において有効であるとみなされます。従来のテーブルは現在の状態のスナップショットに限定されるため、これらのテーブルでは過去に存在していたデータは保持されず、また未来に有効になるデータも保持されません。テンポラル データベースを使用すれば、テンポラル データ型を提供して、過去、現在、または未来に関する情報を格納することによって、特定の時点に関連付けられたデータを格納することができます。 例えば、テンポラル データベース システム内にあるテーブルには、一年の各月の終わりの在庫レベルに関するデータを格納することができます。 データの時間の次元をテーブル内に格納することによって、履歴および将来の傾向についてのクエリーを直接実行することができます。

テンポラル テーブルには次のいずれかまたは両方が含まれます。
日時 説明

ValidTime

ある一定の期間を使用して現実の世界に基づいてモデル化されたデータ。この期間の間、ある1つの事実(行)は現実の世界において真(有効)です。テーブル内のDATEまたはTIMESTAMPの列の値では、ある事実が有効であることがわかっている時間を定義します。

TransactionTime

ある一定の期間を使用したデータ。この期間は、ある1つの事実(行)がデータベース内に記録(コミット)された時点から始まり、この事実が更新、ロールバック、または削除によって置き換えられた時点で終わります。テーブル内のTIMESTAMP列の値では、この事実のトランザクション時間を定義します。

テンポラル テーブル、関連する結合インデックスとハッシュ インデックスおよびトリガーをターゲット システムにコピーできます。テンポラル テーブルをソースからターゲットにコピーするには、ターゲット データベースに対するNONTEMPORAL権限が必要です。次のXMLの例では、Employee_BT_1内のテンポラル テーブルがターゲット システムにコピーされます。
<table selection = "included">
 <name>Employee_BT_1</name>
  <target_database>
  	<name>MyDatabase</name>
  </target_database>
</table>

force_utilityが指定されていない場合、Data Moverはテンポラル テーブルのコピー時にTeradata DSAを自動的に選択します。DSAが使用不能な場合は、Teradata PT updateオペレータが選択されます。Teradata PTの使用を強制すると、Teradata PT updateオペレータがコピー方法として選択されます。DSAを使用してデータベース全体をコピーすると、ソースのすべてのテンポラル テーブルがターゲットにコピーされます。テンポラル テーブルをコピーする場合、ターゲット システムのテンポラル テーブルの名前変更または再配置、あるいはテンポラル テーブルの部分コピーを行なうこともできます。

テンポラル テーブルのコピー時には、ターゲットにコピーする必要のあるソースの行を選択するためにnon-sequencedクエリーが使用されます。例:
<NONSEQUENCED VALIDTIME> <AND> <NONSEQUENCED TRANSACTIONTIME> SELECT * FROM Source_Table; 
non-sequencedクエリーでは、テンポラル列に対して特別な意味は適用されません。テンポラル列は他の通常の列として処理されます。したがって、開いているか閉じているかにかかわらず、現在、過去、および将来の行がすべてターゲットにコピーされます。

テンポラル テーブルのプライマリ キー制約は、システム定義の結合インデックスによって維持されます。このシステム定義の結合インデックスは、テーブルの作成時にTeradata Databaseによって自動的に生成されます。テンポラル テーブルをコピーする場合、システム定義の結合インデックスを個別にコピーする必要はありません。DSAは、システム定義の結合インデックス設定をコピーします。他のコピー方法では、テーブルがすでに存在する場合、システム定義の結合インデックスがターゲットにすでに存在します。テーブルがジョブの一部として作成される場合は、自動的に生成されます。

テンポラル テーブルをコピーするときに、次のシナリオではエラーが発生します。
  • allowTPtLoadForMultiset属性がtrueに設定されていない場合のTPT API LOADオペレータを使用したコピー。
  • テンポラル テーブルとそのシステム定義の結合インデックスを別の項目としてコピー(テンポラル テーブルのみのコピーではない)。