式トランスフォーメーションを使ってカラムの数値を加工してみる

2022.09.21

データアナリティクス事業本部の鈴木です。

Informatica Intelligent Cloud Services(以降、IICS)のInformatica Cloud Data Integration(以降、CDI)でCSVファイルを処理する際、式トランスフォーメーションの機能を使ってカラムに入っている数値を処理して、新しいカラムとして別のCSVファイルに出力してみました。

この記事の目的

CDIのマッピングを使って、読み込んだデータを加工したいとき、トランスフォーメーション言語を使って加工を記述することができます。トランスフォーメーション言語を使うことで、例えば数字のゼロパディングをしたり、固定文字列を付与したりできます。また、IIFを使って分岐を記述することもできます。

初めて式トランスフォーメーションを使う際に参考になればと思っています。

構成とデータについて

構成は以下のようにします。入力用バケットにsample.csvを置いておき、CDIで加工した後、出力用バケットにoutput.csvとして出力します。

構成

データは以下のようなCSVファイルを準備しました。今回は簡単な例として、絶対値を取った版のCSVを出力としてS3に保存します。

sample.csv

col1
1
-2
3
-4
5

ドキュメントについて

式トランスフォーメーションのドキュメントを参考に進めてみました。

日本語版のドキュメントは以下です。

英語版のドキュメントは以下です。

また、式トランスフォーメーションに設定した関数は、以下を参考にしました。

やってみる

この記事では、マッピングの作成部分をご紹介します。

1. マッピングの作成・ソースの設定

データ統合の、マッピングを作成したい場所で、新規 > マッピング > マッピングを押して、マッピングを新規作成します。

マッピングの作成

今回はS3にあるCSVファイルを取得して、式トランスフォーメーションで加工し、同じくS3に出力するようにしたいので、ソーストランスフォーメーションとターゲットトランスフォーメーションをそのように設定しておきます。

マッピングの初期状態

S3への接続については、以下の記事もご参照ください。

今回はポイントのみ記載します。CSVファイルの読み込みなので、ソースの形式はFlatにしました。

Flatファイルの読み込み

また、数値のカラムを読み込むので、ネイティブタイプはflat_bigint、タイプはbigintとしました。

カラムの設定

2. 式トランスフォーメーションの設定

ソーストランスフォーメーションとターゲットトランスフォーメーションの間に、式トランスフォーメーションをドラッグ&ドロップします。

式トランスフォーメーションの追加

式トランスフォーメーションをクリックし、プロパティ > のプラスマークを押します。

フィールドの追加

新しいフィールドに設定を記載します。特にフィールドタイプは出力フィールドを設定しました。また、タイプも数値を返したいのでbigintとしました。

フィールドの設定

次に式の内容を設定します。

式の設定

トランスフォーメーション言語にある関数を組み合わせつつ、式を作成しました。

式の記述

使える関数は、プルダウンで組み込み関数を選ぶことで、選択することもできました。

使える関数

3. ターゲットの設定

ターゲットトランスフォーメーションの設定を修正しておきました。受信フィールドで、式トランスフォーメーションで作成した出力フィールドのみ受信するように再設定しておきます。

ターゲットの設定

ターゲットフィールドに設定が反映されていない場合は、再読み込みしておきます。

ターゲットフィールドの読み込み

4. 実行結果の確認

作成したマッピングを実行し、結果を確認しました。マッピングの画面から、実行を押して実行します。

マッピングの実行

S3の該当の場所にCSVファイルが作成できました。

出力結果

ダウンロードして中身を確認すると、期待通りになっていることが分かりました。

expression1
1
2
3
4
5

最後に

今回はCDIの式トランスフォーメーションの機能を使って、S3に配置したCSVファイルのカラムに入っている数値を処理して、新しいカラムとしてS3の別のCSVファイルに出力する例をご紹介しました。参考になりましたら幸いです。