17.10 - Streamエラーの修正 - Parallel Transporter

Teradata® Parallel Transporter ユーザー ガイド

Product
Parallel Transporter
Release Number
17.10
Release Date
2021年6月
Content Type
ユーザー ガイド
Publication ID
B035-2445-061K-JPN
Language
日本語 (日本)

以下に、簡単な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. 問題を修正します。