目录
一、txt文本转换成excel
1、新建、转换
2、构建流程图
3、配置数据流图中的各个组件
3.1、配置文件文本输入组件
3.2、 配置Excel输出组件
4、保存执行
二、excel转换成mysql
(1)在MySQL数据库中创建数据库,这个根据自身情况。我就在现有test库中测试了。
(2)根据以上步骤,新建转换。
(3)构建流程图,选择excel输入和表输出
(4)将两个组件连接起来
(5)双击表输入,文件选择源文件的位置,然后点击增加,在点击【工作表】,获取工作表名称,把标签移到右边
(6)点击「字段」选项卡,点击「获取来自头部数据的字段...」按钮,Kettle会从Excel中读取第一行字段名称。
(7)将 age 字段的格式设置为#,register_date的格式设置为 yyyy-MM-dd HH:mm:ss。
(8)点击「预览记录」按钮查看抽取到的数据。如果数据格式有我呢提,在调整格式
(9)点击「确定」按钮并保存。
(10)配置MySQL组件,双击表输出组件
(11)输入目标表的名称为:user,后续Kettle将在MySQL中创建一张名为 user 的表格。
(12)点击下方的「SQL」按钮,可以看到Kettle会自动帮助我们生成MySQL创建表的SQL语句,
(13)保存并执行转换
(14)查看数据,由于ID 数据过大,需要把属性换成 bigint
三、 MySQL表之间转换
1、共享数据库连接
2、需求:将user表中的数据,转换到user1表中
3、新建转换
4、构建kettle流程图
5、配置Kettle数据流图中的组件
四、插入和更新组件
1、需求
2、新建转换,步骤同上
3、构建kettle流程图
4、执行转换
5、结果查询,目标表数据已经更新和插入
五、switch/case组件
1、需求
2、构建流程图
3、配置组件
4、执行
六、SQL脚本组件
1、需求
2、构建kettle流程图
3、配置组件,双击组件
4、保存执行
一、txt文本转换成excel
txt文本内容
id,name,age,gender,province,city,region,phone,birthday,hobby,register_date
392456197008193000,张三,20,0,北京市,昌平区,回龙观,18589407692,1970-8-19,美食;篮球;足球,2018-8-6 9:44
267456198006210000,李四,25,1,河南省,郑州市,郑东新区,18681109672,1980-6-21,音乐;阅读;旅游,2017-4-7 9:14
892456199007203000,王五,24,1,湖北省,武汉市,汉阳区,18798009102,1990-7-20,写代码;读代码;算法,2016-6-8 7:34
492456198712198000,赵六,26,2,陕西省,西安市,莲湖区,18189189195,1987-12-19,购物;旅游,2016-1-9 19:15
392456197008193000,张三,20,0,北京市,昌平区,回龙观,18589407692,1970-8-19,美食;篮球;足球,2018-8-6 9:44
392456197008193000,张三,20,0,北京市,昌平区,回龙观,18589407692,1970-8-19,美食;篮球;足球,2018-8-6 9:44
1、新建、转换
然后将需要的转换方式拖拽到右侧面板并运行即可完成转换
2、构建流程图
(1)将左边的核心对象中的输入文件夹下的文本文件输入 拖拽到中间空白区域。
(2)从输出文件夹中将Excel输出 组件拖拽到中间空白区域。
(3)按住Shift键点击 文本文件输入组件,移动鼠标到Excel输出,然后释放鼠标,这样就可以将两个组件连接到一起。
3、配置数据流图中的各个组件
现在数据流的转换方式与转换方向已经确定,接下来要做的就是,配置每个组件,微调参数。
3.1、配置文件文本输入组件
(1)双击文本文件输入组件,在弹出窗口中点击「浏览」按钮。选择要转换的文本文件。
(2)点击「增加」按钮,将文件加入到要抽取的数据中来。注意:不点添加按钮,将不会抽取数据。
(3)点击「内容」选项卡,将分隔符修改为逗号(注意是英文状态的逗号),将编码方式修改为:UTF-8。
(4)点击「字段」选项卡,再点击「获取字段」按钮,可以读取到txt文件中的所有字段。获取完也可以预览。点确定保存。
3.2、 配置Excel输出组件
(1)双击 Excel输出组件,在弹出窗口中点击「浏览」按钮。我先暂时保存到桌面。然后点击确定。记得把扩展名删除
(2)点击「字段」选项卡,获取字段,将age的格式设置为0,表示只输出不带小数点的数字。然后点击确定。
4、保存执行
(1)点击工具条上方的保存按钮,或者按快捷键Ctrl + s。
(2)点击工具栏上的播放按钮启动执行。点击启动
也会有日志输出
执行结果,如果执行结果表中,长数字有逗号分隔的话,在双击表输出,【字段】 格式那一列,调整格式即可
二、excel转换成mysql
表格就按照我们刚才转换的表格来转换成MySQL数据
(1)在MySQL数据库中创建数据库,这个根据自身情况。我就在现有test库中测试了。
(2)根据以上步骤,新建转换。
(3)构建流程图,选择excel输入和表输出
(4)将两个组件连接起来
(5)双击表输入,文件选择源文件的位置,然后点击增加,在点击【工作表】,获取工作表名称,把标签移到右边
(6)点击「字段」选项卡,点击「获取来自头部数据的字段...」按钮,Kettle会从Excel中读取第一行字段名称。
(7)将 age 字段的格式设置为#,register_date的格式设置为 yyyy-MM-dd HH:mm:ss。
(8)点击「预览记录」按钮查看抽取到的数据。如果数据格式有我呢提,在调整格式
(9)点击「确定」按钮并保存。
(10)配置MySQL组件,双击表输出组件
数据库连接这里 点击新建连接,配置数据库连接信息,点击测试连接,看是否成功,如果报错,看是否世缺少jdbc的驱动,去MySQL官网下载对应的驱动即可。
(11)输入目标表的名称为:user,后续Kettle将在MySQL中创建一张名为 user 的表格。
(12)点击下方的「SQL」按钮,可以看到Kettle会自动帮助我们生成MySQL创建表的SQL语句,
我们将age和gender字段的数据类型改为INT类型。并点击执行按钮,会自动在MySQL数据库中创建该表。可以去数据库验证下。执行完之后,点击确定并保存组件信息。
(13)保存并执行转换
(14)查看数据,由于ID 数据过大,需要把属性换成 bigint
三、 MySQL表之间转换
1、共享数据库连接
在后续的Kettle中,我们需要多次用到上面的数据库连接。在Kettle中,可以将一个数据库共享,这样其他的Kettle转换就都可以复用该数据库连接了。
(1)在转换中,点击「主对象树」,点击[DB连接]右键新建数据库连接(如果连接已经存在,则无需创建)
(2)右键单击需要的数据库连接,选择「共享」
(3)发现刚刚选择的数据库连接已经变成黑体字,说明已经共享成功。
2、需求:将user表中的数据,转换到user1表中
3、新建转换
4、构建kettle流程图
(1)从核心对象的输入组件中,将「表输入」、「表输出」组件拖拽到中间的空白处。
(2)安装Shift键,并鼠标左键点击表输入组件,并拉动鼠标,移动到表输出组件,松开鼠标。
5、配置Kettle数据流图中的组件
(1)双击表输入组件,在弹出对话框中选择「获取SQL查询语句」。选择要转换的表。点击否
(2)点击「预览」按钮,查看是否能够从MySQL读取数据。
(3)双击表输出组件,在目标表输入t_user1,点击SQL按钮,会自动生成sql创建表语句,然后执行。
(4)保存转换,并启动。
(5)查询数据库,user表中的数据已经同步过来了。因为我加了筛选条件,所以只有张三的数据被同步了。
四、插入和更新组件
插入/更新组件能够将Kettle抽取的数据,与某个表的数据进行对比,如果数据存在就更新,不存在就插入。
1、需求
修改 user中的张三这一行数据,修改 age 为 30。如果想插入指定的数据,只能通过表输出组件
2、新建转换,步骤同上
3、构建kettle流程图
1、选择一个表输入、表输出组件,将两个组件连接
2、配置流程图中的表输入组件,如上2.5.1步骤
3、双击 插入/更新 组件,在目标表,点击浏览按钮,找到user1表。
4、添加用来查询的关键字,并获取和更新字段,确定,保存
原表:
目标表:
4、执行转换
5、结果查询,目标表数据已经更新和插入
五、switch/case组件
kettle中提供了一种实现判断的组件叫做switch/case。
1、需求
从 user 表中读取所有用户数据,将性别为男的用户导出到一个Excel、性别为女的导出到另外一个Excel。
2、构建流程图
(1)将表输入组件拖拽到中间的空白区域。
(2)从流程文件夹中将 Switch/case 组件拖拽到中间的空白区域。
(3)再分别拖入两个Excel输出组件。
(4)按住shift键,将组件按照下图方式连接起来。
3、配置组件
(1)配置表输入组件
双击表输入组件,点击获取sql查询。
(2)配置switch/case组件
此处要指定,按照性别来判断输出到Excel文件。需要设置 Switch字段为gender,在Case值列表中将值分别改为男、女。如果gender是男的话,则将数据装载到 Excel输出 - 男,如果gender是女的话,将数据装载到 Excel输出 - 女。
(3)配置Excel输出组件
双击Excel输出组件,分别指定输出到指定的文件夹中。两个输出组件操作相同。
(4)配置完成之后,保存,
4、执行
执行结果就能看出来,已经转换到表中
六、SQL脚本组件
执行SQL脚本组件,可以让Kettle执行一段SQL脚本。我们可以利用它来自动执行某些操作。
1、需求
使用Kettle执行SQL脚本,将 user1 表中的数据清空。
2、构建kettle流程图
我们在核心对象中,将脚本文件夹下的【执行SQL脚本】拖拽到右侧的空白中,如图所示:
3、配置组件,双击组件
我们要将 t_user1 表中的数据清空,所以脚本中要执行的语句如下:
TRUNCATE TABLE t_user1;
4、保存执行