这一期我们就来简单体验下kettle怎么进行数据转换的。
我们这里呢就以两个小案例来体验下kettle
kettle被称为可视化编程语言,可以完成复杂的etl工作流。kettle里的代码就是转换和作业。
所以呢,我们首先就来说说转换和作业。
从下面截图中,我们看到转换包含了很多核心对象,说明其包含了很多功能。后面有得我们学的了(开个玩笑)
步骤是转换里的基本组成部分,上面截图中包含了两个步骤①CSV文件输入②Excel输出
跳是两个步骤(驿站)之间的道路(带箭头的连线)
可以通过如下方式查看和修改行缓存大小
每个步骤在输出数据行时都有对字段的描述,这种描述就是数据行的元数据
通常包含下面一些信息。
①名称:数据行里的字段名是唯一的。
②数据类型:字段的数据类型。
③格式:数据显示的方式,如Integer的#、0.00。
④长度:字符串的长度或者BigNumber类型的长度。
⑤精度:BigNumber数据类型的十进制精度。
⑥货币符号:¥
⑦小数点符号:十进制数据的小数点格式。不同文化背景下小数点符号是不同的,一般是点(.)或逗号(,)。
⑧分组符号:数值类型数据的分组符号,不同文化背景下数字里的分组符号也是不同的,一般是点(.)或逗号(,)或单引号(’)
这里的输入文件十csv格式数据,所以分组符号是逗号","
数据以数据行(可以理解为一个表格中的一行)的形式沿着步骤移动,每个数据行又有多个字段元素(可以理解为一个单元格)构成
就像在excel中,每个单元格都可以设置数据格式一样,这里数据行中的字段也有自己的数据类型.
常见的数据类型有以下几种
我们经常需要处理大量的数据,所以设计了跳这样的行集缓存规则,使得每个步骤就是一个独立线程.所有步骤都以并发方式执行.
当转换启动后,所有步骤都同时启动,从它们的输入跳中读取数据,并把处理过的数据写到输出跳.
直到输入跳里不再有数据,就中止步骤的运行。
当所有的步骤都中止了,整个转换就中止了
如果想要一个任务沿着指定的顺序执行,那么就要使用下面所讲的“作业”来做流程控制
因为转换(transformation)以并行方式执行,所以必须存在一个串行的调度工具来执行转换,这就是Kettle中的作业
核心对象-->输入-->CSV文件输入(将控件拖入工作区)
由于案例2需要涉及到MySQL数据库,所以我们需要建立DB连接
①下载MySQL驱动(需要下载对应版本的)我用的是MySQL5.7,所以这里下载5.1.37版本驱动
②将下载的好的MySQL驱动包放入lib文件夹下
③新建DB连接
注:如果没有下载驱动包或者驱动包版本与MySQL版本不一致,会包如下错误
①将Excel输入控件拖入工作区
②设置Excel输入控件
直到点击预览记录后获取到如下截图所示数据,说明输入设置成功了
①将表输出控件拖入工作区
②通过跳将输入输出控件连接起来
③设置需要导入数据的目标表
④匹配数据库字段
①日志显示转换成功
②我们再来看看数据库test的t_tv表中也有数据了
到此通过两个案例小试牛刀之后都转换成功了,是不是有点小成就感呢。
其实这只是kettle工具的冰山一角,从kettle那么多核心对象可以看得出来,它还有很多很多很多得玩法等着我们去开启。
本期内容到此就结束了,希望内容对你有所帮助,我们下期再见(●''●)