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

Teradata® Parallel Transporter リファレンス

Product
Parallel Transporter
Release Number
17.10
Published
2022年2月
Content Type
プログラミング リファレンス
Publication ID
B035-2436-061K-JPN
Language
日本語 (日本)
Last Update
2022-02-11

ここに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句が構築されて、データベースに送信されます。次にサンプルの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);

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