スキーマの定義 - 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/uah1527114222342.ditamap
dita:ditavalPath
ja-JP/uah1527114222342.ditaval
dita:id
B035-2445
Product Category
Teradata Tools and Utilities

Teradata PTでは、処理するデータの構造、つまりテーブルの行における列やファイル レコードにおけるフィールドをジョブ スクリプトで記述する必要があります。 この記述はスキーマと呼ばれます。 スキーマは、DEFINE SCHEMA文を使用して作成します。

DEFINE OPERATOR文のキーワードSCHEMAに続く値は、オペレータがジョブ データを処理するために使用するスキーマを識別します。 オペレータ定義で指定するスキーマは、あらかじめジョブ スクリプトで定義されている必要があります。 定義する必要があるスキーマの数を決定する場合、オペレータ定義(Standaloneオペレータを除く)でスキーマを参照する方法と理由については以下のような指針に従ってください。
  • Producerオペレータ定義で参照されるスキーマは、ソース データの構造を記述します。
  • Consumerオペレータ定義で参照されるスキーマは、ターゲットにロードするデータの構造を記述します。 ConsumerオペレータのスキーマはSCHEMA * (遅延スキーマ)としてコーディングできます。つまり、プロデューサから出力データのスキーマを受け取ります。
  • 複数のオペレータに同じスキーマを使用できる。
  • 1つのオペレータ内で複数のスキーマを使用することはできない。ただし、Filterオペレータの場合は、2つのスキーマ(入力と出力)を使用する。
  • Teradata PTスクリプトのスキーマ定義にある列名は、ターゲット テーブルの実際の列名と一致していなくても構いませんが、データ型は厳密に一致しなければなりません。
  • Teradata PTジョブでUTF-16の文字セットの文字データを処理する場合、すべてのCHAR(バイト カウント)、VARCHAR(バイト カウント)、CLOB(バイト カウント)、およびJSON(バイト カウント)スキーマ列に指定するバイト カウント値は、Teradata Databaseテーブルの中の対応する列定義の文字カウント値の2倍になります。バイト カウントは偶数でなければなりません。
  • Teradata PTジョブでUTF-8の文字セットの文字データを処理する場合、すべてのCHAR(バイト カウント)、VARCHAR(バイト カウント)、CLOB(バイト カウント)、およびJSON(バイト カウント)スキーマ列に指定するバイト カウント値は、Teradata Databaseテーブルの中の対応する列定義の文字カウント値の3倍になります。
  • Teradata PTは、UTF8とUTF16のエンコーディング タイプのバイト カウント値を自動調整できます。USING CHARACTER SET UTF8またはUTF16指定子がスクリプトの冒頭にある場合、文字列でDEFINE SCHEMAの直下にADJUST UNICODEキーワードを使用します。Teradata PTはバイト カウントの2倍および3倍を処理します。ADJUST UNICODEキーワードについては<Teradata Parallel Transporterリファレンス、B035-2436>、USING CHARACTER SETキーワードの詳細については、<Teradata Parallel Transporterリファレンス ガイド>を参照してください。

ジョブ スクリプト内でUTF16文字セットを使用している場合、SCHEMA定義内のVARCHAR(n)とCHAR(n)の値nは正の偶数でなければなりません。

以下はスキーマ定義の例です。

スキーマ定義の例