目次

Search

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

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

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

ストアドプロシージャまたはストアド関数の処理

ストアドプロシージャまたはストアド関数の処理

Microsoft SQL Server、MySQL、ODBC、またはOracleのデータベース内のストアドプロシージャまたはストアド関数を呼び出すには、SQLトランスフォーメーションを使用します。ストアドプロシージャまたはストアド関数は、SQLトランスフォーメーションを作成する前にデータベースに存在している必要があります。
次のタイプのSQLトランスフォーメーションを使用して、ストアドプロシージャまたはストアド関数を呼び出すことができます。
接続されたSQLトランスフォーメーション
トランスフォーメーションがマッピングパイプラインに接続されています。ストアドプロシージャまたはストアド関数は行ごとに実行され、単一の出力パラメータまたは複数の出力パラメータを返します。
SQLトランスフォーメーションの受信フィールドをストアドプロシージャの入力フィールドにマッピングできます。SQLトランスフォーメーションの出力フィールドは、ストアドプロシージャの出力パラメータまたは戻り値で構成されます。
戻り値は、ストアドプロシージャに定義したコードまたはテキスト文字列です。例えば、ストアドプロシージャは実行された日付を示す値を返すことができます。ストアドプロシージャに戻り値がある場合、SQLトランスフォーメーションには戻り値フィールドがあります。
未接続のSQLトランスフォーメーション
SQLトランスフォーメーションがマッピングパイプラインに接続されていません。式トランスフォーメーションによりストアドプロシージャの式を使用してSQLトランスフォーメーションが呼び出されるか、ストアドプロシージャがマッピングの前または後に実行されます。
ストアドプロシージャの出力を式の出力フィールドと変数に返すように式を設定できます。複数の式からストアドプロシージャを呼び出し、ストアドプロシージャをネストすることができます。
未接続のSQLトランスフォーメーションを使用してストアド関数を処理することはできません。
ストアドプロシージャは、次のタスクを実行する場合などに使用します。
  • データをターゲットデータベースにロードする前にターゲットデータベースのステータスをチェックする。
  • データベース内に十分な領域があるかどうかを調べる。
  • 特殊な計算を行う。
  • 値でデータを取得する。
  • インデックスを削除および再作成する。
  • 一時テーブルを削除する。
  • テーブルがデータベースに存在することを確認する。
ストアドプロシージャを使用して、マッピングの一部で行うような計算を実行できます。例えば、消費税を計算するストアドプロシージャがある場合、式トランスフォーメーションで計算を再作成せずに、SQLトランスフォーメーションで計算を実行できます。
マッピングを実行すると、SQLトランスフォーメーションは入力パラメータをストアドプロシージャに渡します。ストアドプロシージャは戻り値をトランスフォーメーションの出力フィールドに渡します。

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

マッピングには、データフローのユーザーIDが含まれます。ユーザーIDに加えてユーザー名を含める必要がある場合があります。
ユーザーIDをデータベースのユーザー名とマッチングするストアドプロシージャがあります。マッピングにSQLトランスフォーメーションを追加し、そのストアドプロシージャを選択して、ユーザーID受信フィールドをストアドプロシージャのユーザーID入力フィールドとマッピングします。
[出力フィールド]
タブにSQLトランスフォーメーションがあるかチェックし、SQLトランスフォーメーションにユーザー名フィールドが含まれていることを確認します。マッピングを実行すると、ユーザー名の値がユーザーIDとともに返されます。

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

マッピングに従業員の給与データが含まれており、各従業員の給与を昇給で更新する必要があります。
従業員の昇給を計算するストアドプロシージャがあります。このストアドプロシージャは、新しい給与と増加率を返します。接続されていないSQLトランスフォーメーションを追加し、ストアドプロシージャを選択します。
次に、式トランスフォーメーションをマッピングパイプラインに追加します。式トランスフォーメーションで、新しい給与を取得するための変数フィールドを追加します。出力フィールドを追加し、ストアドプロシージャの関数を使用して式を設定します。出力フィールドが増加率を返すように引数を設定し、新しい給与を返す2番目の出力フィールドを作成します。その後、新しい出力フィールドをダウンストリームトランスフォーメーションにマッピングします。