[Talend] Talend Open Studio チュートリアル② 〜tMapの使い方〜

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

以前投稿したブログでジョブの作成まではできていますので、そこからの続きになります。

今回はローカルマシンのCSVファイルを読み込んで、値を少し変化させてログに出力をするところまでをやってみます。

マッピング

スクリーンショット 2016-07-05 15.30.14

前回のログの出力まで終了していると、このような状態になっています。

スクリーンショット 2016-07-08 17.12.42

次はtMapというコンポーネントを使用します。 右ペインからドラッグすると「新しい出力名?」というダイアログが表示されますので今回は適当に「row2」と命名しました。

スクリーンショット 2016-07-08 17.18.41

「ターゲットコンポーネントのスキーマを取得しますか?」と聞かれますので、これも「Yes」と選択します。

スクリーンショット 2016-07-08 17.21.08

tMapとは名前の通りマッピングをするためのコンポーネントで
今回はローカルマシンのファイル(metadata)をマッピング(tMap)してログの出力(tLogRow)をするというジョブの作成になります。

tMapをダブルクリックしてtMapエディターを開きます。次にする作業は
1.lastnameカラムの値を大文字に変更
2.idの値に*5する

スクリーンショット 2016-07-08 18.07.40

左側が変更前のテーブル定義で右側が変更後のテーブル定義になります。

スクリーンショット 2016-07-08 18.12.11

右側の変更したいカラム(今回だと lastname)をクリックして、「...」をクリックします。

スクリーンショット 2016-07-08 18.01.21

StringHandlingを選択します
UPCASEをダブルクリックすると、③に反映されます。
StringHandling.UPCASE()の引数に大文字にしたいカラムを入れます。今回だとrow1.lastnameですね。

スクリーンショット 2016-07-08 18.46.46

row1.idを選択します
② 式エディタタブを選択して値を操作します。今回は *5 としました。

これで実行すると

スクリーンショット 2016-07-08 19.36.43

なんか変なのが出てきました。

The operator * is undefined for the argument type(s) String, int

* はダメだよって言ってますね。

スクリーンショット 2016-07-08 19.40.48

よく見るとidがStringになってますね。ブログを書いている時に作り直したのでStringにしたままだったみたいですね。 なのでidをintにしてもう1度実行します。

スクリーンショット 2016-07-10 20.36.53

これでうまくいきました。

最後に

手軽にマッピングができましたね。 次回はローカルファイルとデータベースから抽出したデータのマッピングをやってみます。