iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 20
0
Big Data

30天學會Data Integration - Kettle系列 第 20

Step - 一對一查詢

  • 分享至 

  • xImage
  •  

此篇要繼續介紹一個Join的Step:[Lookup]Database lookup,它的特色就是,Join之後只會回傳一筆資料,例如可以使用Database lookup來取得每個客戶最近一筆的登入紀錄;如果是客戶所有的登入紀錄的話,要改用前一篇的Merge join來完成。

[Lookup]Database lookup介紹

Database lookup會根據前一個Step的資料流去查詢資料,並將查詢到的欄位加入到資料流中,意思也就是說,如果前一個Step取得了5筆客戶資料,那麼Database lookup會針對這5筆資料再去指定的table中查詢,並將查詢結果的欄位加入到這5筆資料當中,查詢後的資料筆數一樣會維持在5筆,也適合使用在一對一的情況,所以不像前兩篇的Join,Join結果可能會有多筆的情況

本篇目標

以北風Northwind為例,想要取得客戶最新的訂單,下圖以 CustomerID='ALFKI'來查詢訂單資料,最新的訂單日期1998-04-09
http://ithelp.ithome.com.tw/upload/images/20170104/20091626sjbjH0KS73.png

取得客戶資料

新增與設定Table input
http://ithelp.ithome.com.tw/upload/images/20170104/20091626pUTfwps2RJ.png

取得訂單資料

新增Database lookup
http://ithelp.ithome.com.tw/upload/images/20170104/20091626HdXN1SmIu8.png

設定Database lookup

  1. 選擇Orders Table
  2. 設定查詢條件
  3. 設定排序,因為是要取得最新的訂單,所以要針對OrderID進行Desc的排序
  4. 取得查詢結果的欄位
    http://ithelp.ithome.com.tw/upload/images/20170104/20091626LzWJnRQ17A.png

預覽結果

CustomerID='ALFKI'最新的訂單日期是1998-04-09
http://ithelp.ithome.com.tw/upload/images/20170104/20091626yfVMvyXtPD.png


以上就是三篇就是有關於Join的介紹,3種Step各有它們的特色,設定方式也都不同,可視情況自行挑選使用

Join 總結

Database Join

1.直接下SQL,可在SQL中傳入前一個Step中的欄位值
2.提供2種Join方式LEFT JOIN 與 OUTER JOIN

Merge Join

1.不用下SQL,直接選擇要join的欄位
2.一定要事先排序join的欄位
3.提供4種Join方式FULL OUTER、LEFT OUTER 、RIGHT OUTER、INNER JOIN

Database lookup

1.不用下SQL,直接選擇要查詢的欄位
2.查詢結果只會取得一筆資料


上一篇
Step - Merge Join與篩選資料
下一篇
Step - 將Excel資料寫入資料庫
系列文
30天學會Data Integration - Kettle30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言