Required and Optional Attributes|SQL Selector Operator - 必須属性および任意属性 - Parallel Transporter

Teradata® Parallel Transporterリファレンス - 17.20

Product
Parallel Transporter
Release Number
17.20
Published
2022年10月10日
Language
日本語
Last Update
2022-11-21
dita:mapPath
ja-JP/rwr1645128188440.ditamap
dita:ditavalPath
ja-JP/obe1474387269547.ditaval
dita:id
B035-2436
Product Category
Teradata Tools and Utilities

SQL Selectorオペレータの必須の属性値を宣言するためには、Teradata PTのDEFINE OPERATOR文で属性定義リスト構文を使用します。







構文規則:

構文要素 説明
AccountId = 'acctId' 特定のユーザー名に関連するアカウントを指定する任意の属性。

この属性を省略すると、デフォルトでデータベースの直接所有者のアカウントIDが設定されます。

AddBOMToFile = 'option' XML、JSON、またはCLOBの出力データ ファイルの先頭に、UTFバイト オーダー マーク(BOM)を追加するかどうかを指定する任意選択の属性。

有効な値は次のとおりです。

  • ’Y’または'Yes' = Selectorオペレータは、XML、JSON、またはCLOBの出力データ ファイルの先頭に、該当するUTF BOMを追加します。
  • ’N’または'No' = Selectorオペレータは、XML(JSONまたはCLOB)の出力データ ファイルの先頭に、該当するUTFバイト オーダー マーク(BOM)を追加しません(デフォルト)。

AddBOMToFileは、次の2つの条件が満たされている場合にのみ使用できます。

  1. ジョブ スキーマに、AS DEFERRED BY NAMEで定義されているXML、JSON、またはCLOBの列が1列以上ある。
  2. ロード ジョブのクライアント文字セットが、Unicode文字セットである。

この2つの条件が満たされていないと、この属性で指定した値は無視されます。

このオペレータは、遅延モードでBLOB列から抽出されたデータ ファイルにはBOMを追加しません。

デフォルトの動作では、XML、JSON、またはCLOBの列からデータを抽出するときにBOMが先頭に付加されないため、遅延モードで、Selectorオペレータを使用してXML、JSON、またはCLOBのデータを抽出する場合や、Inserterオペレータを使用して該当するデータをロードする場合は、RemoveBOMFromFile属性に'No'を設定する必要があります。RemoveBOMFromFile属性の詳細については、SQL Inserterオペレータを参照してください。

クライアントUTF-16文字セットの使用時にバイト オーダー マーク(BOM)をXMLエンコーディングに合わせるため、Teradataでは、選択したXML列にXMLSERIALIZEを指定することを推奨します。
ARRAY 複数の属性値を指定する任意のキーワード。
ConnectString = 'connectionString' 接続文字列を指定する任意選択の属性。この接続文字列はCLIに渡され、CLIが接続文字列を検証します。

接続文字列の詳細については、<Teradata® Call-Level Interface Version 2リファレンス - ワークステーション接続システム, B035-2418>を参照してください。

TPTの接続文字列機能は、z/OSを除くすべてのプラットフォームで利用できます。
DataEncryption = 'option' SQLリクエスト、応答、およびデータを暗号化して完全なセキュリティを可能にする任意選択の属性。
有効な値は次のとおりです。
  • ’On’ = すべてのSQLリクエスト、応答、およびデータが暗号化されます。
  • ’Off’ = 暗号化されません(デフォルト)。
DateForm = 'option' SQL Selectorオペレータ ジョブのDATEデータ型を指定する任意の属性。値は以下のとおりです。
  • 'integerDate' = 整数のDATEデータ型(デフォルト)
  • 'ansiDate' = ANSI固定長のCHAR(10) DATEデータ型
INTEGER 定義する属性のデータ型としてINTEGERを指定するキーワード。
IsolationLevel = 'option' セッション中のすべてのクエリーに対する分離レベルを決定するロック アクセス値を指定する任意選択の属性。
有効な値は次のいずれかです。
  • RU = 非コミット読み取り
  • SR = (デフォルト)逐次化

データベースが分離レベルの変更に成功すると、次のメッセージがプライベート ログに書き込まれます。

Session Isolation Level: RU
LobDirectoryPath = 'pathName' すべてのLOB、JSON、およびXMLのデータ ファイルが書き込まれる既存のディレクトリの完全なパス名を指定する任意の属性。
LobFileBaseName = 'fileName' LOB、JSON、およびXMLのデータ ファイル名の先頭に付加される文字列を定義する任意選択の属性。

SQL Selectorオペレータで作成されるファイル名の形式は以下のとおりです。

<column-name>_c<#>_<job-id>_p<#>_r<#>
説明
  • "c"の後の#は、列番号。
  • "p"の後の#は、SQL Selectorコピーの識別情報。
  • "r"の後の#は、データベースから返される行の順序。
列名は、Windowsファイル名に対して無効と見なされる文字をアンダースコア'_'に置き換えるためにサニタイズされます。置き換えられる9文字は次のとおりです。 \ / : * ? " < > |

一貫性を保つために、UNIXプラットフォームでも置き換えが行なわれます。生成されたファイル名の一意性を確保するために、'_c<#>'が追加されています。

例えば、以下のスキーマがあるとします。

DEFINE SCHEMA <schema-name>
  (
    COL2 BLOB AS DEFERRED BY NAME,
    COL3 CLOB AS DEFERRED BY NAME,
    COL4 XML AS DEFERRED BY NAME,
    COL5 JSON(1000000) AS DEFERRED BY NAME,
  );

LobFileBaseNameの値が"my_test"の場合、

ファイル名は、
  • my_test_COL2_c1_<job-id>_p1_r1
  • my_test_COL3_c2_<job-id>_p1_r1
  • my_text_COL4_c3_<job-id>_pl_r1
  • my_text_COL5_c4_<job-id>_pl_r1
  • my_test COL2_c1_<job-id>_p1_r2
  • my_test_COL3_c2_<job-id>_p1_r2
  • my_test_COL4_c3_<job-id>_pl_r2
  • my_test_COL5_c4_<job-id>_pl_r2
  • my_test_COL2_c1_<job-id>_p1_r3
  • my_test_COL3_c2_<job-id>_p1_r3
  • my_test_COL4_c3_<job-id>_pl_r3
  • my_test_COL5_c4_<job-id>_pl_r3
などになります。
LobFileExtension = 'fileExtension' LOB、JSON、およびXMLのデータ ファイル名の拡張子を指定する任意選択の属性。
'fileExtension'の例を以下に示します。
  • ’jpg’:ファイルの’ccc.jpg’が画像ファイルであることを示します。
  • ’gif’:ファイルの’ddd.gif’が画像ファイルであることを示します。
  • ’html’:ファイルの’aaa.html’がhtmlファイルであることを示します。
  • * 'json':ファイルがJSONファイルであることを示します。
LogonMech = ' string ' 使用するログオン メカニズムを指定する任意の属性。

認証方式によってはこの属性の指定が必須になる場合があります。

属性が8バイトを超えると、ジョブが終了されます。

LogonMechの指定要件については、<Teradata® Parallel Transporterユーザー ガイド, B035-2445>の「ログオン セキュリティ」を参照してください。

LogonMechData = ' data' 追加のログオン メカニズム データを転送する任意の属性。
一部の外部認証方式では、この属性を指定することが必須です。LogonMechDataの指定要件については、<Teradata® Parallel Transporterユーザー ガイド, B035-2445>の「ログオン セキュリティ」を参照してください。
LogSQL = 'option' 対象ジョブのSQLの中でログに記録する数を制御する任意選択の属性。
有効な値は次のいずれかです。
  • 'Yes' = すべてのSQLをログに出力します。 最大長は1Mです。
  • 'No' = SQLをログに出力しません。
  • 値または属性が省略されていない = SQLのすべてが32 K未満の場合、最大32 KのSQLを表示する定義済みの制限を受け入れます。ログに記録されるSQLが32 Kを超える場合は、最初の32 Kバイトに表示を切り捨てます。
MaxDecimalDigits = maxDecimalDigits エクスポートできるDECIMALデータ型の最大桁数を指定する任意の属性。

デフォルト値は38です。

属性値q38 ≥ q ≥ 1の場合、返されたDECIMAL (n[,m])データ項目のうちn>qのものはDECIMALに暗黙的にCASTされます。オーバーフローは明示的CASTと同様に処理されます。

メインフレーム接続のプラットフォームでは、MaxDecimalDigits属性を31以下にして、ネイティブ命令セットの容量を超える表現を回避することが推奨されます。

OutLimit = maxRecords オペレータの各インスタンスで処理される最大レコード数を指定する任意の属性。

INTEGER OutLimit = 1000

指定する場合、OutLimit値は1以上である必要があります。

OutLimitを指定しない場合、処理レコード数に制限はありません。

PrivateLogName = 'logName' Teradata PT Loggerによってパブリック ログ内部に保持されるログの名前を指定する任意の属性。 プライベート ログには、オペレータによる出力がすべて記録されます。

プライベート ログは、次のようにtlogviewコマンドを使用して表示できます。ここで、jobIdはTeradata PTジョブ名、privateLogNameはオペレータのPrivateLogName属性の値です。

tlogview -j jobid -f privatelogname

プライベート ログを指定しない場合、出力はすべてパブリック ログに格納されます。

tlogviewコマンドの詳細については、Teradata PTユーティリティのコマンドを参照してください。

QueryBandSessInfo = 'queryBandExpression' ジョブ セッションの期間のクエリー バンドを指定する任意選択の属性。

queryBandExpressionは、セミコロンで区切られ、セミコロンで終了する、名前=値ペアのセットです。 ユーザーは、下記の例のようなクエリー バンド式を定義します。

‘org=Finance;load=daily;location=west;’

QueryBandSessInfoは、ARRAY属性として指定することもできます。

クエリー バンド式の作成規則については、Teradata Vantage™ - SQLデータ定義言語-構文規則および例, B035-1144およびTeradata Vantage™ - SQLデータ定義言語 - 詳細トピック, B035-1184を参照してください。

QueryBandSessInfo属性の値は、SQL Selectorオペレータのプライベート ログに表示されます。

QueryBandSessInfo属性の使用には、以下のルールが適用されます。
  • デフォルトでは、QueryBandSessInfo属性に有効な値が指定されるまで、クエリー バンドはオフになります。
  • QueryBandSessInfo属性に値が含まれている場合、SQL Selectorオペレータは、必要なSET QUERY BAND SQLを構成して、データベースにリクエストを伝達します。
  • SQL Selectorオペレータはクエリー バンド式をチェックせず、データベースに式をそのまま渡します。
  • ジョブを実行するデータベースのバージョンでクエリー バンド機能がサポートされていない場合、クエリー バンドは実行されません。 ただし、オペレータはエラーを無視してジョブの残りの部分を実行します。
  • クエリー バンド式に構文エラーがあると、データベースはエラーを返します。 すると、SQL Selectorオペレータはジョブを終了し、ユーザーにエラーを報告します。
ReportModeOn = 'option' フィールド レポート モードを使用するかどうかを指定する任意選択の属性。

この機能を使用すると、データベースからデータを文字形式で抽出した後、DataConnectorオペレータを使用してそのデータを「区切り」(VARTEXT)形式に変換してテキスト ファイルに保存できます。 文字形式(フィールド レポート モード)でデータをエクスポートする場合は、スキーマで定義された列がVARCHARである必要があります。

値は次のいずれかです。
  • 'Yes' ('Y') = レポート モード(文字形式でデータを返します)
  • 'No' ('N') = 標識モード(デフォルト)
RoleName = 'role name'

データベース環境にセキュリティを実装する任意の属性。オペレータの先頭には、"SET ROLE"の値が付加されます。構文は、次のようにデータベースに送信されます。

SET ROLE <role name>;

例:

SET ROLE All;

"SET ROLE"コマンドの使用の詳細については、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例, B035-1144>を参照してください。

VARCHAR ARRAYを使用すると、複数の値を指定できます。以下に例を示します。

VARCHAR ARRAY RoleName = ['role name1', 'role name2'],

SQLセッションが接続されると、オペレータはそのセッションでデータベースにリクエストを送信します。

  • オペレータはこの属性の値を検証せずに、そのままデータベースに渡し、データベースが値を検証します。検証が失敗すると、オペレータはそのジョブをエラーで終了します。
  • 値ではC形式のコメントが使用可能であり、そのコメントはデータベースに渡されます。
  • 値ではANSI形式のコメントはサポートされていません。値にANSI形式のコメントが含まれている場合、オペレータは構文エラーでジョブを終了することがあります。
  • セミコロンは値に使用できません。これは、オペレータがリクエストごとに1つのステートメントのみを許可するためです。値にセミコロンが含まれている場合に、オペレータはオペレータ エラーでジョブを終了します。
SelectStmt = 'SELECT statements;' Teradata SQL SELECT文または結果表の形式で行データを返すステートメントを指定する必須の属性。

SQL Selectorオペレータは、単一または複数のSELECT文を実行依頼できます。指定されたSELECT文は、データベースに送信される単一のリクエストとして処理されます。リクエスト全体を1MBより大きくすることはできません(Vantageの制約)。

TdpId = 'dbcName' SQL SELECT文のデータベース マシン(非メインフレーム プラットフォーム)またはTDP(メインフレーム プラットフォーム)の名前を指定する任意の属性。

dbcNameは、最大256文字まで指定でき、ドメイン サーバー名を1つ指定できます。

TdpId属性に対して値を指定しない場合、オペレータは、システム管理者がユーザー用に設定したデフォルトのTdpIdを使用します。

TimeZoneSessInfo = 'timeZoneValue' オペレータのジョブ セッションの期間にデフォルトのタイムゾーンの変位を変更できるようにする任意選択の属性。

この属性の値を指定すると、オペレータはSET TIME ZONE <timeZoneValue>; SQLリクエストを作成します。

SQLセッションが接続されると、オペレータはそのセッションでデータベースにリクエストを送信します。

以下に例を示します。
  • 例1: 次の例では、セッションのデフォルトのタイムゾーン変位をシステム デフォルトのタイムゾーンであるLOCALに設定します。

    VARCHAR TimeZoneSessInfo = 'LOCAL'

  • 例2: 次の例では、セッションのデフォルトのタイムゾーン変位を、ログオンしているユーザーのデフォルトのタイムゾーンであるUSERに設定します。

    VARCHAR TimeZoneSessInfo = 'USER'

  • 例3: 次の例では、セッションのデフォルトのタイムゾーン変位を単純な定数タイムゾーン文字列式に設定します。

    VARCHAR TimeZoneSessInfo = '''America Pacific'''

    値内のどの単一引用符文字(')も、TPTジョブ スクリプトで2つの連続した単一引用符文字として入力する必要があります。これにより、正しい値がデータベースに送信されます。
  • オペレータはこの属性の値を検証せずに、そのままデータベースに渡し、データベースが値を検証します。検証が失敗すると、オペレータはそのジョブをエラーで終了します。
  • 値ではC形式のコメントが使用可能であり、そのコメントはデータベースに渡されます。
  • 値ではANSI形式のコメントはサポートされていません。値にANSI形式のコメントが含まれている場合、オペレータは構文エラーでジョブを終了します。
  • セミコロンは値に使用できません。これは、オペレータが"SET TIME ZONE SQL"リクエスト内で1つのステートメントのみを許可するためです。値にセミコロンが含まれている場合に、オペレータはオペレータ エラーでジョブを終了します。

SET TIME ZONE SQLについて詳しくは、Teradata Vantage™ - SQLデータ定義言語-構文規則および例, B035-1144を参照してください。

TraceLevel = 'level' オペレータの各インスタンスによってパブリック ログ(PrivateLogName属性で指定されている場合はプライベート ログ)に書き込まれる診断メッセージの種類を指定する任意の属性。 診断トレース機能は、ログ ファイルで詳細な情報を提供するため、問題の追跡や診断に役立ちます。
トレース レベルは次のいずれかです。
  • 'None' = トレース機能を無効にします(デフォルト)。
  • 'CLI' = CLIに関連するアクティビティ(データベースとの対話)についてのトレース機能を有効にします。
  • 'PX' = Teradata PTインフラストラクチャに関連するアクティビティについてのトレース機能を有効にします。
  • 'Oper' = オペレータ固有のアクティビティについてのトレース機能を有効にします。
  • 'All’ = 上記すべてのアクティビティについてのトレースを有効にします

VARCHAR ARRAYを使用すると、複数の値を指定できます。以下に例を示します。

VARCHAR TraceLevel = 'CLI'
VARCHAR TraceLevel = 'OPER'
VARCHAR ARRAY TraceLevel = [ 'CLI' ]
VARCHAR ARRAY TraceLevel = [ 'CLI', 'OPER' ]
TraceLevel属性は、診断を支援するためにのみ指定します。 この属性によって得られる追加情報の量とタイプは、ニーズの変化に合わせてリリースごとに変わります。
TransformGroup = 'transformgroupname' Teradata複合データ型(CDT)のアクティブな変換の変更をサポートする任意選択の属性。この値は<udt name> <transform group name>であり、オペレータが、ハードコードされた文字列"SET TRANSFORM GROUP FOR TYPE "を先頭に付加します。RDBMSに送信される構文は次のとおりです。
SET TRANSFORM GROUP FOR TYPE <udt name> <transform group name>;
例えば、次のように指定します。
"SET TRANSFORM GROUP FOR TYPE JSON CHARACTER SET LATIN TD_JSON_VARCHAR;"
VARCHAR ARRAYを使用すると、複数の値を指定できます。以下に例を示します。
VARCHAR ARRAY TransformGroup = ['JSON CHARACTER SET LATIN TD_JSON_VARCHAR', 'ST_GEOMETRY TD_GEO_VARCHAR'],

SQLセッションが接続されると、オペレータはそのセッションでデータベースにリクエストを送信します。

  • オペレータはこの属性の値を検証せずに、そのままデータベースに渡し、データベースが値を検証します。検証が失敗すると、オペレータはそのジョブをエラーで終了します。
  • 値ではC形式のコメントが使用可能であり、そのコメントはデータベースに渡されます。
  • 値ではANSI形式のコメントはサポートされていません。値にANSI形式のコメントが含まれている場合、オペレータは構文エラーでジョブを終了することがあります。
  • セミコロンは値に使用できません。これは、オペレータがリクエストごとに1つのステートメントのみを許可するためです。値にセミコロンが含まれている場合に、オペレータはオペレータ エラーでジョブを終了します。
TreatDBSRestartAsFatal= ‘option データベースの再起動時にジョブを終了するかどうかをオペレータに指示する任意選択の属性。
TreatDBSRestartAsFatalの値は次のいずれかです。
  • ’No’(’N’) = データベースの再起動が発生した場合、オペレータは終了しない(デフォルト)。データベースの再起動は、再試行可能な処理として扱われます。
  • ’Yes'(’Y’) = データベースの再起動が発生した場合、オペレータは終了する。
UnicodePassThrough = ' value ' Unicode Pass Through機能を有効または無効にするようにオペレータに指示する任意選択の属性。
有効な値は次のいずれかです。
  • ’On’ = オペレータ内のUnicode Pass Through機能を有効にする。
  • ’Off’ = (デフォルト)オペレータ内のUnicode Pass Through機能を無効にする。
TPTジョブがUTF8またはUTF16のセッション文字セットを使用している場合、UnicodePassThrough属性を'On'に設定して、オペレータがUnicodeパス スルー文字を使用してデータをエクスポートできるようにすることができます。
UserName = 'userId' ユーザー名を指定する属性。
一部の外部認証ログオン方式は、この属性の使用に対応していません。UserNameの指定要件の詳細については、<Teradata® Parallel Transporterユーザー ガイド, B035-2445>の「ログオン セキュリティ」を参照してください。
UserPassword = 'password' ユーザー名に関連するパスワードを指定する属性。
一部の外部認証ログオン方式は、この属性の使用に対応していません。UserPasswordの指定要件の詳細については、<Teradata® Parallel Transporterユーザー ガイド, B035-2445>の「ログオン セキュリティ」を参照してください。
VARCHAR 定義済み属性のデータ型としてVARCHARを指定するキーワード。
WorkingDatabase = 'databaseName' ログオン データベース以外のデータベースをデフォルト データベースとして指定する任意の属性。

この属性で指定されたデータベース名は、2つのSQLセッションを接続した直後にオペレータによって送られるSQL DATABASE文で使用されます。

WorkingDatabaseが指定されない場合、修飾されていないすべてのテーブル名において、ログオンしたユーザーに関連付けられたデフォルト データベースがWorkingDatabaseとみなされます。