例1 – Teradataテンポラル構文 - Parallel Transporter

Teradata® Parallel Transporterリファレンス

Product
Parallel Transporter
Release Number
16.20
Published
2019年9月
Language
日本語
Last Update
2020-01-29
dita:mapPath
ja-JP/whl1527114222314.ditamap
dita:ditavalPath
ft:empty
dita:id
B035-2436
Product Category
Teradata Tools and Utilities

ここにJOBDURATIONという名前のVALIDTIME列を持つターゲット テンポラル テーブル定義のTeradataテンポラル例を示します。

CREATE MULTISET TABLE TARGET_EMP_TABLE(
		EMP_ID      INTEGER,
		EMP_NAME    CHAR(30),
		EMP_DEPT    INTEGER,
		JOBDURATION PERIOD(DATE) NOT NULL AS VALIDTIME)
PRIMARY INDEX(EMP_ID);

次に、サンプル ターゲットTeradataテンポラル テーブル定義のTeradata PTスキーマ定義の例を示します。

DEFINE SCHEMA EMPLOYEE_SCHEMA
DESCRIPTION 'SAMPLE EMPLOYEE SCHEMA'
(
		EMP_ID      INTEGER,
		EMP_NAME    CHAR(30),
		EMP_DEPT    INTEGER,
		JOBDURATION PERIOD(DATE) USINGEXTENSION('AS VALIDTIME')
);

サンプルのTeradata PTスキーマ定義では、JOBDURATION列にUSINGEXTENSIONオプションが指定されています。USINGEXTENSIONオプションには、'AS VALIDTIME'という値があります。

このジョブでは、テンポラル修飾子(SEQUENCED、NONSEQUENCED、またはCURRENT)を使用してDML文を指定する必要があります。次に、SEQUENCEDテンポラル修飾子を含むサンプルのDML文を示します。

SEQUENCED VALIDTIME INSERT INTO TARGET_EMP_TABLE (:EMP_ID, :EMP_NAME, :EMP_DEPT, :JOBDURATION);

UpdateオペレータによってUSING句が構築されて、Teradata Databaseに送信されます。次にサンプルのUSING句を示します。

USING EMP_ID(INTEGER), EMP_NAME(CHAR(30)), EMP_DEPT(INTEGER),
	JOBDURATION(PERIOD(DATE) AS VALIDTIME)
SEQUENCED VALIDTIME INSERT INTO TARGET_EMP_TABLE
	(:EMP_ID, 	:EMP_NAME, 	:EMP_DEPT, :JOBDURATION);

Teradata DatabaseでテンポラルNoPIステージング テーブルを作成するには、USINGEXTENSION値が必要です。データは取得フェーズ中にステージング テーブルに取り込まれます。取得フェーズが終了すると、アプリケーション フェーズ内でステージング テーブルからテンポラル ターゲット テーブルにデータがマージされます。アプリケーション フェーズが終了したらステージング テーブルを削除できます。