Talend 標準ルーチンの活用
Talendには多くのシステムルーチンが標準で用意されています。
以下はクラスとその内容です。
DataOperation(各種数値を文字に変換)
Mathmatical(算術演算とビット演算)
Numeric(シーケンス値、ランダム値の生成、文字列からBigDecimalの生成)
Relational(NULL値判定)
StringHandling(英字判定、大文字化、小文字化、長さ取得など文字列変換処理)
TalendDataGenerator(ダミーデータの生成【アメリカ合衆国での姓、名、ストリート名、州名など】)
TalendDate(日付、時間の計算、置換、判定処理)
TalendString(文字列エスケープ、ランダム文字列生成、トリムなどの特殊文字列処理)
今回はNumericクラスのsequenceを使用して複数の順位をデータに追加します。
入力ファイル
入力ファイルには、店舗名(Store)、商品1売り上げ数(Product1)と商品2売り上げ数(Product2)が記録されています。
商品1売り上げ数でソートする
まず入力データの読み取り用にtFileInpuDelimitedを配置し、tSort_1を追加して商品1売り上げ数(Product1)で降順でソートします。
tSortRow_1の設定
スキーマカラムにProduct1を追加し、ソート種別をnum(数値)で設定し、順序をdesc(降順)で設定します。
商品1売り上げ数の順位を付加する
tMap_1の設定
Var変数にNumeric.sequence( "S1", 1, 1 )を設定します。
sequenceの引数は、"S1"というキーに対し、初期値を1、増加数を1という設定になります。
out1にはVar.Sequence1を格納するためにProduct1_Sequenceを追加します。
商品2売り上げ数でソートする
tSort_2を追加して商品2売り上げ数(Product2)で降順でソートします。
tSortRow_2の設定
スキーマカラムにProduct2を追加し、ソート種別をnum(数値)で設定し、順序をdesc(降順)で設定します。
商品2売り上げ数の順位を付加する
tMap_2の設定
Var変数にNumeric.sequence( "S2", 1, 1 )を設定します。
sequenceの引数は、"S2"というキーに対し、初期値を1、増加数を1という設定になります。
ここでtMap_1で前回に使用した"S1"というキーに設定すると前回の順位が引き継がれてしまいます。
out2にはVar.Sequence2を格納するためにProduct2_Sequenceを追加します。
店舗名でソートする
現在のデータは商品2売り上げ数で降順になってますので、tSort_3を追加して店舗名(Store)で昇順でソートします。
tSortRow_3の設定
スキーマカラムにStoreを追加し、ソート種別をalpha(文字)で設定し、順序をasc(昇順)で設定します。
ファイルへの出力
最後にtFileOutputDelimited_1を追加してファイルに出力します。
出力結果
商品1売り上げ数と商品2売り上げ数の売上順位(Product1_Sequence、Product2_Sequence)がデータに追加できました。
まとめ
今回はTalendのシステムルーチンの活用例を紹介させていただきました。
今回は詳細について触れておりませんが、日付や時間の処理を行う際にはTalendDateクラスのルーチンは非常に有効利用できます。
次回はユーザールーチンの活用について紹介したいと思います。