ETL(kettle)实战二:数据抽取原则分享及简单使用介绍

时间:2024-03-18 22:36:58

关于kettle使用的场景简单总结下。

1.异构数据库或者跨库数据抽取,用kettle的转换比较方便,数据的适配是在内存中进行的,性能比dblink之类的要好。

2.同构数据库能通过简单的sql跨库(mysql,seqlserver等)跨schema(pgsql)操作的,建议直接使用kettl的sql脚本,性能要好点,通过脚本独立出来,维护也方便点(转换只能在kettl工具中维护,sql可以在大多数编辑器里或者客户端里维护)

3. 文档如果是定时更新的,用kettle做一个定时任务还是比较方便的,如果是一次性的,就不要折腾了。

以上是我个人使用kettle的一些原则(下篇会介绍点使用kettle的设计规范)。接下来会继续分享kettle的使用。

kettl安装好后会显示欢迎界面,这个没啥说的,关闭欢迎界面,默认是英文的,先调成中文的如下图,选择工具--》选项--》观感--》缺省语言 (我的已经切成中文了不想来回捣鼓了,如有不明白的欢迎留言),顺便留意下右边的功能

ETL(kettle)实战二:数据抽取原则分享及简单使用介绍

 

点击左上角的+号,就可以新建一个转换,然后选择主对象树新建一个db连接,数据库操作是后必须的,这个大家都懂的就不多说了,一般的数据抽取,主对象树里也就DB连接需要关心的

ETL(kettle)实战二:数据抽取原则分享及简单使用介绍

然后选择核心对象,根据需求选择相关步骤,个人只用过部分,下面介绍个常用的表输入其他的就不介绍了,如下图,从核心对象输入里面拖一个表输入到工作台,双击打开,选择上一步配置的数据库。就可以在sql编辑区写sql,然后点击预览试一把了。然后在从核心对象里选择输出拖一个表输出,根据提示配置一下就好了。都不是很难就不截图了。
ETL(kettle)实战二:数据抽取原则分享及简单使用介绍

对于变量需要重点提一下,一般情况开发环境和部署环境是不同的如数据库,服务器等。如果不用变量开发是都是硬编码,那么交付时势必会很头疼。

变量大概有两种全局变量和局部变量。全局变量可以通过kettle.properties配置,也可以通过选择编辑kettle.properties文件配置,配置需要重启。使用大概就是像下图所示,如果是用再sql里且是字符串,需要在外面加单引号

ETL(kettle)实战二:数据抽取原则分享及简单使用介绍

局部变量是通过特定步骤配置的,有作用域限制如下图以job(也是通过左上角+号创建的)里的设置变量为例,这里没有在sql步骤里直接写脚本,而是引用了外部脚本。还有使用变量的时候一定要勾选下图的使用变量替换(我疏忽了没标记)

ETL(kettle)实战二:数据抽取原则分享及简单使用介绍

前两篇简单介绍kettle安装及简单实用。后续会再更新一篇开发规范和一篇ftp实战