SAP Data Services の説明
データへのアクセス
ジョブおよびデータフローの開発
バッチジョブのトラブルシューティング
関数、スクリプト、変数の使用
Platform トランスフォームを使用したデータのクエリ
Platform トランスフォームによるデータの分割と結合
エラーの処理と障害からのリカバリ
データ更新
SAP Data Services インテグレータトランスフォームを使用した高度な ETL シナリオの設計
パフォーマンスの最適化

Data Transfer トランスフォームを使用したデータフローの最適化

Objective

After completing this lesson, you will be able to data Transfer トランスフォームを使用してデータフローを最適化する

プッシュダウン操作

データベースデータを処理するときに、SAP Data Services はデータベースエンジンの能力を活用できます。これは、パフォーマンス上の理由から非常に重要な場合があります。適用されるメカニズムは SQL プッシュダウンと呼ばれます。変換の一部は、生成された SQL 文の形式でデータベースに "プッシュダウン" されます。多くの場合、データベースではより高速にデータを処理することができます。データベースレイヤ内の内部処理により、データベースサーバメモリと Data Services メモリ間での時間のかかるデータ転送が回避または大幅に削減されます (その逆も同様)。

Data Services は、データベースにプッシュダウンする操作を決定する際に、データベースとその環境を検証します。プッシュダウン操作には、以下の 2 つのタイプがあります。

  • フル: すべてのトランスフォーム操作をデータベースサーバにプッシュダウンし、データストリームをソースデータベースからターゲットデータベースに直接プッシュダウンします。
  • 部分: SELECT 文をソースデータベースサーバにプッシュダウンします。

完全なプッシュダウン操作

Data Services オプティマイザでは、常に完全なプッシュダウン操作が試行されます。完全プッシュダウン操作は、データベースとデータストリームにソースデータベースからターゲットデータベースに直接プッシュダウンすることができます。

たとえば、Data Services は SQL INSERT INTO...SELECT 文がターゲットデータベースに送信され、SELECT 文によってソースからデータが取得されます。

完全プッシュダウン条件

ソースおよびターゲットデータベースへの完全なプッシュダウン操作は、以下の条件が満たされている場合にのみ実行できます。

  • ソーステーブルとターゲットテーブル間のすべての操作をプッシュダウンできます。
  • ソースおよびターゲットテーブルは、同じデータストアからであるか、またはそれらのテーブル間で定義されたデータベースリンクを持つデータストア内にあります。

部分プッシュダウン操作

完全プッシュダウン操作が不可能な場合、Data Services は SELECT 文を使用した部分的なプッシュダウンをソースデータベースにプッシュダウンしようとします。

プッシュダウン可能な SELECT 文の操作

次の表に、データベースにプッシュできる SELECT 文内の操作を示します。

操作内容説明
集約GROUP BY 文とともに使用して、元のデータセットより小さいか、同じサイズのデータセットを生成します。
一意の行Data Services では、一意の行を使用する場合にのみ一意の行が出力されます。
フィルタ元のデータセット以下のデータセットを生成します。
結合元のテーブルのサイズ以下のデータセットを生成します。
発注順序付けはデータセットのサイズに影響しません。Data Services では、メモリに収まるデータセットを効率的に並べ替えることができます。Data Services では、中間結果をディスクに書き出すことによってページングが実行されないため、DBMS 自体を使用して大きなデータセットを並べ替えます。
射影データフローによって参照される列のみを返すため、より小さなデータセットを生成します。
機能基礎となるデータベースに同等の Data Services 関数のほとんどは、適切に変換されます。

プッシュダウンできない作業

Data Services では、次のようなトランスフォーム操作をデータベースにプッシュできません。

  • データベース通信先のない Data Services 関数を含む式。
  • トリガを含むロード操作。
  • Query トランスフォーム以外のトランスフォーム。
  • 異なるデータベースサーバ上にあるソース間のジョイン (データベースリンクの定義なし)。

注記

SAP Data Services でプッシュダウン関数として使用できる演算子、関数、およびトランスフォームの完全な一覧については、SAP ノート 2212730、SAP Data Services のプッシュダウン演算子、関数、およびトランスフォームを参照してください。

最適化された SQL 機能の表示

ジョブを実行する前に、データフローによって生成された SQL を表示できます。その後、設計を調整して、プッシュダウンされる SQL を最大化し、パフォーマンスを改善し、必要に応じてデータフローを改善することができます。

Data Services では、テーブルソースに対して生成された SQL のみが表示されます。Data Services では、テーブルソースではない SQL ソース (lookup 関数、Key Generation トランスフォーム、key_generation 関数、Table Comparison トランスフォーム、ターゲットテーブルなど) に対して生成された SQL は表示されません。

以下の図は、最適化された SQL ダイアログボックスを示しています。

Data Transfer トランスフォーム

Data Transfer トランスフォームを使用すると、データフローでリソースを消費する操作をデータベースサーバにプッシュダウンできます。

Data Transfer トランスフォームは、データをソースまたは別のトランスフォームの出力から転送オブジェクトに移動します。次に、転送オブジェクトからデータを読み込みます。

Data Transfer トランスフォームを使用して、データフロー内の任意の場所で発生するリソース集約型のデータベース操作をプッシュダウンします。

データ転送用途

  • 別のデータベースからファイルまたはテーブルを転送して、データフローで完全なプッシュダウン操作を取得します。
  • 結合、GROUP BY、並べ替えなどのリソースを消費する操作をプッシュダウンします。

以下の図は、操作をプッシュダウンできるインタフェースを示しています。

転送タイプ

以下の転送タイプのいずれかを選択して、データを一時的に保存します。

  • テーブル: 既存のデータストアのデータベーステーブル。

    テーブル名データベースタイプ、および配列フェッチサイズでテーブルオプションを指定します。

  • ファイル: フラットファイル。

    [ルートディレクトリ] および [ファイル名] で [ファイル] オプションを指定します。

  • 自動: オプティマイザにより、以下のいずれかから転送タイプが選択されます。
    • 自動データ転送を有効にするチェックボックスが選択されているデータストア。
    • サーバマネージャで指定したページング可能キャッシュディレクトリ。

データ入力および出力要件

データ入力要件

  • Data Transfer トランスフォームの入力データセットがテーブルまたはファイル転送タイプである場合、行に NORMAL オペレーションコードのフラグを付ける必要があります。
  • 入力データセットに階層データまたはネストされたデータを含めることはできません。

データ出力要件

出力データセットには、入力データセットと同じスキーマおよび操作コードがあります。

  • 出力行は並べ替えまたは GROUP BY 順序になります。
  • Data Services では、データフローが自動的に 2 次データフローに分割され、順次実行されます。2 次データフロー名では、次の形式が使用されます。 dataflowname_n

    変数 <n> は 2 次データフローの番号です。

試してみる

ここでは、データ転送トランスフォームの使用について説明します。