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

SAP Data Services インテグレータトランスフォームの説明

Objective

After completing this lesson, you will be able to data Services インテグレータトランスフォームの説明

Data Services Integrator トランスフォーム

Data Services Integrator トランスフォームは、Platform トランスフォームのコア機能以外のデータ統合プロジェクトを拡張するために使用されます。プロジェクトでは、繰返ノード、階層データ、または項目が多すぎるか少なすぎるデータソースを持つ XML データに遭遇します。Platform トランスフォームには十分な柔軟性がないため、Data Services Integrator 固有のトランスフォームを使用してサポートを受けることができます。

Data Services インテグレータトランスフォームは、データセットに対してキー操作を実行し、ソースからターゲットに渡される構造を操作します。

Table_ComparisonHistory_Preservingおよび Key_Generation のほかに、以下のトランスフォームがあります。

その他の Data Services インテグレータトランスフォーム

これらのトランスフォームは、ローカルオブジェクトライブラリのトランスフォームタブにある Data Integrator 分岐で使用できます。

トランスフォーム内容説明
Data Transfer1 つのデータフローの処理を 2 つのサブデータフローに分割できるようにすることで、リソースを消費する操作をデータベースサーバにプッシュダウンします。
Date Generation指定した開始日付と終了日付および増分に基づいて、日付値が入力された列が生成されます。
Effective Dateプライマリキーの有効開始日に基づいて、追加の有効終了列を生成します。
Hierarchy Flattening階層データを平坦化して関連テーブルにすることで、スタースキーマに参加できるようにします。階層の平坦化は、水平および垂直の両方が可能です。
Map CDC Operation入力データのソート、出力データのマッピング、および UPDATE 行の前後のバージョンの解決を行います。このトランスフォームは一般的に、Oracle またはメインフレームの変更データキャプチャをサポートするために使用されますが、入力要件が満たされている限りすべてのデータストリームをサポートします。
Pivot指定した列から行に値を回転します。
Reverse Pivot指定した行から列に値を回転します。
XML Pipeline大きな XML 入力を小さなバッチで処理します。

それらの一部の使用ケースについて説明します。

Date Generation トランスフォーム

図に示すように、Date_Generation トランスフォームを使用して、時間ディメンションターゲットのキー値を生成します。この生成されたシーケンスから、クエリの関数を使用して、時間ディメンションのその他のフィールド (day_of_week など) に入力します。

例: 1997 年の初めから 2000 年末までの日付を持つ時間ディメンションターゲットを作成するには、Date_Generation トランスフォーム、クエリ、およびターゲットをデータフローに配置します。Date_Generation トランスフォームの出力をクエリに接続し、クエリの出力をターゲットに接続します。

Date_Generation トランスフォームオプション

Date_Generation トランスフォーム内で、以下のオプションを指定します。

  • 開始日付: 1997.01.01 (変数も使用可能)
  • 終了日付: 2000.12.31 (変数も使用可能)
  • 増分: 日次 (変数も使用可能)

時間ディメンション値の計算

クエリ内で、新しいターゲット列を作成し、さまざまな時間ディメンション値のマッピングを定義することができます。使用できる関数の例をいくつか示します。

  • julian 関数 : 一意の日付 ID を作成します。

    これは、ユリウス暦の開始日から指定された日付までの日数です。

  • month 関数: 指定された日付から月番号 (1 ~ 12) を抽出します。
  • quarter 関数: 指定された日付から四半期番号 (1 ~ 4) を抽出します。
  • to_char 関数: 指定された日付の一部を文字列形式で抽出します。
  • day_in_week 関数: 指定された日付から週の日数 (1 ~ 7) を抽出します。
  • isweekend 関数: 指定された日付が週末かどうかを確認するためのブール値 (1 または 0) を出力します。

試してみる

ここでは、時間ディメンションの作成について説明します。

Effective Date トランスフォーム

図に示すように、Effective_Date トランスフォームでは、有効日を含むデータの有効終了値が計算されます。計算された有効終了日付と既存の有効日によって日付範囲が生成され、有効日付に基づくクエリによって意味のある結果が生成されるようになります。

Map CDC Operation トランスフォーム

リレーショナルまたはメインフレームの変更データキャプチャ (CDC) をサポートするために一般的に使用されますが、Map_CDC_Operation トランスフォームでは、入力要件を満たしている限り、すべてのデータストリームがサポートされます。リレーショナル CDC ソースには、Oracle および SQL Server が含まれます。このトランスフォームでは INPUT、UPDATE、および DELETE オペレーションコードが生成されるため、通常、このトランスフォームはデータフロー内のターゲットの前の最後のオブジェクトです。Data Services では、他のオブジェクトが使用されると警告が生成されます。

図に示すように、Map_CDC_Operation トランスフォームでは、入力要件 (シーケンス列および操作列の値) を使用して 3 つの関数を実行します。

  1. 順序付け列ボックスおよび (オプションで) 追加グループ化列ボックスの値に基づいて入力データを並べ替えます。
  2. 行操作列ボックスの値に基づいて出力データをマッピングします。ソーステーブルの行は、ターゲットに渡される前に INSERT、UPDATE、または DELETE 操作にマップされます。
  3. UPDATE 行の未入力、分離、または複数の更新後イメージを解決します。

次のレッスンでは、Pivot トランスフォームと Data_Transfer トランスフォームについて詳しく説明します。