t_br002
表中的数据通过前面的文章中我们对kettle
这把“壶” 做了简单介绍,并对“壶” 里能装些啥也具体说了下。
大家应该对kettle
这把壶有了整体的认知,本篇文章我们就来说一说kettle
这壶 通过对各种数据加工后,
能倒出来什么?
启动kettle
在 新建转换-->核心对象-->输出 中我们能看到经过各种加工后也是能倒出来各种五花八门的数据。
具体的可以参照下面截图
-- kettle 加工出来的 | -- kettle 加工出来的 |
---|---|
一眼看过去很多都能见名知意,文章不一一介绍每个输出控件,我们只挑其中常用控件进行说明。
说明: 前面的文章中,我们没有具体说哪个输入对应着哪个输出,而是分别介绍了常用输入。
因为输入控件 可以和输出控件 进行自由搭配,只要你喜欢就可以进行 Excel输入-->表输出、Excel输入-->插入/更新、
文本文件输入-->表输出 等等 各种自由搭配
今天为了方便,我们大部分就以表输入 作为输入来一一说明输出控件。
表输入配置如下,在配置表之前我们需要配置DB连接(这个在之前文章中说过这里不再赘述)
我们可以将MySQL表中的数据转换成Access输出
-- 生成新的Access文件 | -- |
---|---|
细心的小伙伴可能会发现在输出控件中又两个Excel输出,一个是Excel输出,另一个是Microsoft Excel输出。
它们的区别就是Excel输出只能输出xls文件(适合Excel2003),Microsoft Excel输出可以输出xls和xlsx文件(适合Excel2007及以后)
--Excel输出 | --Microsoft Excel输出 |
---|---|
-- 新建转换 | -- 生成文件 |
---|---|
json文件我们之前也说过了,这小节我们要做的就是将MySQL里的数据转换成json文件
-- json输出路径设置 | -- 获取字段 |
---|---|
-- 生成文件 | -- 文件内容 |
---|---|
将表中的数据转换为sql备份文件
-- 一般设置 | -- 内容设置 |
---|---|
-- 生成文件 | -- 备份文件内容 |
---|---|
表输出控件可以将kettle数据行中的数据直接写入到数据库中的表
-- 表输出设置 | -- 创建表 |
---|---|
-- 上一步中点击执行后创建了新表 | --新表中插入了数据 |
---|---|
注意: 这里有个小坑,如果表字段中包含中文可能会出现乱码。我们需要做如下设置
-- ①点击编辑 | -- ② 设置编码 |
---|---|
删除控件可以删除数据库表中指定条件的数据,般用此控件做数据库表数据删除或者跟另外一个表数据做对比,然后进行去重的操作
接下来我们根据bookid 进行比较,删除目标表t_books_bak
中id在 t_books
中的数据
-- t_books | -- t_books_bak |
---|---|
从表中数据我们可以看出 bookid
相同的是 10001,10002,10005 这三条数据
更新是将数据库表中的数据和数据流中的数据做对比,如果不同就更新,如果数据流中的数据比数据库表中的数据多,那么就报错。
我们准备两张表的数据
-- t_br001 | -- t_br002 |
---|---|
-- 表输入设置 | -- 更新设置 |
---|---|
t_br002
表中的数据注意: 如果数据流中的数据比数据库表中的数据多,如下图所示
-- t_br001 | -- t_br002 |
---|---|
由于更新控件在数据不对等的情况下会报错,所以下一小节中 插入/更新 输出控件做了优化
根据条件对数据流和数据库表中的数据进行比较,如果不同就更新,如果数据流中的数据比数据库表中的数据多,就插入
我们就以上一节中的两个表为例子,来进行插入/更新
-- t_br001 | -- t_br002 |
---|---|
-- 表输入设置 | -- |
---|---|
转换完成后,我们发现
t_br002
表中根据id比较后更新了一条数据,插入了一条数据
将数据输出成文本的控件,我们发现输出控件中没有csv输出控件,其实csv是逗号分隔符的一种文本文件
本小节我们就根据表输入转换输出为txt,csv 文件
-- csv文本文件设置 | -- csv文本文件设置分隔符 |
---|---|
-- txt 文本文件设置 | -- |
---|---|
-- | -- | |
---|---|---|
本小节我们将表中数据转换为xml文件
-- | -- |
---|---|
-- 生成xml文件 | -- xml内容 |
---|---|
本期内容介绍了kettle 的各种输出控件 ,希望对你有所帮助,本期内容就到这,我们下期再见 (●'◡'●)