kettle(Pentaho Data Integration) 使用"最佳"实践
kettle 是一款基于JAVA的开源ETL工具,现在它的名字应该叫做Pentaho Data Integration(PDI)了, 非常优秀的一款工具,功能非常多,今天我们主要演示其Java API案例
案例
通过PDI工具,完成一个Job,主要目标是将表中的数据导出到dat文件中,导出的文件名字以user-
开头,内容使用|
作为分割符,后面的格式是YYYYMMDD
后缀为dat. 例:user-20200502.dat
下载PDI
https://sourceforge.net/projects/pentaho/files/latest/download?aliId=137249511
启动PDI
linux环境下通过命令sh spoon.sh
命令来启动,打开后如果对英文不熟悉,可以在工具菜单页修改默认语言,重启后生效
开始
打开之后,映入眼帘的是Job(作业)
和Transformation(转换)
这里我们新建一个Job,作业中包含一个transformation,Job的作用是为了控制过程,transformation在这里启到的作用是将表中的数据写入到dat文件中
Job如下:
transformation如下:
整个过程非常简单,托拉拽就完成了,特别说明几处要点。
双击表输入
弹出如下窗口,没有数据库连接
的情况下,需要点击数据库连接
右侧的新建
按钮,注意选择Generic database
,如果提示找不到驱动,那么下载一个放到PDI的lib目录下重启即可
双击文本文件输出
,文件
页签中文件名称
栏位可以制定文件路径,文件名可以是部分文件名,如下图的user-
,这里扩展名
栏位我们输入dat,指定日期格式
栏位打钩,日期格式
栏位是yyyyMMdd,在结果中添加文件名
栏位打钩,显示文件名
点击后可以预览最终生成的文件名称。
内容
页签中分割符
栏位修改为|
字段
页签中一定要点击一下获取字段,否则字段页签全部为空,Job跑起来的时候也会报错。
Java工程结构
Maven依赖
本次案例主要依赖如下jar包,其实也是kettle主要的依赖jar
运行Job
执行完成后,就可以在桌面上看到一个user-20200502.dat
的文件,内容如下:
参考文档
[^PDI document]: [Latest Pentaho Data Integration (aka Kettle) Documentation](https://wiki.pentaho.com/display/EAI/Latest+Pentaho+Data+Integration+(aka+Kettle)+Documentation)
源码地址
https://github.com/cattles/fucking-great-kettle.git
版权声明: 本文为 InfoQ 作者【稻草鸟人】的原创文章。
原文链接:【http://xie.infoq.cn/article/0b514c1e26940a10dc3865393】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论