最近开始研究ETL的工具,目前有关ETL相关工具中Kettle为其中免费且知名的工具

所以有必要好好学习

那相关的资料也不少,但是很凌乱。

这是一套较为完整的教材

值得参考。

资料来源:https://ithelp.ithome.com.tw/articles/10186258

 

几经挣扎,真觉得比赛为什要办在年底呢,真的是水深火热啊!原本是打算写Asp.Net MVC,但怕写到一半就跑不动了,偏偏肚子没什么墨水,东挤西挤倒是有一些油水啦XD,希望可以靠这些油水顺利撑过未来的30天!

为什么要写这个主题

想来想去,还是乖乖来写一下Kettle的笔记,因为本人记忆力超弱,随著时间的流逝,所学的东西也跟著流失的,所以趁现在对Kettle还存有ㄧ些记忆时,赶紧把笔记整理起来,以后就算忘记也可以马上复习!

话说我有机会学到Kettle,都要感谢我的部门经理,还有不藏私的同事一路的指导与协助,特别特别感谢一间厂商的工程师非常的照顾我,常常私下帮我解惑还不收钱XD,说真的,第一次听到同事分享Kettle时,真的完全听不懂他到底在说什么,等到真的打开Kettle时,更不知道这软体到底该怎么操作,其实我觉得这软体没有很容易入门,尤其又是英文版(本人是英文白痴),但是头过身就过!稍微有人带一下,学会了就会爱上他,在特定时刻,会有一种我的生活不能没有它的感觉。

特定时刻是什么时候呢?例如,有些客户想要改写旧系统,而新系统免不了的一定会有资料库架构与资料的变动,但对工程师而言,进行资料的转置根本是一场灾难,因为绝对不可能用人工的方式去转置资料,光是一堆table的join根本是头眼昏花,更别说那些不易读的栏位命名,还要分析与验证资料的正确性,以及保证你没有遗漏任何一笔资料,像是我参与过比较复杂的资料转置是8个table的整合分析与写入资料库,除了资料量大之外还逻辑还颇复杂,除了要靠强大的SA同事来协助之外,还要有一个好用的ETL工具,真的是深深感受到ETL工具的威猛,流程清楚且易维护,随时想重汇资料都没问题,但如果叫我写程式去处理,或是叫我去维护别人写的程式,等级太弱的我一定崩溃XD,以下是我目前设计过最复杂的流程画面XD
http://ithelp.ithome.com.tw/upload/images/20161218/200916262E1JOl6nuk.png

不过简单的部分也有像是拿到几百笔的帐号密码与姓名的资料(Excel)要写入资料库的,最原始的方式当然是请工读生去资料库慢慢建(搞不好也有呆呆的工程师自己慢慢建的),或是使用资料库的Excel汇入功能,此时就可以自行评估,不一定要ETL工具啰!

什么是Kettle

现在的资料库非常多种,没有任何一套资料库可以解决所有问题,不然这世界上只会剩下一种资料库,而程式语言永远学不完,系统也永远开发不完,文件档案格是更是族繁不齐备载,如何整合这些资料库、系统与资料文件,Kettle就是其中一种选择。

Data Integration - Kettle (or Kettle, Pentaho Data Integration, PDI),是由Pentaho这家公司所开发的,它是一个资料整合ETL(Extract-Transform-Load)的工具,ETL工具常常使用在资料仓储的环境,而Kettle这套ETL工具,是透过图形化介面让使用者设定资料整合的方式,也可以应用在:
 1.在软体与资料库之间的资料转置
 2.将资料库资料汇出成文件(例如:txt、excel)
 3.从资料库载入大量资料(例如:Hadoop、MongoDB)
 4.整合应用程式资料

所谓的ETL包含三个部分:
 1.Extract(抽取):读取资料,资料来源可能是txt、excel或者是database
 2.Transform(转置):将资料进行分析,例如验证资料格式是否正确,等等...
 3.Load(载入):将处理好的资料可能汇出成txt、excel、写入或更新到指定database

简而言之,Kettle主要的操作就是透过滑鼠点一点、拖一拖、拉一拉,就可以轻松完成资料整合了,如下图:
http://ithelp.ithome.com.tw/upload/images/20161218/200916269PvSE37wWk.png

另外Kettle是Open Source的喔,开发环境是使用Java!台湾有一家员工将近2000人的公司,就是使用Kettle来另外改写成一套中文化的软体,产品名称当然就不叫Kettle了,价值不斐,所以这30天好好学会Kettle,不只省时还能省下一些钱!

相关文章