Hi, I'm Ask INFA!
What would you like to know?
ASK INFAPreview
Please to access Ask INFA.

目次

Search

  1. はじめに
  2. トランスフォーメーション
  3. ソーストランスフォーメーション
  4. ターゲットトランスフォーメーション
  5. アクセスポリシートランスフォーメーション
  6. アグリゲータトランスフォーメーション
  7. B2Bトランスフォーメーション
  8. チャンキングトランスフォーメーション
  9. クレンジングトランスフォーメーション
  10. データマスキングトランスフォーメーション
  11. データサービストランスフォーメーション
  12. 重複排除トランスフォーメーション
  13. 式トランスフォーメーション
  14. フィルタトランスフォーメーション
  15. 階層ビルダートランスフォーメーション
  16. 階層パーサートランスフォーメーション
  17. 階層プロセッサトランスフォーメーション
  18. 入力トランスフォーメーション
  19. Javaトランスフォーメーション
  20. JavaトランスフォーメーションAPIリファレンス
  21. ジョイナトランスフォーメーション
  22. ラベラトランスフォーメーション
  23. ルックアップトランスフォーメーション
  24. 機械学習トランスフォーメーション
  25. マップレットトランスフォーメーション
  26. ノーマライザトランスフォーメーション
  27. 出力トランスフォーメーション
  28. 解析トランスフォーメーション
  29. Pythonトランスフォーメーション
  30. ランクトランスフォーメーション
  31. ルータトランスフォーメーション
  32. ルール仕様トランスフォーメーション
  33. シーケンストランスフォーメーション
  34. ソータートランスフォーメーション
  35. SQLトランスフォーメーション
  36. 構造パーサートランスフォーメーション
  37. トランザクション制御トランスフォーメーション
  38. 共有体トランスフォーメーション
  39. ベクトル埋め込みトランスフォーメーション
  40. Velocityトランスフォーメーション
  41. ベリファイヤトランスフォーメーション
  42. Webサービストランスフォーメーション

トランスフォーメーション

トランスフォーメーション

接続されていないSQLトランスフォーメーションの例

接続されていないSQLトランスフォーメーションの例

生活費の増加に伴って従業員の給与を更新しているとします。手元には従業員の名前とIDを含むCSVファイルがあります。それぞれの従業員の給与を増額し、その増額分を計算して、データを新しいCSVファイルに書き込む必要があります。
次のようなソースデータがあります。
EMP_ID, EMP_NAME 1001, John 1002, Alice 1003, Mary 1004, Mark 1005, Stephan
Oracleデータベースには、従業員の給与をファイルに追加するADD_SALARYというストアドプロシージャと、昇給を計算するSALARY_INCREASEという2番目のストアドプロシージャがあります。マッピングでは、接続されていない2つのSQLトランスフォーメーションを使用してストアドプロシージャを呼び出し、2つの式トランスフォーメーションを使用してSQLトランスフォーメーションを呼び出します。
次の図に、マッピングを示します。
メインのデータフローには、ソーストランスフォーメーション、2つの式トランスフォーメーション、およびターゲットトランスフォーメーションが含まれます。マッピングには、データフローに接続されていない2つのSQLトランスフォーメーションも含まれています。
次の方法でトランスフォーメーションを構成します。
ソーストランスフォーメーション
使用するソースデータをロードするように、ソーストランスフォーメーションを設定します。
SQL_Add_Salaryトランスフォーメーション
ADD_SALARYストアドプロシージャを呼び出すように最初のSQLトランスフォーメーションを設定します。
[SQL]
タブで、ADD_SALARYストアドプロシージャを含む接続を選択してから、ストアドプロシージャを選択します。
[接続されていないストアドプロシージャ]
を選択します。
このストアドプロシージャには、従業員IDの入力フィールドが1つあり、出力フィールドには現在の給与が返されます。
SQL_Increaseトランスフォーメーション
SALARY_INCREASEストアドプロシージャを呼び出すように2番目のSQLトランスフォーメーションを設定します。
[SQL]
タブで、SALARY_INCREASEストアドプロシージャを含む接続を選択してから、ストアドプロシージャを選択します。
[接続されていないストアドプロシージャ]
を選択します。
このストアドプロシージャには、従業員名の入力フィールドが1つあり、出力フィールドには新しい給与が返されます。
Expression_Add_Salaryトランスフォーメーション
SQL_Add_Salaryトランスフォーメーションを呼び出すように最初の式トランスフォーメーションを設定します。ストアドプロシージャの出力をキャプチャするために、入力パラメータの変数フィールドと出力フィールドを作成します。
[式]
タブで、IDという名前の変数フィールドを追加し、その値をソースの[EMP_ID]フィールドとして設定します。最初のSQLトランスフォーメーションでADD_SALARYストアドプロシージャの戻り値を取得するための[salary]という出力フィールドを作成します。次の式を使用してADD_SALARYストアドプロシージャを呼び出すように[salary]フィールドを設定します。
:SP.SQL_Add_Salary(ID, PROC_RESULT)
この式は、ストアドプロシージャの入力パラメータとして変数フィールドIDを受け取り、給与値を[SALARY]出力フィールドに返します。
次の図に、式トランスフォーメーションの設定方法を示します。
この図は、Expression_Add_Salaryトランスフォーメーションの[式]タブを示しています。このトランスフォーメーションには2つのフィールド式が含まれます。
Expression_Increaseトランスフォーメーション
SQL_increaseトランスフォーメーションを呼び出すように2番目の式トランスフォーメーションを設定します。[CurrentSalary]という変数フィールドを追加し、その値を[入力給与]フィールドとして設定します。SALARY_INCREASEストアドプロシージャの戻り値を取得するための[newSalary]という出力フィールドを追加します。次の式を使用してSALARY_INCREASEストアドプロシージャを呼び出すように[newSalary]フィールドを設定します。
:SP.SQL_increase(CurrentSalary, PROC_RESULT)
この式は、変数フィールド[CurrentSalary]をストアドプロシージャの入力パラメータとして受け取り、新しい給与を[newSalary]出力フィールドに返します。
次の図に、式トランスフォーメーションの設定方法を示します。
この図は、Expression_Increaseトランスフォーメーションの[式]タブを示しています。このトランスフォーメーションには2つのフィールド式が含まれます。
ターゲットトランスフォーメーション
実行時にターゲットファイルを作成するようにターゲットトランスフォーメーションを設定します。
マッピングを実行すると、次のような結果が得られます。
EMP_ID, EMP_NAME, salary, newSalary 1001, John, 400, 480 1002, Alice, 500, 600 1003, Mary, 400, 480 1004, Mark, 700, 840 1005, Stephan, 600, 720