etl kettle教程_比kettle好用的开源etl

etl kettle教程_比kettle好用的开源etl对于企业或行业应用来说,经常会遇到各种数据的处理,转换,迁移,掌握一种etl工具的使用,必不可少,这里要学习的ETL工具是——Kettle,现在已经更名为PDI

etl kettle教程_比kettle好用的开源etl

目录

一、Kettle介绍

二、Kettle安装、配置

1、下载Kettle

2、解压Kettle

3、双击spoon.bat 启动spoon     启动时间 有点久  耐心等待

三、Kettle入门案例

1、需求 

2、 数据源

3、 具体实现

3.1 拖csv文件输入,Excel输出

3.2  shift 按住 鼠标左键单击 连线

3.3 单击 CSV 输入文件,Excel 输出,设置文件信息 

3.4 启动执行

四、Kettle输入/输出组件

1、输入组件

4.1 JOSN数据文件输入

4.2 表输入

4.3 生成记录

2、输出组件

4.4 文本文件输出

4.5 表输出

4.6 插入更新


一、Kettle介绍


对于企业或行业应用来说,经常会遇到各种数据的处理,转换,迁移,掌握一种etl工具的使用,必不可少,这里要学习的ETL工具是——Kettle,现在已经更名为PDI

  • Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装
  • Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出
  • Kettle允许管理来自不同数据库的数据,提供一个图形化的用户环境来描述想做什么,无需关心怎么做

  etl kettle教程_比kettle好用的开源etl


二、Kettle安装、配置


环境要求:

  • Windows下安装、配置好JDK1.8

1、下载Kettle

  • 资料\安装包\pdi-ce-8.2.0.0-342.zip  

    下载 地址:http://mirror.bit.edu.cn/pentaho/Pentaho%208.2/client-tools/

2、解压Kettle

3、双击spoon.bat 启动spoon     启动时间 有点久  耐心等待

etl kettle教程_比kettle好用的开源etl


三、Kettle入门案例


1、需求 


需求:把数据从CSV文件(ketttle测试数据\用户数据源\user.csv)抽取到 Excel 文件

2、 数据源:


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

3、 具体实现


3.1 拖csv文件输入,Excel输出

etl kettle教程_比kettle好用的开源etl

3.2  shift 按住 鼠标左键单击 连线

etl kettle教程_比kettle好用的开源etl

  连好  线后 选择 主输出步骤  ,此处的 连线为 蓝色, 单击 连线 变为 灰色 就不能执行了

etl kettle教程_比kettle好用的开源etl

3.3 单击 CSV 输入文件,Excel 输出,设置文件信息 

etl kettle教程_比kettle好用的开源etl

etl kettle教程_比kettle好用的开源etl

3.4 启动执行

etl kettle教程_比kettle好用的开源etl

执行完成后显示 转换成功 

etl kettle教程_比kettle好用的开源etl

 查看 输出的文件

   下面的输出的 Excel 表中的数据 和 我们输入的 CSV 文件 字段 的还是 有些出入, 这个要在输入的 数据字段 类型修改即可

etl kettle教程_比kettle好用的开源etl

对 输出到 Excel 表中的 字段类型  进行控制

etl kettle教程_比kettle好用的开源etl

我们 再次查看 输出结果

etl kettle教程_比kettle好用的开源etl


四、Kettle输入/输出组件


1、输入组件


4.1 JOSN数据文件输入

需求: 将 user.json  导入到 Excel 中 

1. user.json 

[
    {
        "id": "392456197008193000",
        "name": "张三",
        "age": 20,
        "gender": 0,
        "province": "北京市",
        "city": "昌平区",
        "region": "回龙观",
        "phone": "18589407692",
        "birthday": "1970-08-19",
        "hobby": "美食;篮球;足球1",
        "register_date": "2018-08-06 09:44:43"
    },
    {
        "id": "267456198006210000",
        "name": "李四",
        "age": 25,
        "gender": 1,
        "province": "河南省",
        "city": "郑州市",
        "region": "郑东新区",
        "phone": "18681109672",
        "birthday": "1980-06-21",
        "hobby": "音乐;阅读;旅游",
        "register_date": "2017-04-07 09:14:13"
    },
    {
        "id": "892456199007203000",
        "name": "王五",
        "age": 24,
        "gender": 1,
        "province": "湖北省",
        "city": "武汉市",
        "region": "汉阳区",
        "phone": "18798009102",
        "birthday": "1990-07-20",
        "hobby": "写代码;读代码;算法",
        "register_date": "2016-06-08 07:34:23"
    },
    {
        "id": "492456198712198000",
        "name": "赵六",
        "age": 26,
        "gender": 2,
        "province": "陕西省",
        "city": "西安市",
        "region": "莲湖区",
        "phone": "18189189195",
        "birthday": "1987-12-19",
        "hobby": "购物;旅游",
        "register_date": "2016-01-09 19:15:53"
    },
    {
        "id": "392456197008193000",
        "name": "张三",
        "age": 20,
        "gender": 0,
        "province": "北京市",
        "city": "昌平区",
        "region": "回龙观",
        "phone": "18589407692",
        "birthday": "1970-08-19",
        "hobby": "美食;篮球;足球1",
        "register_date": "2018-08-06 09:44:43"
    },
    {
        "id": "392456197008193000",
        "name": "张三",
        "age": 20,
        "gender": 0,
        "province": "北京市",
        "city": "昌平区",
        "region": "回龙观",
        "phone": "18589407692",
        "birthday": "1970-08-19",
        "hobby": "美食;篮球;足球1",
        "register_date": "2018-08-06 09:44:43"
    }
	
]

2. 指定JSON 文件数据源 

etl kettle教程_比kettle好用的开源etl

etl kettle教程_比kettle好用的开源etl

json 文件 选择之后,一定要选择字段,  字段 输出可以 自由选择

etl kettle教程_比kettle好用的开源etl

4.2 表输入

需求:将 MySQL 数据库中 user 表 中的数据 抽取到 Excel 文件中

1. 完成  MySQL 和 kettle 整合  ,之后将 kettle 重启

         在 kettle 的 lib  目录 下  添加  jar 包

etl kettle教程_比kettle好用的开源etl

2. 在 MySQL 中 创建 t_user 表

CREATE DATABASE /*!32312 IF NOT EXISTS*/`test` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `test`;

/*Table structure for table `t_user` */

DROP TABLE IF EXISTS `t_user`;

CREATE TABLE `t_user` (
  `id` tinytext,
  `name` tinytext,
  `age` double DEFAULT NULL,
  `gender` double DEFAULT NULL,
  `province` tinytext,
  `city` tinytext,
  `region` tinytext,
  `phone` double DEFAULT NULL,
  `birthday` tinytext,
  `hobby` tinytext,
  `register_date` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

/*Data for the table `t_user` */

insert  into `t_user`(`id`,`name`,`age`,`gender`,`province`,`city`,`region`,`phone`,`birthday`,`hobby`,`register_date`) values ('392456197008193000','张三',20,0,'北京市','昌平区','回龙观',18589407692,'1970-08-19','美食;篮球;足球','2018-08-06 09:44:43'),('267456198006210000','李四',25,1,'河南省','郑州市','郑东新区',18681109672,'1980-06-21','音乐;阅读;旅游','2017-04-07 09:14:13'),('892456199007203000','王五',24,1,'湖北省','武汉市','汉阳区',18798009102,'1990-07-20','写代码;读代码;算法','2016-06-08 07:34:23'),('892456199007203000','赵六',26,2,'陕西省','西安市','莲湖区',18189189195,'1987-12-19','购物;旅游','2016-01-09 19:15:53'),('392456197008193000','张三',20,0,'北京市','昌平区','回龙观',18589407692,'1970-08-19','美食;篮球;足球','2018-08-06 09:44:43'),('392456197008193000','张三',20,0,'北京市','昌平区','回龙观',18589407692,'1970-08-19','美食;篮球;足球','2018-08-06 09:44:43');

3. 配置表输入,新建数据库连接

etl kettle教程_比kettle好用的开源etl

4. 选择  t_user 表,并获取 SQL查询语句

etl kettle教程_比kettle好用的开源etl

5.配置 Excel 输出组件, 指定 Excel输出位置 

etl kettle教程_比kettle好用的开源etl

etl kettle教程_比kettle好用的开源etl

4.3 生成记录

   数据仓库中绝大数的数据都是业务系统生成的动态数据,但是其中一部分维度的数据不是动态的,比如:日期维度。静态 维度数据就可以提前生成。

需求:往 Excel 文件中插入1000条记录:id为1,name为 kangna,age为18

1. 拖入生成记录组件,输出 Excel 组件,配置  生成记录组件

etl kettle教程_比kettle好用的开源etl

查看结果

etl kettle教程_比kettle好用的开源etl

生成记录只能生成空行或者 固定的记录

2、输出组件


4.4 文本文件输出

需求:从mysql数据库的test库的t_user表 抽取数据到文本文件中

   跟 前面的 MySQL 到  Excel 中 差不多。

4.5 表输出

1. JSON 输入配置

etl kettle教程_比kettle好用的开源etl

etl kettle教程_比kettle好用的开源etl

2. 表输出配置

etl kettle教程_比kettle好用的开源etl

表输出的时候,如果表不存在,则 点击 生成 表

etl kettle教程_比kettle好用的开源etl

4.6 插入更新

插入更新就是把数据库已经存在的记录与数据流里面的记录进行比对

  • 如果不同就进行更新
  • 如果记录不存在,则会插入数据删除

需求:从 new_json 表中读数据,并插入或更新到MySQL t_user_1 中

1. 拖 json 输入 组件,配置 插入更新组件

etl kettle教程_比kettle好用的开源etl

2. 选择  以 id  作为  更新查询的 字段

etl kettle教程_比kettle好用的开源etl

etl kettle教程_比kettle好用的开源etl

etl kettle教程_比kettle好用的开源etl

etl kettle教程_比kettle好用的开源etl

谢谢点赞和关注

今天的文章etl kettle教程_比kettle好用的开源etl分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/83257.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注