kettle初识-不同数据库数据转移

业务需求:新OA中有一份数据没有,只能从旧OA中取, 于是我把数据备份到DW中,直接从DW中取数。

什么是kettel

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。

Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。

可以搜索自行到官网下载。

流程

一、 读入数据

新建transformation (ctrl+n), steps里选择Table input

, 并拖到图中。

双击,弹出对话框,更改Step Name为 Read Data, 点击Connection 后面的new, 弹出对话框,填入数据库信息。测试成功后关闭。然后Connections选择数据库名字,如这里OLD_OA , 然后在SQL框里输入SQL语句,基本语句已经写好,可以修改相应内容就好了。输入完后可以点击Preview预览下内容,这时会弹出输入框要求输入默认行数,保持默认就好了。预览信息确认无误后,可以关闭,点击OK,这一步就是好了。

二、 写入数据库

其实整个过程和读入数据类似,steps里选择Table out

,并拖到图中。

双击,修改Step name为 Write to Database, Connections 点击new填入数据库信息。这里要注意的是这里的数据是目标数据库,是要把信息存入的数据库。修改相应的信息,Connection里选择刚刚的数据库,Target schema为服务名, Target table写入数据库里未存在的表名。至此,好像除了点OK,都结束了。

注意:这里有一个关键点,一定要点击sql,会出现一个sql语句,这里生成table的语句,然后点击excut执行,否则等下运行tranformation的时候会报错,表不存在

三、 连接steps

两个steps建立好了,鼠标按住read data 同时按信shift键拖动鼠标到write to database,会有一条线出现,这条线就是hops, 其实就是流程方向,双击的话会看到对话框,从read data 到write to database。

四、 运行transformation

一切就绪,点击运行图标,

对话框信息默认,直接点击Run, transformation就如我们期待那样正常运行了。运行结束,可以到目标数据库中查看,我们想要到数据已经出现了。

后记

其实kettle非常强大,可以做的事情还有很多,数据的抽取,清洗,转换,加载,我这时只是做了最基本的流转,其实直接用代码写也不会慢,但是可以做个示范,有兴趣的朋友可以自己探索下。

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20190329A0BAWU00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券