17.10 - エラー テーブルの機能 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1184-171K-JPN
Language
日本語 (日本)

データウェアハウスの環境では基本データベースを頻繁に更新することが必要で、全体的なデータロード戦略には、その日一日に実行される、スケジュールされた増分ロードまたは小さいバッチを含める必要があります。

INSERT ... SELECTバッチおよびMERGEバッチを使用したLOGGING ERRORSオプションは、大量のデータおよび複数のターゲット テーブルまたはDML操作で実行される複雑なロードを処理するFastLoadおよびMultiLoadバッチ ロード ユーティリティ、および継続的なロード ユーティリティであるTeradata Parallel Data Pumpの補完に使用します。

INSERT...SELECTリクエストとMERGEリクエストのどちらか一方かまたは両方を継続的に使用して、増分バッチ ロードを利用することで、さまざまなデータ ロード戦略を組み合わせて使用しながら、必要に応じた頻度でデータウェアハウスを更新できます。 さらに、このようなバッチリクエストは、アクティブ データウェアハウスのテーブルへのバルク データ ロードを複雑な操作にすることもあるLOB列(ただし、そのエラー ロギングは、LOBデータをサポートしないことに注意してください。 ソース テーブルのLOBは、エラー テーブルにコピーされず、エラー テーブルではnullとして表わされます)、固有セカンダリ インデックス、参照整合性制約、結合インデックス、ハッシュ インデックス、およびトリガーで定義されたテーブルにデータをロードできないという制約は受けません(<Teradata® FastLoadリファレンス、B035-2411>および<Teradata® MultiLoadリファレンス、B035-2409>に、従う必要のあるdatabaseデータ テーブル制限事項の全一覧を示しています)。

Teradata Parallel Data Pumpはバッチ ロードを実行しますが、INSERT ... SELECTバッチ オプションおよびMERGEバッチ オプションとTeradata Parallel Data Pumpオプションは、まったく異なる状況で役に立ちます。例えば、ログオンしたセッションがほぼ満杯の場合は、通常Teradata Parallel Data PumpオプションよりINSERT ... SELECTまたはMERGEバッチ オプションの方が適しています。反対に、更新の際に特定の順番が重要である場合は、一般的にTeradata Parallel Data Pumpのほうが適しています。

エラー テーブルの目的は、次の種類のバッチ ロードの複雑なエラー処理のための素地を提供することです。
  • INSERT ... SELECT操作中に発生する挿入のエラー
  • MERGE操作中に発生する挿入および更新のエラー

挿入または更新エラーがインデックスまたはデータ変換で発生した場合、エラー発生文を含むトランザクションまたはリクエストはロールバックしませんが、完了するまで実行され、エラーの原因となった行がエラー テーブルに記録されます。

セカンダリ インデックスまたは参照整合性エラーの原因となっているデータ エラーは、エラー発生文を含むトランザクションまたはリクエストのロールバックをしたます。その後、これらの行をデータベースに再度ロードする前に、セカンダリ インデックスまたは参照整合性違反の原因となったエラーを修復する必要があります。

エラー テーブルは、複雑なエラー処理をサポートするためのMERGEバッチ ロード操作およびINSERT ... SELECTバッチ ロード操作への拡張機能を含む、バッチ システムの1つの構成要素です(<Teradata Vantage™ - SQLデータ操作言語、B035-1146>を参照)。これらのDML文拡張機能では、INSERT ... SELECT操作およびMERGE操作に対するエラー ロギングを指定できます。エラー ロギングを指定すると、エラー テーブルにエラー状態が記録され、エラーの原因となっているデータ行のコピーがキャプチャされます。