なにかのきろく

ひっそりと戻ってきて自分のためになるべく頑張る・・・

Talendでデータ結合を考える 前編

今回は前回用意したデータをもとにして、
Talend上でのデータ結合を考える。


データ結合は、tJoinかtMapを使用する。
データを一気に結合させてやる!!と気合の入った処理?に
しようと考えたのでtMapを利用する。

f:id:seyoshinori:20160623194019p:plain

なんかtMap大変!みたいな。


複数のDB接続を設定するので、
リポジトリにDB接続を追加した。

f:id:seyoshinori:20160623194103p:plain

こうすることでコンポーネント上でリポジトリに登録された情報を
読み込めばいいだけになる。
選ぶだけで簡単だ。(下の図のオレンジ色の枠)

f:id:seyoshinori:20160623194119p:plain

 


では、tMapの中身です。

f:id:seyoshinori:20160623194155p:plain

左枠、真ん中、右枠に分かれてます。

左枠を見ればわかりますが、row1とrow2の結合定義が見えます。
JoinModelはInnerJoinに設定する。
店舗コードが結合キーになるように設定する。

右枠は結合後の結果です。
mainには正常結合結果のデータが流れます。
rejectにはInnerJoinで結合出来なかったデータが流れます。


それでは実行結果を・・・

f:id:seyoshinori:20160623194230p:plain

結合に成功したレコードが50件、
結合に失敗したレコードが6件です。

当該6件はこれです。

 

そしてrejectファイルです。

f:id:seyoshinori:20160623194321p:plain

店舗マスタはこれです。

f:id:seyoshinori:20160623194311p:plain

"A01H"の店舗コードが店舗マスタと紐付かない。

f:id:seyoshinori:20160623194337p:plain

最後に、
変数を利用して、エラー時のメッセージを表示させようとした。
ですが、上手くいきません。私のスキルの問題です・・・。

 

こちらのサイトを参考にしてみました。

Talend Open Studio (ETLツール) でデータ統合(8)~tMapでのIf(条件分岐):komlog:So-netブログ

 

しかし、コードの一致や、名称の""(空)やNULL判定が
上手に出来ない・・。
ここら辺は、これからも調査してフィージビリティを確認する。

 


End