1.CSV文件转换为excel文件

选择文件-新建-转换
crtl+s 保存,给这个转换起个名字

在输入中选择CSV文件输入
在输出中选择excel文件输出
点击CSV文件输入-按住shift-拖动鼠标到excel输出就可以了

双击CSV文件输入
输入你的步骤名称
选择浏览,找出你要转换的CSV文件
点击获取字段,可以看到你CSV文件中的内容
点击确定后点击excel输出
点击浏览
选择你要输出文件的位置
给excel起个文件名字
点击字段
点击获取字段
然后点击运行
去输出文件中去查看,三列字段的精度有些问题
然后去excel输出中点击字段
把格式调整为如下;
重新运行,然后再去excel输出中查看,问题已经解决

2.文本文件转换为excel文件

先点击文本文件输入的浏览,再点击增加
点击内容中的分隔符,确认文本文件中的分隔符和内容中的分隔符是否一致
点击字段中的获取字段,查看内容是否正确
然后excel输出就类似了,点击浏览,获取字段------

3.excel文件转换为excel文件

先看你的excel文件是xls还是xlsx结尾的
然后选择表格类型,在浏览表格,点击增加
点击字段,点击获取字段
这么多字段的原因是源文件中有两个sheet页
删除下面的sheet页中的字段即可

4.excel文件转换为excel文件(多文件合并)

源文件是这样的
1.
2.
3.这两个文件的路径
开始合并操作
选择浏览最外层的文件,然后点击增加
然后文件的位置写到最外层文件的位置
通配符写法是几个文件通用的地方写好加上*号
是否包含子目录:这个非常重要,选择是,实际开发中文件肯定是存在多个目录下的
输出的时候参考上面的excel输出即可

5.get data from xml文件转换为excel文件

需求:获取testDescription、rowID、v1、v2
分析:testDescription、rowID是属性,v1、v2是节点
源文件如下;

<?xml version="1.0" encoding="UTF-8"?>
<AllRows testDescription="1 - simple functionality test">
<Rows rowID="1">first row chunk of data<Row><v1>1.1.1</v1><v2>1.1.2</v2></Row><Row><v1>1.2.1</v1><v2>1.2.2</v2></Row>
</Rows>
<Rows rowID="2">second row chunk of data<Row><v1>2.1.1</v1><v2>2.1.2</v2></Row><Row><v1>2.2.1</v1><v2>2.2.2</v2></Row>
</Rows>
<Rows rowID="3">third row chunk of data<Row><v1>3.1.1</v1><v2>3.1.2</v2></Row><Row><v1>3.2.1</v1><v2>3.2.2</v2></Row>
</Rows>
</AllRows>

点击浏览,点击增加
这里填写的非常重要
先填写读取的文件的路径
然后填写节点或者属性的路径

后面输出到excel中不做介绍了

6.json文件转换为excel文件

需求:从json文件中提取id、field和value数据到excel
源数据:

{"status": "ok","response": {"submissions": [{"id": "59434767","timestamp": "2011-11-21 09:21:53","user_agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0","remote_addr": "192.168.1.1","payment_status": "","data": [{"field": "13776121","value": "Baylor Dallas"},{"field": "13776401","value": "CHF"},{"field": "13777966","value": "John Doe"},{"field": "13780027","value": "9999"},{"field": "13778165","value": "None of the above"},{"field": "13778985","value": "Yes"},{"field": "13778280","value": "Yes"},{"field": "13778424","value": "Yes"},{"field": "13778290","value": "Yes"},{"field": "13778324","value": "Yes"},{"field": "13778864","value": "Yes"}]},{"id": "59474875","timestamp": "2011-11-21 17:01:22","user_agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0","remote_addr": "192.168.1.1","payment_status": "","data": [{"field": "13776121","value": "Healthsouth,"},{"field": "13776401","value": "Pneumonia"},{"field": "13777966","value": "Jane Doe"},{"field": "13780027","value": "390"},{"field": "13778165","value": "Experienced a fall?"},{"field": "13861153","value": "Yes"},{"field": "13780018","value": "Yes"},{"field": "13780006","value": "No"},{"field": "13780023","value": "Yes"},{"field": "13780024","value": "Yes"}]}],"total": 2,"pages": 1}
}

需要分两步走:
第一步:获取data
第二步:从data中获取field和value

点击浏览,点击增加
填写字段相关内容如下;
第二个json输入是从第一个中的字段中获取的,所以这么写
填写字段
输出到excel不做介绍了

7.生成记录

需求:生成10000条数据

8.表输入

需求:从MySQL数据库的wzx库的user表数据导入到excel中
前提是先把连接MySQL的jar包放到kettle的\data-integration\lib目录下
点击新建:填写相关的MySQL的相关信息,然后点击测试按钮
点击测试后,显示如下,测试通过
注意:MySQL的jar包的版本要和你安装的MySQL的版本相对应
点击获取SQL查询语句

EXCEL输出

1.表输入到excel和microExcel中

当我们画箭头到第二个excel时,会弹出如下,默认是选择分发,这里我们选择复制

2.表输入到文本文件txt和csv中

3.共享MySQL数据库

右键这个MySQL,选择共享即可

4.SQL文件输出

SQL文件输出其实就是导出数据库表的结构和数据
在sql文件输出中填写下面的内容即可,根据自己的需求决定是选择建表语句还是清空表的语句

5.表输出

excel输入和表输出
在表输出中先选择一个数据库,在选择一张表,如果表不存在的话就点击sql,可以新建一张表
然后选择指定数据库字段

6.更新

当更新的时候,如果数据量不一致,会报错,选择忽略查询失败会正常执行
获取字段是选择根据哪个字段进行更新
获取更新字段是决定要更新哪些字段
如果

7.插入更新

跟更新一样,就是选择的图标不一样

8.删除

输入为自定义常量
删除中执行数据库和数据库的表,还有根据谁来进行删除

kettle转换控件

1.concat fields

如下图所示;
点击concat fields,先定义一下新字段的名字,再定义一下拼接符就可以了

2.值映射

系统1:1-男 2-女
系统2:f-男 m-女
数据仓库统一为 female-男 male-女

3.增加常量

表中新增一列,是常数列

4.增加序列

增加一列,字段名称为id,起始值为1,每步为1

5.字段选择

把id改成key
把age的列进行删除

6.计算器

计算两列的和,根据自己的业务选择即可

7.字符串的剪切、替换、操作

源文件是这样的
剪切字符串
字符串替换
字符串操作
去除左右两边的空格,并且变成大写
输出结果如下;

8.去除重复记录

注意:去除重复记录时,需要先对数据进行排序
源文件如下
先排序
去除重复记录
最后输出如下;

9.唯一行(哈希值)

注意:唯一行(哈希值)的执行效果和上面的是一样的,但是效率要高于上面的

10.拆分字段

拆分name字段为lastname和firstname,以空格进行分隔

11.列拆分为多行

12.列转行

注意:列转行也是需要先进行排序
从excel中读取数据,按照姓名进行分组,把星期,工作小时从列转为行,并保存在excel中
源文件如下;
填写如下;

13.行转列

源数据
填写数据如下;

14.行扁平化

注意:最好先做一个排序操作
源数据
填写数据如下

应用控件

1.替换NULL值

2.写日志

看输出结果如下;

kettle流程控件

1.switch case

需求:把sex字段为1、0、2的分别输出到三个文件中
填写如下,
填写的步骤,先填写excel输入,再填写excel输出,最后填写switch case

2.过滤记录

源数据

填写如下

3.空操作
4.终止

一般用来校验数据是否为空

kettle查询控件

1.数据库查询

需求:从employees表中读取数据,根据dep_id从departments表获取dep_name,保存到excel中


数据库查询中填写如下;

2.数据库连接

需求:从departments表中读取数据,连接到另外一个数据库的employees,把数据保存到excel中

注意:下面的SQL是手动写的

3.流查询

流查询是在查询前把数据都加载到内存中,并且只能进行等值查询

kettle连接控件

1.合并记录

合并记录是用于将两个不同来源的数据合并,这两个来源的数据分别为旧数据和新数据,该步骤将旧数据和新数据按照指定的关键字匹配、比较、合并
标志字段:identical-旧数据和新数据一样
changed-数据发生了变化
new-新数据中有而旧数据中没有记录
deleted-旧数据中有而新数据中没有

关键字段:用于定位两个数据源中的同一条记录
注意:
1.旧数据和新数据需要事先按照关键字段排序
2.旧数据和新数据要有相同的字段名称

2.记录关联(笛卡尔积输出)

3.记录集连接

记录集连接就像数据库的左连接、右连接、内连接、外连接

kettle统计

分组

注意:分组之前需要先进行排序

kettle映射

映射是用来定义子转换,便于封装和重用
需求:从t_orders表中获取数据,根据u_id查询t_user表,获取用户的信息,并把数据保存到excel中

先写上注释,在输入规范中填写如下;
数据库查询中填写如下;

然后再这个转换中把上面的子转换保存的路径选上

kettle软件的使用相关推荐

  1. 数据交互极速体验-KETTLE的上手指南

    Kettle是目前市场上最流行的开源ETL工具. ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装载的过程), 对于企业或行业应用,特别是对于我们公司来说,拥有大量的数 ...

  2. Kettle日常使用汇总整理

    Kettle日常使用汇总整理 Kettle源码下载地址: https://github.com/pentaho/pentaho-kettle Kettle软件下载地址: https://sourcef ...

  3. [目录]Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案

    第一部分:开始 1         ETL入门 1.1   OLTP和数据仓库对比 1.2   ETL是什么 1.2.1          ETL解决方案的演化过程 1.2.2          ET ...

  4. kettle的基本介绍

    Kettle 主要内容: 一.ETL介绍 二.Kettle介绍 三.Java调用Kettle API 一.ETL介绍 1. ETL是什么? 1).ETL分别是"Extract".& ...

  5. 三十九、ETL工具Kettle基础使用

    1. Kettle工具介绍 Kettle是一款国外开源的ETL工具,纯Java编写,开业在Windows.Linux.Unix上运行,可以高效稳定的完成数据抽取. Kettle中文名叫水壶,该项目的主 ...

  6. 开源ETL软件在智能化集成系统中的应用

    来源:http://www.qianjia.com/html/2009-03/57084.html 摘要:提出了在智能化集成系统中通过开源ETL软件Kettle对数据库类型的子系统进行信息采集的方案, ...

  7. Kettle本机编译

    Kettle本机编译 首先开源软件的编译对我来说永远就是一个恶梦.非常的恶心. 为什么?我不知道mvn.ant这些东西有什么好.而且java的程序为什么一定要jar包拷来拷去的?你不知道中国的网络很慢 ...

  8. kettle优化之提高MySQL读写速度

    1.背景 背景:在mysql数据库中进行数据迁移(表之间迁移,字段转换),发现表的数据量大的时候,kettle对表的读写操作的速度很慢,并且是达到一定数据量以后速度会特别慢,数据量小的时候读的速度是很 ...

  9. CentOS 指令运行 kettle 实现数据迁移

    CentOS 指令运行 kettle 实现数据迁移 Kettle spoon.bat Windows使用步骤 转换 作业 Linux使用步骤 配置环境 运行 Spoon 的装换和作业 在Linux上运 ...

  10. ETL工具Kettle简介和安装配置基本使用

    什么是Kettle Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,绿色无需安装,数据抽取高效稳定. Kettle 中文名称叫水壶,该项目的主程 ...

最新文章

  1. 新站长更要努力做好SEO相关的优化
  2. MATLAB中深度学习的数据集合
  3. Leetcode 54 螺旋矩阵 (每日一题 20210729)
  4. 第九章 组合模型在信贷风控中的应用
  5. 不安装游戏apk直接启动法
  6. Preparedstatement和statement 区别
  7. Hive大数据-Hive的安装与启动---大数据之Hive工作笔记0005
  8. java接口的作用和意义_java什么是接口?接口有什么作用?接口如何使用?
  9. this.value和$(this).val()的区别
  10. Python变量:声明,连接,全局和本地
  11. 使用VS2017和Qt编译OpenCV
  12. html怎么设置文字居中对齐
  13. 12306验证码的一些思考
  14. qq2018旧版本7.3.1下载_QQ旧版本2018下载
  15. 复盘2020年全球医疗行业:新冠疫苗争分夺秒、跨国药企押注中国、药企整合并购不断 | 医药观察...
  16. 时间序列预测方法最全总结!
  17. S型加减速程序,C++,PLC,AGV
  18. 细说http状态码之301,304
  19. 答题卡的计分方式_如何建立信用风险模型和记分卡
  20. 思岚科技邀你2017日本东京国际机器人展

热门文章

  1. 2022年道路运输企业安全生产管理人员报名考试及道路运输企业安全生产管理人员模拟试题
  2. 用JAVA语言定义一个标准的学生类
  3. [阅读笔记]专访刘毅:阿里巴巴云计算平台运维故障分析与排查
  4. MATLAB计算干旱指标:SPI、SRI、SWAP、DWAAI、EDI等
  5. Qcom ramdump 解析
  6. verilog幂次方_verilog语法实例学习(3)
  7. 对称密钥与非对称密钥
  8. VBA按行读取TXT文本文件
  9. iis 域名无法访问
  10. 人人商城 / 数据库