ETL之kettle使用总结:(批量、含常量)csv入库
本文实验的ktr文件:ktr文件
1.概述
18年开工第一天,做下Kettle的使用总结。
Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。
关于kettle的下载及安装这里不赘述,此处仅介绍工作过程中最常见的三种使用场景:
- 单个csv文件入库;
- 增加一个常量字段的csv文件入库;
- 批量csv文件入库。
2.具体操作
2.1单个csv文件入库
这个是最简单的操作,下面我们通过实例进行说明:
2.1.1首先我们在数据库中建立需要入库的表ljb_test_kettle
create table ljb_test_kettle
(
session_id varchar2(50),
line_num varchar(4),
extension_id varchar2(10),
similar_grade number
);
这里一定要注意字段的类型,多数情况下的报错都是由字段类型不匹配或长度不够等引起的。
2.1.2打开spoon
双击kettle解压文件中的spoon.bat(windows是spoon.bat,Linux和Mac是spoon.sh)。
在主对象树右击转换->新建,建立新的转换。并保存Ctrl+S,命名,这里随便写个。如下图:
2.1.3 创建数据库连接DB连接
右键图中DB连接-新建连接,填上相应的参数,除了数据表空间和索引表空间之外,其余均要填写。如下图:
填写完成,我们可以点击测试,如果没问题则表示成功,如果错误请根据具体信息解决(网络问题、jar包缺少、配置错误等)。
2.1.4 创建输入输出对象
点击核心对象树,分别找到输入-CSV文件输入,输出-表输出,并直接拖动到转换的图形视图(下图中的2视图)中。
2.1.5创建连接
按住Shift键,依次单击输入对象和输出对象,会在两者之间生成一个箭头,并选择主输出步骤。如下:
2.1.6 输入输出对象参数设置
通过双击两个对象,可以进行相关参数设置。
2.1.6.1 输入对象参数配置
步骤名称:可以使用默认,建议根据工作要求进行规范命名。
文件名:通过浏览选择对应需要导入的文件。
列分隔符:因为是CSV文件,所以采用默认的英文逗号。
对于字段这一列,我们可以自动获取字段,操作方式:
获取字段-取消,注意弹出框的时候一定选取消,不然相应的格式之类的会自动帮你填写,但这些往往我们并不需要。如下图:
我们可以通过预览查看是否是我们想要的结果。
2.1.6.2 输出对象参数配置
步骤名称:可以采用默认,推荐采用结果表名称。
数据库连接:采用之前创建的连接,如果没有创建,可在这里点击新建按钮进行创建。
目标表:数据库中的表名。
勾选指定数据库字段。
如果我们不勾选该选项的话,在我们选择数据库字段的时候,如下两个按钮就是灰色的,无法点击,如下图:
点击获取字段。然后观察顺序是否无误,确定。
2.1.7 运行转换
点击三角符号,运行这个转换。
并查看日志。
去数据库中查看数据,至此已完成。
2.2 增加新的常量字段的csv文件入库
我们有如下需求,三个csv文件入库,并添加一个flag字段,对于第一个csv文件,flag为0,第二个flag为1,第三个flag为2。
我们可以通过添加自定义常量的方式实现。
我们把刚才的对象复制一份,并点击连接箭头,可以看到,会变成灰色,这样,当我们运行的时候,灰色的转换就会被跳过。
2.2.1 增加常量
转换-增加常量
建立如下图的转换。
同样的我们建立测试表:
create table ljb_test_kettle_final
(
session_id varchar2(50),
line_num varchar(4),
extension_id varchar2(10),
similar_grade number,
flag number
);
2.2.2 配置常量
双加增加常量,并进行下图所示配置。
2.2.3 配置输出对象
双击输出对象,更新配置,重新获取字段:
2.2.1 运行转换
运行转换,第二个第三个同理,只需要更改对象的flag值即可。
2.3 批量入库csv文件
有如下需求,我们需要把下图中的所有csv文件入库,这些csv文件字段类型完全一样。
这时,我们需要采用通配符进行批量入库。
2.3.1 首先把之前的转换全部点击为灰色。
2.3.2 修改输入对象
批量输入与单个输入不同点在于输入对象变为了文本文件输入。
输入-文本文件输入。
如下图:
2.3.3 配置输入对象
2.3.3.1 配置文件项
浏览到目录,然后增加。
填写通配符:采用如下写法可以成功。
.*\.csv$
如下图:
2.3.3.2 配置内容项
分隔符,英文逗号。
格式:Unix。
2.3.3.3 配置字段项
获取字段-取消
2.3.3.4 预览记录
预览记录没问题则表示配置成功。
2.3.4 运行转换
运行该转换即可。