式トランスフォーメーションを使ってカラムの数値を加工してみる
データアナリティクス事業本部の鈴木です。
Informatica Intelligent Cloud Services(以降、IICS)のInformatica Cloud Data Integration(以降、CDI)でCSVファイルを処理する際、式トランスフォーメーションの機能を使ってカラムに入っている数値を処理して、新しいカラムとして別のCSVファイルに出力してみました。
この記事の目的
CDIのマッピングを使って、読み込んだデータを加工したいとき、トランスフォーメーション言語を使って加工を記述することができます。トランスフォーメーション言語を使うことで、例えば数字のゼロパディングをしたり、固定文字列を付与したりできます。また、IIF
を使って分岐を記述することもできます。
初めて式トランスフォーメーションを使う際に参考になればと思っています。
構成とデータについて
構成は以下のようにします。入力用バケットにsample.csv
を置いておき、CDIで加工した後、出力用バケットにoutput.csv
として出力します。
データは以下のようなCSVファイルを準備しました。今回は簡単な例として、絶対値を取った版のCSVを出力としてS3に保存します。
col1 1 -2 3 -4 5
ドキュメントについて
式トランスフォーメーションのドキュメントを参考に進めてみました。
日本語版のドキュメントは以下です。
英語版のドキュメントは以下です。
また、式トランスフォーメーションに設定した関数は、以下を参考にしました。
やってみる
この記事では、マッピングの作成部分をご紹介します。
1. マッピングの作成・ソースの設定
データ統合
の、マッピングを作成したい場所で、新規
> マッピング
> マッピング
を押して、マッピングを新規作成します。
今回はS3にあるCSVファイルを取得して、式トランスフォーメーションで加工し、同じくS3に出力するようにしたいので、ソーストランスフォーメーションとターゲットトランスフォーメーションをそのように設定しておきます。
S3への接続については、以下の記事もご参照ください。
今回はポイントのみ記載します。CSVファイルの読み込みなので、ソースの形式はFlat
にしました。
また、数値のカラムを読み込むので、ネイティブタイプはflat_bigint
、タイプはbigint
としました。
2. 式トランスフォーメーションの設定
ソーストランスフォーメーションとターゲットトランスフォーメーションの間に、式トランスフォーメーションをドラッグ&ドロップします。
式トランスフォーメーションをクリックし、プロパティ
> 式
のプラスマークを押します。
新しいフィールド
に設定を記載します。特にフィールドタイプは出力フィールド
を設定しました。また、タイプも数値を返したいのでbigint
としました。
次に式の内容を設定します。
トランスフォーメーション言語にある関数を組み合わせつつ、式を作成しました。
使える関数は、プルダウンで組み込み関数
を選ぶことで、選択することもできました。
3. ターゲットの設定
ターゲットトランスフォーメーションの設定を修正しておきました。受信フィールドで、式トランスフォーメーションで作成した出力フィールドのみ受信するように再設定しておきます。
ターゲットフィールドに設定が反映されていない場合は、再読み込みしておきます。
4. 実行結果の確認
作成したマッピングを実行し、結果を確認しました。マッピングの画面から、実行
を押して実行します。
S3の該当の場所にCSVファイルが作成できました。
ダウンロードして中身を確認すると、期待通りになっていることが分かりました。
expression1 1 2 3 4 5
最後に
今回はCDIの式トランスフォーメーションの機能を使って、S3に配置したCSVファイルのカラムに入っている数値を処理して、新しいカラムとしてS3の別のCSVファイルに出力する例をご紹介しました。参考になりましたら幸いです。