Streamエラーの修正 - 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

以下に、簡単なStreamオペレータ タスク、エラー テーブルのリスト、およびエラー原因を特定するための手順を示します。 このタスク例では、2つのDML文(INSERT文とUPDATE文)から成るDMLグループを1つだけ使用して、Streamオペレータ ジョブを説明します。

下記の例の手順では、エラー テーブルのエラー情報すべてを使用します。 通常は、エラー テーブルの1つまたは2つの列を評価すれば、エラーの原因が分かります。 この例では、次のAPPLY文を使用してエラー テーブルを作成します。

APPLY
'INSERT INTO table1 VALUES (:FIELD1,:FIELD2 );
UPDATE table2 SET field3 = :FIELD3 WHERE field4 = :FIELD4;'

タスク例

以下のタスク例では、「シーケンス タイプ」と「番号」の各列に各ステートメントのタイプおよび番号を示します。 「ステートメント」列には、実際のStreamオペレータ ジョブステートメントを示します。

タスク例
シーケンス ステートメント
タイプ 番号
DML 001
'INSERT INTO table1 VALUES (:FIELD1,:FIELD2 );
UPDATE table2 SET field3 = :FIELD3 WHERE field4 = :FIELD4;'
STMT 001
INSERT INTO table1 VALUES (:FIELD1, :FIELD2 );
STMT 002
UPDATE table2 SET field3 = :FIELD3 WHERE field4 = :FIELD4;

以下のテーブルは、上記のタスクによって生成された第1エラー テーブルのエラーです。

DataSeq DMLSeq SMTSeq SourceSeq ErrorCode ErrorField
002 001 002 20456 2679 000

以下の手順を使用して、エラー情報を評価し、問題を識別します。

  1. DMLSeqフィールドをチェックし、DMLグループを特定します。 このフィールドは、順序番号が001になっています。
  2. STMTSeqフィールドをチェックします。 シーケンス番号は002です。つまり、2番目のDML文を実行したときにエラーが発生したことが分かります。具体的には、タスクのUPDATE文でエラーが発生しています。
  3. Streamオペレータ ジョブ スクリプトが最初のDMLグループ(DMLSeqが001のため)で2つのDML文を使用していることを確認します。
  4. DataSeqフィールドをチェックします。 フィールド値002により、2番目の入力データ ソースで行を処理したときにエラーが発生したことが分かります。 (入力データ ソース シーケンスは、Teradata PTによって決まります。)
  5. ErrorCodeフィールドの意味を確認します。 エラー2679"The format or data contains a bad character(形式またはデータに無効な文字が含まれています)"は、クライアント システムのデータに問題があることを示しています。
  6. スクリプトを調べると、UPDATE文はtable2をロードしており、次のことが分かります。
    • 発生したエラーの種類
    • エラーを検出したステートメント
    • エラーを発生した入力データ ソース
  7. SourceSeqフィールドをチェックします。 フィールド値20456は、入力データ ソースの20,456番目のレコードに問題があることを示しています。
  8. 問題を修正します。