Oracleコネクタ > Oracleコネクタを使用したマッピングとマッピングタスク > SQL ELTの最適化
  

SQL ELTの最適化

Oraclerソースからデータの読み取りを行って、データを変換し、ターゲットにデータの書き込みを行う場合に、SQL ELTの最適化を設定して、トランスフォーメーションロジックをソースまたはターゲットデータベースシステムにプッシュすることができます。ソースとターゲットのデータベースが同じである場合は、完全なSQL ELTの最適化を設定するとパフォーマンスを向上させることができます。
SQL ELTの最適化の適用時に、Secure Agentはトランスフォーメーションロジックをデータベースにプッシュします。Secure AgentはトランスフォーメーションロジックをSQLクエリに変換し、そのSQLクエリをデータベースに送信します。データベースでは、そのSQLクエリを実行してトランスフォーメーションを処理します。
SQL ELTの最適化により、データベースでのトランスフォーメーションロジックの処理がSecure Agentよりも高速になるため、マッピングのパフォーマンスが向上します。また、Secure Agentでは、データベースから読み取るデータを削減します。
Secure Agentがデータベースにプッシュするトランスフォーメーションロジックの量は、データベース、トランスフォーメーションロジック、およびマッピングタスクによって決まります。Secure Agentでは、データベースにプッシュできないすべてのトランスフォーメーションロジックが処理されます。
SQL ELTの最適化をマッピングに設定すると、Secure Agentは、ソースからターゲットまで、またはソースデータベースにプッシュできないダウンストリームトランスフォーメーションに達するまで、最適化されたマッピングの分析を行います。Secure Agentでは、トランスフォーメーションロジックがプッシュダウンされたソースごとにSELECT文を生成して実行します。次に、データ統合サービスはこのSQLクエリの結果が読み込み、マッピングの残りのトランスフォーメーションを処理します。
注: データベースにトランスフォーメーションロジックをプッシュする場合は、クエリを高速処理するための十分なリソースをデータベースに確保してください。そうしないと、パフォーマンスが低下することがあります。
詳細モードのマッピングに対してSQL ELTの最適化を設定することはできません。
Secure Agentでは、次のトランスフォーメーションロジックをOracleソースまたはターゲットにプッシュすることができます。
トランスフォーメーション
サポートされているSQL ELTの最適化のタイプ
Aggregator
ソース、完全
Expression
ソース、完全
フィルタ
ソース、完全
Joiner
ソース、完全
Sorter
ソース、完全
Union
ソース、完全
Router
Full

完全なSQL ELTの最適化

完全なSQL ELTの最適化の適用時に、Secure Agentはマッピングのすべてのトランスフォーメーションロジックをターゲットデータベースにプッシュします。SQL ELTの最適化セクションで完全なSQL ELTの最適化を設定できます。
完全なSQL ELTの最適化は、ソースとターゲットが同じ接続にある場合に適しています。例えば、マッピングにOracleソースとOracleターゲットが含まれている場合は、完全なSQL ELTの最適化を設定して、処理するすべてのトランスフォーメーションロジックをOracleソースデータベースからOracleターゲットデータベースにプッシュします。

ソースSQL ELTの最適化

ソースSQL ELTの最適化の適用時に、Secure Agentは、ソースからターゲットまで、またはソースデータベースにプッシュできないダウンストリームトランスフォーメーションに達するまで、最適化されたマッピングの分析を行います。
Secure Agentでは、データベースにプッシュできるトランスフォーメーションごとのトランスフォーメーションロジックに基づいて、SELECT文が生成、実行されます。次に、Secure AgentではこのSQLクエリの結果が読み込まれ、残りのトランスフォーメーションが処理されます。
ソースとターゲットが異なるデータベースに存在している場合は、ソースSQL ELTの最適化を使用するようにマッピングを設定できます。例えば、マッピングにOracleソースとMicrosoft SQL Serverターゲットが含まれている場合は、ソースSQL ELTの最適化を設定して、処理する一部のトランスフォーメーションロジックをOracleソースにプッシュすることができます。

SQL ELTの最適化の関数

SQL ELTの最適化を使用した場合、Secure Agentは同等の関数を特定することでトランスフォーメーションの式を変換し、その式をデータベース内のプロセスにプッシュダウンします。データベースに対応する関数が存在しない場合、Secure Agentはトランスフォーメーションロジックを処理します。
次の表に、Oracleで使用できるSQL ELTの最適化の関数とそのサマリを示します。
関数
SQL ELTの最適化のタイプ
ABS()
ソース、完全
AVG()
ソース、完全
COS()
ソース、完全
COUNT()
ソース、完全
DATE_COMPARE()
ソース、完全
DECODE()
ソース、完全
EXP()
ソース、完全
IIF()
ソース、完全
IN()
ソース、完全
ISNULL()
ソース、完全
LOWER()
ソース、完全
MAX()
ソース、完全
MIN()
ソース、完全
POWER()
ソース、完全
SIN()
ソース、完全
SQRT()
ソース、完全
SUM()
ソース、完全
TAN()
ソース、完全
UPPER()
ソース、完全

式トランスフォーメーションでサポートされている関数

式トランスフォーメーションを使用してSQL ELTの最適化を設定すると、Secure Agentは、設定された式トランスフォーメーションをOracleにプッシュしようとします。
次の表に、Oracleの式トランスフォーメーションで使用できるSQL ELTの最適化の関数とそのサマリを示します。
関数
SQL ELTの最適化のタイプ
ADD_TO_DATE()
完全
CEIL()
完全
CONCAT()
完全
COSH()
完全
DATE_COMPARE()
完全
FLOOR()
完全
GET_DATE_PART()
完全
INSTR()
完全
LENGTH()
完全
LOG()
完全
LTRIM()
完全
MOD()
完全
ROUND(NUMBER)
完全
RTRIM()
完全
SIGN()
完全
SINH()
完全
STDDEV()
完全
SUBSTR()
完全
SYSDATE()
完全
SYSTIMESTAMP()
完全
TANH()
完全
TO_BIGINT
完全
TO_CHAR(DATE)
完全
TO_CHAR(NUMBER)
完全
TO_DATE()
完全
TO_DECIMAL()
完全
TO_FLOAT()
完全
TO_INTEGER()
完全
TRUNC(NUMBER)
完全
VARIANCE()
完全

SQL ELTの最適化の設定

マッピングを最適化するには、マッピングをタスクに追加してから、マッピングタスクでSQL ELTの最適化を設定します。
    1マッピングタスクの[ランタイムオプション]ページで、[SQL ELTの最適化]セクションに移動します。
    2[SQL ELTの最適化]リストから、必要なSQL ELTの最適化のタイプを選択します。

クロススキーマSQL ELTの最適化

マッピングタスクでクロススキーマSQL ELTの最適化を使用し、同じデータベース内にある異なるスキーマに関連付けられたOracleオブジェクトに対してデータの読み取りと書き込みを行うことができます。
クロススキーマSQL ELTの最適化を使用するには、2つのOracle接続を作成し、それぞれの接続にスキーマを指定します。ソース接続のスキーマとターゲット接続のスキーマがそれぞれ異なり、両方のスキーマが同じデータベースに属している必要があります。マッピングタスクにSQL ELTの最適化を設定する場合は、詳細セッションプロパティでクロススキーマSQL ELTの最適化を有効にします。デフォルトでは、このチェックボックスはオンです。

クロススキーマSQL ELTの最適化の設定

OracleマッピングタスクにクロススキーマSQL ELTの最適化を設定するには、次の手順を実行します。
    1次の2つのOracle接続を作成し、それぞれに異なるスキーマを定義します。
    1. aOracle接続orc_1を作成し、接続プロパティでCQA_SCHEMA1スキーマを指定します。
    2. bOracle接続orc_2を作成し、接続プロパティでCQA_SCHEMA2スキーマを指定します。
    2Oracleマッピングm_Orc_pdo_acrossSchemaを作成します。以下のタスクを実行します。
    1. aCQA_SCHEMA1を使用してデータを読み取るには、ソーストランスフォーメーションを追加し、Oracleソースオブジェクトと接続orc1を含めます。
    2. bCQA_SCHEMA2を使用してデータを書き込むには、ターゲットトランスフォーメーションを追加し、Oracleターゲットオブジェクトと接続orc2を含めます。
    3Oracleマッピングタスクを作成し、次のタスクを実行します。
    1. a設定したOracleマッピングm_Orc_pdo_acrossSchemaを選択します。
    2. b[ランタイムオプション]タブの[SQL ELTの最適化]セクションで、SQL ELTの最適化の値を[完全]に設定します。
    3. c[詳細セッションプロパティ]セクションで、[クロススキーマSQL ELTの最適化の有効化]チェックボックスを選択します。
    4. dタスクを保存し、[終了]をクリックします。
    マッピングタスクを実行すると、Secure Agentは、CQA_SCHEMA1スキーマに関連付けられたOracleソースオブジェクトからデータを読み取り、CQA_SCHEMA2スキーマに関連付けられたOracleターゲットオブジェクトにデータを書き込みます。