kettle软件的使用

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中

先写上注释,在输入规范中填写如下;
在这里插入图片描述数据库查询中填写如下;
在这里插入图片描述
然后再这个转换中把上面的子转换保存的路径选上
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_38220334/article/details/113794796
今日推荐