データベース テーブル、またはSQL SELECT文の結果テーブルに基づいてスキーマを生成するために、Teradata PTはまず該当するデータベースにログオンし、生成するスキーマの列記述を取得する必要があります。テンプレート オペレータ参照自体の属性リストにログオン属性割り当てが存在する場合は、それらの値がデータベースへのログオンに使用されます。存在しない場合、Teradata PTは特別な2セットのジョブ変数のうちの1セットを問合わせます。いずれかのジョブ変数セットに値が割り当てられている場合、そのジョブ変数セットによって、目的のデータベースへのTeradata PTのログオンが制御されます。
プロデューサ ログオン変数 | ||
---|---|---|
<プロデューサ オペレータ名>TdpId | または設定されていない場合 | SourceTdpId |
<プロデューサ オペレータ名>UserName | または設定されていない場合 | SourceUserName |
<プロデューサ オペレータ名>UserPassword | または設定されていない場合 | SourceUserPassword |
<プロデューサ オペレータ名>AccountId | または設定されていない場合 | SourceAccountId |
<プロデューサ オペレータ名>WorkingDatabase | または設定されていない場合 | SourceWorkingDatabase |
コンシューマ ログオン変数 | ||
---|---|---|
<Consumerオペレータ名>TdpId | または設定されていない場合 | TargetTdpId |
<Consumerオペレータ名>UserName | または設定されていない場合 | TargetUserName |
<Consumerオペレータ名>UserPassword | または設定されていない場合 | TargetUserPassword |
<Consumerオペレータ名>AccountId | または設定されていない場合 | TargetAccountId |
<Consumerオペレータ名>WorkingDatabase | または設定されていない場合 | TargetWorkingDatabase |
Teradata PTはプロデューサ テンプレートのスキーマ生成を試みる際に、データベースのログオン パラメータを提供するために上記のログオン ジョブ変数セットのうちのどれが問合わされるかを判断する手段として、次に示す3つの条件をチェックします。
- ジョブ変数SelectStmtに値が指定されているか、またはテンプレート参照にSelectStmt属性割り当てが含まれる場合、これらのソースの一方から取得される値(SQL SELECT文)が生成されるスキーマの基準となり、ログオン ジョブ変数のProducerセットが問合わされてデータベースのログオン パラメータが取得されます。
- ジョブ変数SourceTableに値が指定されている場合、その値(データベース テーブル名)が生成されるスキーマの基準となり、ログオン ジョブ変数のProducerセットが問合わされてデータベースのログオン パラメータが取得されます。
- ジョブ変数TargetTableに値が指定されている、またはプロデューサ テンプレートのジョブ ステップ内のConsumerオペレータがTargetTable属性割り当てを介してターゲット テーブルを1つだけ集合的に指定する場合、そのデータベース テーブルが生成されるスキーマの基準となり、ログオン ジョブ変数のConsumerセットが問合わされてデータベースのログオン パラメータが取得されます。
問合わせたログオン ジョブ変数セットによってログオン パラメータが生成され、Teradata PTが要求したデータベースからスキーマ列記述を取得した場合でも、Teradata PTは区切り記号付きファイル形式と列がマップされた通常の形式のどちらを生成するかを決定する必要があります。 Teradata PTは、この情報を提供する特別なジョブ変数をもう1つサポートしています。
SourceFormat
DEFINE SCHEMA文を生成する前に、Teradata PTは特別なジョブ変数SourceFormatを問合わせます。 値Delimitedを持つ場合、生成されるスキーマは区切り記号付き形式になります。この値でない場合は、スキーマ列定義がデータベース テーブルの列記述に厳密に一致する、通常の形式になります。