12 Teradata
この章には次の項が含まれます:
12.1 概要
Oracle Data Integrator (ODI)では、Teradataデータベースのデータがシームレスに統合されます。Oracle Data Integratorの機能(リバース・エンジニアリング、データ整合性チェックおよびマッピングなど)は、Teradataを使用した場合に最良の動作が得られるように設計されています。
12.1.1 概念
Teradataデータベースの概念は、Oracle Data Integratorの概念に次のようにマップされます。1つのTeradataサーバーはOracle Data Integratorの1つのデータ・サーバーに対応します。このサーバー内で、1つのデータベースはOracle Data Integratorの1つの物理スキーマにマップされます。
Oracle Data Integratorでは、Java Database Connectivity (JDBC)およびTeradataユーティリティを使用して、Teradataデータベースに接続します。
12.1.2 ナレッジ・モジュール
Oracle Data Integratorには、Teradataデータを処理するためのナレッジ・モジュール(KM)が用意されています。これらのリストを表12-1に示します。これらのKMでは、Teradata固有の機能が使用されます。Teradataデータベースでは、汎用SQL KMを使用することもできます。詳細は、汎用SQLを参照してください。
表12-1 Teradata KM
ナレッジ・モジュール | 説明 |
---|---|
CKM Teradata |
Teradata表で定義された制約と照合して、データの整合性をチェックします。無効なレコードを拒否して、動的に作成されるエラー表に格納します。フロー制御および静的制御に使用できます。 |
IKM File to Teradata (TTU) |
このIKMは、Teradataユーティリティの能力を利用してファイルを直接ターゲットにロードするように設計されています。詳細は、「Teradataユーティリティのサポート」を参照してください。 |
IKM SQL to Teradata (TTU) |
Teradataユーティリティ(FastLoad、MultiLoad、TPumpまたはParallel Transporter)を使用して、SQL準拠のデータベースからTeradataデータベースのターゲット表へ、データを統合します。詳細は、「Teradataユーティリティのサポート」を参照してください。 |
IKM Teradata Control Append |
置換/追加モードでTeradataのターゲット表にデータを統合します。 |
IKM Teradata Incremental Update |
増分更新モードでTeradataのターゲット表にデータを統合します。 |
IKM Teradata Slowly Changing Dimension |
データ・ウェアハウスでタイプ2の緩やかに変化するディメンションとして使用されるTeradataのターゲット表に、データを統合します。 |
IKM Teradata to File (TTU) |
置換モードでTeradataのステージング領域からターゲット・ファイルにデータを統合します。詳細は、「Teradataユーティリティのサポート」を参照してください。 |
IKM Teradata Multi Statement |
1つのSQLトランザクションで管理される複数文リクエストを使用して、Teradataデータベース・ターゲット表にデータを統合します。詳細は、「複数文リクエストの使用」を参照してください。 |
IKM SQL to Teradata Control Append |
ANSI-92準拠ソース・データベースからTeradataターゲット表へ、切捨て/挿入(追加)モードでデータを統合します。 通常、このIKMはETL構成に使用されます。この構成では、ソース表とターゲット表は異なるデータベースにあり、マッピングのステージング領域は、ソース表の論理スキーマまたは第3のスキーマに設定されます。 |
LKM File to Teradata (TTU) |
Teradataのバルク・ユーティリティを使用して、ファイルからTeradataステージング領域データベースへデータをロードします。詳細は、「Teradataユーティリティのサポート」を参照してください。 |
LKM SQL to Teradata (TTU) |
Teradataのネイティブ・バルク・ユーティリティを使用して、SQL準拠のソース・データベースからTeradataステージング領域データベースへデータをロードします。詳細は、「Teradataユーティリティのサポート」を参照してください。 |
RKM Teradata |
DBCシステム・ビューを使用して、Teradataデータベースからメタデータを取得します。RKMでは、UNICODEの列がサポートされます。 |
12.2 インストールおよび構成
Teradataナレッジ・モジュールの使用を開始する前に、この項の情報を必ず読んでください。
12.2.1 システム要件および動作要件
インストールを実行する前に、システム要件および動作要件のドキュメントを読んで、使用する環境がインストールする製品の最低インストール要件を満たすことを確認する必要があります。
サポートされているプラットフォームおよびバージョンのリストには、次のOracle Technical Network (OTN)からアクセスできます。
http://www.oracle.com/technetwork/middleware/data-integrator/documentation/index.html。
12.2.2 テクノロジ固有の要件
Teradataの一部のナレッジ・モジュールでは、次のTeradataツールおよびユーティリティ(TTU)が使用されます。
-
FastLoad
-
MultiLoad
-
Tpump
-
FastExport
-
Teradata Parallel Transporter
これらのナレッジ・モジュールには、次の要件および制限が適用されます。
-
Teradataユーティリティを、Oracle Data Integratorエージェントを実行するマシンにインストールする必要があります。
-
トポロジで定義されるTeradataサーバーのサーバー名は、このサーバーに使用されるTeradata接続文字列(
COP_n
postfixを除く)と一致する必要があります。 -
エージェントは、ターゲットのTeradataホストとは別のプラットフォームにインストールすることをお薦めします。エージェントがインストールされるマシンには、ターゲットTeradataサーバーへの非常に高いネットワーク・バンド幅が必要です。
-
IKM File to Teradata (TTU)およびLKM File to Teradata (TTU)では、TTUで統合されるファイルのエンコーディングを指定するためのファイル文字セットのエンコーディング・オプションがサポートされています。このオプションを設定しない場合は、デフォルトのTTU文字セットが使用されます。文字セットのエンコーディングの詳細は、Teradataのガイド『Getting Started: International Character Sets and the Teradata Database』を参照してください。
サポートされるデータ型の詳細は、Teradataのドキュメントを参照してください。
12.3 トポロジの設定
トポロジの設定には次が含まれます。
12.3.1 Teradataデータ・サーバーの作成
1つのTeradataデータ・サーバーは、特定のTeradataユーザー・アカウントに接続された1つのTeradataデータベースに対応します。このユーザーは、データ・サーバーの下に作成されたOracle Data Integratorの物理スキーマに対応する、このTeradataシステムの複数のデータベースにアクセスできます。
12.3.1.1 データ・サーバーの作成
『Oracle Data Integratorの管理』のデータ・サーバーの作成に関する項に記載されている標準の手順で、Teradataテクノロジ用データ・サーバーを作成します。この項では、Teradataデータ・サーバーの定義に関する必須または固有のフィールドのみについて説明します。
12.3.2 Teradata物理スキーマの作成
『Oracle Data Integratorの管理』の物理スキーマの作成に関する項の説明に従って、標準の手順を使用してTeradata物理スキーマを作成します。
『Oracle Data Integratorの管理』の論理スキーマの作成に関する項の説明に従って、標準の手順を使用してこの物理スキーマ用の論理スキーマを作成し、特定のコンテキストで関連付けます。
12.4 統合プロジェクトの設定
Teradataデータベースを使用してプロジェクトを設定するには、標準の手順に従います。『Oracle Data Integratorでの統合プロジェクトの開発』の統合プロジェクトの作成に関する項を参照してください。
Teradataでの作業を開始するにあたり、使用するプロジェクトに次のナレッジ・モジュールをインポートすることをお薦めします。
-
CKM Teradata
-
IKM File to Teradata (TTU)
-
IKM SQL to Teradata (TTU)
-
IKM Teradata Control Append
-
IKM Teradata Incremental Update
-
IKM Teradata Multi Statement
-
IKM Teradata Slowly Changing Dimension
-
IKM Teradata to File (TTU)
-
IKM SQL to Teradata Control Append
-
LKM File to Teradata (TTU)
-
LKM SQL to Teradata (TTU)
-
RKM Teradata
12.5 Teradataモデルの作成およびリバース・エンジニアリング
この項には次のトピックが含まれます:
12.5.1 Teradataモデルの作成
『Oracle Data Integratorでの統合プロジェクトの開発』のモデルの作成に関する項の説明に従って、標準の手順を使用してTeradataモデルを作成します。
12.5.2 Teradataモデルのリバース・エンジニアリング
Teradataでは、JDBCドライバの機能のみを使用する標準のリバース・エンジニアリング、およびDBCシステム・ビューを使用してTeradataデータベースからメタデータを取得するためのRKMを使用する、カスタマイズされたリバース・エンジニアリングの両方がサポートされています。
通常は、標準のJDBCリバース・エンジニアリングを使用して作業を開始することを検討してください。Teradataで標準のリバース・エンジニアリングを使用すると、表および列が取得されます。
カスタマイズされたリバース・エンジニアリングは、できるかぎり、それ以外のメタデータを取得する場合に使用してください。Teradataのカスタマイズされたリバース・エンジニアリングでは、表、ビュー、列、キー(1次索引および2次索引)および外部キーが取得されます。記述情報(列タイトルおよび簡単な説明)もリバースエンジニアリングされます。
標準のリバース・エンジニアリング
Teradataで標準のリバース・エンジニアリングを実行するには、『Oracle Data Integratorでの統合プロジェクトの開発』のモデルのリバース・エンジニアリングに関する項の説明に従って、通常の手順を使用します。
カスタマイズされたリバース・エンジニアリング
RKMを使用してTeradataでカスタマイズされたリバース・エンジニアリングを実行するには、『Oracle Data Integratorでの統合プロジェクトの開発』のモデルのリバース・エンジニアリングに関する項の説明に従って、通常の手順を使用します。
- Teradataモデルの「リバース・エンジニアリング」タブで
KM: RKM Teradata.<project name>
を選択します。 - データベース内の既存のFK制約をリバース・エンジニアリングする場合は、REVERSE_FKSオプションを
true
に設定します。 - 表制約をリバース・エンジニアリングする場合は、REVERSE_TABLE_CONSTRAINTSを
true
に設定します。 - UnicodeデータベースのVARCHARおよびCHARをそれぞれCHAR()CHARACTER SET UNICODEまたはVARCHAR()CHARACTER SET UNICODEとしてリバース・エンジニアリングする場合は、表作成でCHARACTER SET UNICODE句を使用するかどうかに関係なく、REVERSE_COLUMN_CHARACTER_SETを
true
に設定します。
リバース・エンジニアリングによって、表、ビュー、列、キー(1次索引および2次索引)および外部キーが戻されます。記述情報(列タイトルおよび簡単な説明)もリバース・エンジニアリングされます。
一意索引は次のようにリバースされることに注意してください。
-
一意の1次索引は主キーとみなされます。
-
1次索引は一意でない索引とみなされます。
-
2次の一意の1次索引は、代替キーとみなされます。
-
2次の一意でない1次索引は、一意でない索引とみなされます。
標準のJDBCインタフェースでサポートされていない特定のTeradataメタデータ(1次索引など)を取得するには、このRKMを使用できます。
12.6 データ品質の設定
Oracle Data Integratorには、Teradata表で定義された制約と照合してデータの整合性をチェックするためのTeradata CKMが用意されています。詳細は、『Oracle Data Integratorでの統合プロジェクトの開発』のフロー制御および静的制御に関する項を参照してください。
Oracle Data Integratorには、Teradataのチェックを実行するためのナレッジ・モジュールが用意されています。これらのリストを表12-2に示します。
表12-2 Teradataデータベース用チェック・ナレッジ・モジュール
推奨KM | ノート |
---|---|
CKM Teradata |
Teradata表で定義された制約と照合して、データの整合性をチェックします。無効なレコードを拒否して、動的に作成されるエラー表に格納します。フロー制御および静的制御に使用できます。 このKMでは、次のTeradataの最適化がサポートされます。
|
12.7 マッピングの設計
マッピングのソース、ステージング領域またはターゲットとしてTeradataを使用できます。Teradataテクノロジに基づくETL形式のマッピングを作成することもできます。
マッピングまたはチェック用に選択したKMによって、このマッピングまたはチェックの機能およびパフォーマンスが決まります。この項に示す推奨事項は、Teradataデータ・サーバーに関連する様々な状況でのKMの選択に役立ちます。
12.7.1 Teradataとの間でのデータのロード
マッピングのソース、ターゲットまたはステージング領域としてTeradataを使用できます。「ロード・ナレッジ・モジュール」タブでの、Teradataと別のタイプのデータ・サーバー間でデータをロードするためのLKMの選択は、マッピングのパフォーマンスに関してきわめて重要です。
12.7.1.1 Teradataからのデータのロード
汎用SQL KMまたは関係するもう一方のテクノロジ固有のKMを使用して、Teradataデータベースからターゲットまたはステージング領域のデータベースへデータをロードします。
Teradataのステージング領域からファイルへデータを抽出する場合は、IKM File to Teradata (TTU)を使用します。詳細は、「Teradataでのデータの統合」を参照してください。
12.7.1.2 Teradataへのデータのロード
Oracle Data Integratorには、ソースまたはステージング領域からTeradataデータベースへデータをロードするための最適化された方法を実装するナレッジ・モジュールが用意されています。これらの最適化されたTeradata KMを表12-3にリストします。これらのKM以外に、汎用SQL KMまたは関係するもう一方のテクノロジ固有のKMも使用できます。
表12-3 TeradataにデータをロードするためのKM
ソースまたはステージング領域のテクノロジ | KM | ノート |
---|---|---|
ファイル |
LKM File to Teradata (TTU) |
Teradataのバルク・ユーティリティを使用して、ファイルからTeradataステージング領域データベースへデータをロードします。 この方法では、固有のTeradataユーティリティを使用してステージング領域にファイルをロードするため、大量のデータを処理する場合は、標準のLKM File to SQLより効率的です。 ソースが大きいフラット・ファイルで、ステージング領域がTeradataデータベースの場合は、このLKMの使用を検討してください。 このKMでは、次のTeradataの最適化がサポートされます。
|
SQL |
LKM SQL to Teradata (TTU) |
Teradataのネイティブ・バルク・ユーティリティを使用して、SQL準拠のソース・データベースからTeradataステージング領域データベースへデータをロードします。 このLKMでは、ソース・データがファイルまたは名前付きパイプにアンロードされ、指定されたTeradataユーティリティがコールされてこのファイルまたはパイプからステージング表に移入されます。名前付きパイプを使用すると、データをファイルに書き込む必要がありません。このLKMは、非常に大量の場合にお薦めします。 次のような場合は、このIKMの使用を検討してください:
このKMでは、次のTeradataの最適化がサポートされます。
|
12.7.2 Teradataでのデータの統合
Oracle Data Integratorには、Teradata用に最適化されたデータ統合戦略を実装するナレッジ・モジュールが用意されています。これらの最適化されたTeradata KMを表12-4にリストします。これらのKM以外に、汎用SQL KMも使用できます。
「統合ナレッジ・モジュール」タブのIKMの選択によって、統合のパフォーマンスおよび可能性が決まります。
表12-4 Teradataにデータを統合するためのKM
KM | ノート |
---|---|
IKM Teradata Control Append |
置換/追加モードでTeradataのターゲット表にデータを統合します。CKMを使用してフロー・データをチェックする必要がある場合は、CKMを起動する前に一時的なステージング表が作成されます。 置換モードで(データ整合性チェックを行って、もしくは行わずに)Teradataのターゲット表をロードする場合は、このIKMの使用を検討してください。 このIKMを使用するには、ステージング領域がターゲットのTeradata表と同じデータ・サーバー上にあることが必要です。 このKMでは、次のTeradataの最適化がサポートされます。
|
IKM Teradata Incremental Update |
増分更新モードでTeradataのターゲット表にデータを統合します。このIKMにより、データ・フローをステージングするための一時ステージング表が作成されます。その後、その内容をターゲット表と比較して、挿入するレコードおよびそれ以外の更新するレコードを推測します。また、CKMを起動してデータ整合性チェックを実行することもできます。 挿入および更新は、最大のパフォーマンスを得るためにバルク・セットベースの処理で実行されます。そのため、このIKMは大量のデータ用に最適化されています。 Teradataのターゲット表をロードして、欠落しているレコードを挿入し、既存のレコードを更新する場合は、このIKMの使用を検討してください。 このIKMを使用するには、ステージング領域がターゲットと同じデータ・サーバー上にあることが必要です。 このKMでは、次のTeradataの最適化がサポートされます。
|
IKM Teradata Multi Statement |
1つのSQLトランザクションで管理される複数文リクエストを使用して、Teradataデータベース・ターゲット表にデータを統合します。 |
IKM Teradata Slowly Changing Dimension |
データ・ウェアハウスでタイプ2の緩やかに変化するディメンションとして使用されるTeradataのターゲット表に、データを統合します。このIKMは、ターゲット・データストアで設定される緩やかに変化するディメンション・メタデータに依存して、新しいバージョンとして挿入する必要があるレコード、または既存のバージョンとして更新する必要があるレコードを判別します。 挿入および更新はバルク・セットベースの処理で実行されるため、このIKMは大量のデータ用に最適化されています。 Teradataのターゲット表をタイプ2の緩やかに変化するディメンションとしてロードする場合は、このIKMの使用を検討してください。 このIKMを使用するには、ステージング領域がターゲットと同じデータ・サーバー上にあり、適切な緩やかに変化するディメンション・メタデータがターゲット・データストア上で設定されていることが必要です。 このKMでは、次のTeradataの最適化がサポートされます。
このKMには、COMPATIBLEオプションも含まれます。このオプションは、Teradataエンジンのメジャー・バージョン番号に対応します。このバージョンが12以上の場合、標準のINSERT文とUPDATE文ではなくMERGE文を使用して入力データ・フローがターゲット表にマージされます。 |
IKM Teradata to File (TTU) |
置換モードでTeradataのステージング領域からターゲット・ファイルにデータを統合します。このIKMの場合、ステージング領域がTeradata上に存在する必要があります。Teradataのネイティブのユーティリティを使用して、ターゲット・ファイルにデータをエクスポートします。 データを変換してTeradataサーバーからターゲット・ファイルへエクスポートする場合は、このIKMの使用を検討してください。 このIKMを使用するには、ステージング領域がターゲットと異なる必要があります。Teradataの場所に設定する必要があります。 このKMでは、次のTeradataの最適化がサポートされます。
|
IKM File to Teradata (TTU) |
このIKMは、Teradataユーティリティの能力を利用してファイルを直接ターゲットにロードするように設計されています。ソースとして1つのファイル、およびターゲットとして1つのTeradata表に制限されます。 選択するユーティリティによって、置換モードまたは増分更新モードでデータを統合できます。 1つのフラット・ファイルをターゲット表にロードする場合は、このIKMの使用を検討してください。このIKMではTeradataユーティリティが使用されるため、大量のデータの処理に適しています。 このIKMを使用するには、ステージング領域をソース・ファイルのスキーマに設定する必要があります。 このKMでは、次のTeradataの最適化がサポートされます。
|
IKM SQL to Teradata (TTU) |
Teradataユーティリティ(TPUMP、FASTLOADまたはMULTILOAD)を使用して、SQL準拠のデータベースからTeradataデータベースのターゲット表へ、データを統合します。 このIKMは、Teradataユーティリティの能力を利用してソース・データを直接ターゲットにロードするように設計されています。すべてのソース表が同じデータ・サーバーに属し、かつ、このデータ・サーバーがステージング領域(ソース上のステージング領域)として使用される場合にのみ、使用できます。ソース・データはファイルまたは名前付きパイプにアンロードされ、その後、選択されたTeradataユーティリティによってターゲット表に直接ロードされます。名前付きパイプを使用すると、データをファイルに書き込む必要がありません。このIKMは、大量のデータの処理に適しています。 選択するユーティリティによって、置換モードまたは増分更新モードでデータを統合できます。 次のような場合は、このIKMの使用を検討してください:
このIKMを使用するには、ステージング領域をソース・データ・サーバーのスキーマに設定する必要があります。 このKMでは、次のTeradataの最適化がサポートされます。
|
IKM SQL to Teradata Control Append |
ANSI-92準拠ソース・データベースからTeradataターゲット表へ、切捨て/挿入(追加)モードでデータを統合します。 通常、このIKMはETL構成に使用されます。この構成では、ソース表とターゲット表は異なるデータベースにあり、マッピングのステージング領域は、ソース表の論理スキーマまたは第3のスキーマに設定されます。詳細は、「ETL形式マッピングの設計」を参照してください。 |
緩やかに変化するディメンションの使用
緩やかに変化するディメンションを使用する場合は、ターゲット・データベースの各列に対して「緩やかに変化するディメンション」の値を必ず設定してください。この値は、「サロゲート・キー」、「自然キー」、列の上書きまたは挿入、「現在のレコード・フラグ」、「開始タイムスタンプ」および「終了タイムスタンプ」列を識別するために、IKM Teradata Slowly Changing Dimensionで使用されます。
複数文リクエストの使用
通常、複数文リクエストでは、単純なマッピングのパラレル実行が可能になります。Teradataのパフォーマンスは、スキャンの同期化、および一時ジャーナルの回避によって向上します。
次のようにKMのオプションを設定します。
-
このKMを使用するマッピングは、パッケージ内で使用する必要があります。
-
複数文を介して表をロードするパッケージの最初のマッピングでは、INIT_MULTI_STATEMENTオプションを
YES
に設定します。 -
複数文を介して表をロードする後続のマッピングでは、このKMを使用して、INIT_MULTI_STATEMENTオプションを
NO
に設定する必要があります。 -
最後のマッピングでは、生成された複数文を実行するために、EXECUTEオプションを
YES
に設定する必要があります。
-
-
STATEMENT_TYPEオプションで、各マッピングの文のタイプ(挿入または更新)を指定します。
-
SQL_OPTIONオプションでは、問合せの最後に追加される追加のSQL文(たとえばQUALIFY句)を指定します。
複数文に関する次の制限に注意してください。
-
複数文がサポートされるのは、パッケージ内で使用する場合のみです。
-
一時索引はサポートされません。
-
行数に関して、更新は挿入とみなされます。
-
更新には単一のデータセットのみを含めることができます。
-
実行マッピング(EXECUTE = YES)のみで行数がレポートされます。
-
ジャーナル化されたソース・データはサポートされません。
-
フロー制御および静的制御は、いずれもサポートされません。
-
SQL_OPTIONオプションは最後のデータセットのみに適用されます。
12.7.3 ETL形式マッピングの設計
マッピングの設計方法に関する一般的な情報は、『Oracle Data Integratorでの統合プロジェクトの開発』のマッピングの作成に関する項を参照してください。この項では、ステージング領域がTeradataデータベースまたは任意のANSI-92準拠データベースにあり、ターゲットがTeradataにあるETL形式マッピングの設計方法について説明します。
ETL形式マッピングでは、ターゲットとは異なるステージング領域内のデータが、ODIによって処理されます。Oracle Data Integratorでは、TeradataまたはANSI-92準拠のステージング領域からTeradataターゲットへデータをロードするための2つの方法が提供されます。
使用するKM戦略によって、フロー制御および静的制御がサポートされます。
複数接続IKMの使用
複数接続IKMでは、ステージング領域とソースが異なるデータ・サーバー上にある場合のターゲットへのデータ統合が可能です。
Oracle Data Integratorには、Teradataデータを処理するための複数接続IKMであるIKM SQL to Teradata Control Appendが用意されています。また、汎用SQL複数接続IKMも使用できます。詳細は、汎用SQLを参照してください。
複数接続IKMを使用する状況の詳細は、表12-5を参照してください。
ETL形式マッピングで複数接続IKMを使用するには:
-
『Oracle Data Integratorでの統合プロジェクトの開発』のマッピングの作成に関する項の説明に従って、標準の手順を使用して、ステージング領域がANSI-92準拠であり、ターゲットがTeradata上にあるマッピングを作成します。この項では、ETL形式固有のステップのみを説明します。
-
ソース表の論理スキーマまたは第3のスキーマに対するマッピングのステージング領域を変更します。ステージング領域の変更方法の詳細は、『Oracle Data Integratorでの統合プロジェクトの開発』の実行場所の構成に関する項を参照してください。
-
物理ダイアグラムでアクセス・ポイントを選択します。このオブジェクトのプロパティ・インスペクタが開きます。
-
「ロード・ナレッジ・モジュール」タブで、ソースからステージング領域にロードするLKMを選択します。使用できるLKMは表12-5を参照してください。
-
必要な場合は、KMオプションを変更します。
-
物理ダイアグラムでターゲットのタイトルをクリックしてターゲットを選択します。このオブジェクトのプロパティ・インスペクタが開きます。
-
「統合ナレッジ・モジュール」タブで、ステージング領域からターゲットにデータをロードするETL複数接続IKMを選択します。使用できるIKMは表12-5を参照してください。
IKM SQL to Teradata Control AppendのKMオプションを設定する際には、次の点に注意してください。
-
ターゲット・システム上に表を作成しない場合は、
FLOW_CONTROL=false
を設定します。FLOW_CONTROL=false
の場合、データは直接ターゲット表に挿入されます。 -
FLOW_CONTROL=true
の場合、ターゲット表またはステージング領域にフロー表が作成されます。 -
以前の制御から拒否されたデータをリサイクルする場合は、
RECYCLE_ERROR=true
を設定し、使用するマッピングに対して更新キーを設定します。
LKMおよび単一接続IKMの使用
専用の複数接続IKMがない場合は、標準のエクスポートLKMと標準の単一接続IKMを組み合せて使用します。エクスポートLKMは、ステージング領域からターゲットへフロー表をロードするために使用します。単一接続IKMは、データ・フローをターゲット表に統合するために使用します。
Oracle Data Integratorでは、ETL形式マッピングのソースおよびステージング領域として、任意のANSI SQL-92標準準拠テクノロジがサポートされています。ターゲットはTeradataです。
標準のLKMおよび単一接続IKMを組み合せて使用する状況の詳細は、表12-5を参照してください。
ETL形式マッピングでLKMおよび単一接続IKMを使用するには:
表12-5 Teradataデータを使用するETL形式マッピングのKMガイドライン
ソース | ステージング領域 | ターゲット | エクスポートLKM | IKM | KM戦略 | コメント |
---|---|---|---|---|---|---|
ANSI SQL-92標準準拠 |
ANSI SQL-92標準準拠 |
Teradata |
なし |
IKM SQL to Teradata Control Append |
複数接続IKM |
制御追加を実行する場合に推奨します。 フロー制御をサポートします。 |
ANSI SQL-92標準準拠 |
Teradataまたは任意のANSI SQL-92標準準拠データベース |
Teradataまたは任意のANSI SQL-92標準準拠データベース |
なし |
IKM SQL to SQL Incremental Update |
複数接続IKM |
ターゲット側一時オブジェクトでの増分更新戦略が可能です。ターゲット・サーバーで一時オブジェクトを作成できない場合に、このKMを使用します。 アプリケーションの更新は、ソースからターゲットへ直接行われ、ターゲット上に一時オブジェクトは作成されません。フロー表がターゲットではなくステージング領域に作成される構成は、データ量が少ない場合のみ使用してください。 フロー制御および静的制御をサポートします。 |
ANSI SQL-92標準準拠 |
TeradataまたはANSI SQL-92標準準拠 |
Teradata |
LKM SQL to Teradata (TTU) |
IKM Teradata Incremental Update |
LKM + 標準IKM |
|
ANSI SQL-92標準準拠 |
Teradata |
Teradata |
LKM SQL to Teradata (TTU) |
IKM Teradata Slowly Changing Dimension |
LKM + 標準IKM |
|
ANSI SQL-92標準準拠 |
ANSI SQL-92標準準拠 |
Teradata |
LKM SQL to Teradata (TTU) |
IKM SQL to Teradata (TTU) |
LKM + 標準IKM |
フロー制御を行わず、データが大量にある場合は、この戦略をお薦めします。 |
12.8 Teradata用のKMの最適化
この項では、Oracle Data Integratorナレッジ・モジュールに含まれるTeradata専用の最適化について説明します。
この項には次のトピックが含まれます:
12.8.1 1次索引および統計
Teradataのパフォーマンスは、1次索引に大きく依存します。Teradata KMでは、一時表およびターゲット表用にカスタマイズされた1次索引(PI)がサポートされています。これは、Teradata LKM、IKMおよびCKMに当てはまります。一時表およびターゲット表の1次索引は、これらのKMでPRIMARY_INDEX KMオプションを使用して定義できます。次の値が使用されます。
-
[PK]
: PIは一時表またはターゲット表の主キーです。これはデフォルト値です。 -
[NOPI]
: 1次索引は指定されません(Teradata 13.0以上のみ)。 -
[UK]
: PIがマッピングの更新キーになります。これはデフォルト値です。-
<Column list>: これは、カンマ区切りの列名のリストに基づく任意のPIです。
-
<Empty string>: 1次索引が指定されていません。TeradataエンジンでPIのデフォルト・ルール(一時表の最初の列)が使用されます。
-
選択したPI列について、Teradata MultiColumnStatisticsがオプションで収集されます。これは、デフォルトでtrueに設定されているCOLLECT_STATS KMオプションによって制御されます。
12.8.2 Teradataユーティリティのサポート
Teradataユーティリティ(TTU)では、Teradataエンジンから、あるいはTeradataエンジンへデータを転送する効率的な方法が提供されます。TTUをサポートするLKMまたはIKMを使用する場合、TERADATA_UTILITYオプションを使用してデータをロードするための方法を設定できます。
Teradataターゲット(IKM)またはステージング領域(LKM)へデータをプッシュする場合、このオプションは次の値をとります。
-
FASTLOAD
: Teradata FastLoadを使用します。 -
MLOAD
: Teradata MultiLoadを使用します。 -
TPUMP
: Teradata TPumpを使用します。 -
TPT-LOAD
: Teradata Parallel Transporter(ロード・オペレータ)を使用します。 -
TPT-SQL-INSERT
: Teradata Parallel Transporter (SQL挿入オペレータ)を使用します。
Teradataからファイルへデータをプッシュする場合、このオプションは次の値をとります。
-
FEXP
: Teradata FastExportを使用します。 -
TPT
: Teradata Parallel Transporterを使用します。
TTU KMを使用する場合、KMパラメータも考慮する必要があります。
-
REPORT_NB_ROWS: このオプションを使用すると、ユーティリティで処理された行数がマッピングの「警告」ステップでレポートされます。
-
SESSIONS: FastLoadセッションの数。
-
MAX_ALLOWED_ERRORS: 許容エラーの最大数。これは、FastLoad/MultiLoad/TPumpのERRLIMITコマンドおよびTPTのErrorLimit属性に相当します。
-
MULTILOAD_TPUMP_TYPE: MultiLoadまたはTPumpユーティリティで行われる処理。有効な値は
INSERT
、UPSERT
およびDELETE
です。UPSERT
およびDELETE
の場合、マッピングで更新キーが必要です。
ユーティリティとロード・オペレータの詳細と適切な選択については、Teradataのドキュメントを参照してください。
12.8.3 名前付きパイプのサポート
TTU KMを使用してSQLソースとTeradataとの間でデータを移動する場合、アンロード/ロード・プロセスでファイルのかわりに名前付きパイプを使用することでパフォーマンスが向上します。名前付きパイプは、NP_USE_NAMED_PIPEオプションをYES
に設定するとアクティブにできます。名前付きパイプを使用する場合、次のオプションも考慮する必要があります。
-
NP_EXEC_ON_WINDOWS: ランタイム・エージェントがWindowsプラットフォームで稼働する場合、このオプションを
YES
に設定します。 -
NP_ACCESS_MODULE: 名前付きパイプで使用されるアクセス・モジュール。このアクセス・モジュールはプラットフォームに依存します。
-
NP_TTU_STARTUP_TIME: TTUでパイプを使用してデータを受信できる秒数。これは、KMでTTUを起動した時点とKMで名前付きパイプへのデータのプッシュを始めた時点との遅延です。この遅延は、マシンの負荷によって異なります。
12.8.4 最適化された一時表管理
Data Integratorの一時的なステージング表の作成および削除によって、Teradataエンジンのリソースが消費される場合があります。ODI_DDL KMオプションによって、これらのDDL操作を制御する方法が提供されます。値は次のいずれかとなります。
-
DROP_CREATE: 実行のたびに常にすべての一時表を削除して再作成します(デフォルトの動作)。
-
CREATE_DELETE_ALL: 必要な場合(通常最初の実行時のみ)一時表を作成し、DELETE ALLを使用して一時表の内容を削除します。一時表は後続の実行で再利用されます。
-
DELETE_ALL: 一時表を作成しません。すべての一時表についてDELETE ALLを発行するのみです。
-
NONE: 一時表に対してDDLを発行しません。一時表は別途処理される必要があります。