赞
踩
目录
3、双击spoon.bat 启动spoon 启动时间 有点久 耐心等待
3.3 单击 CSV 输入文件,Excel 输出,设置文件信息
对于企业或行业应用来说,经常会遇到各种数据的处理,转换,迁移,掌握一种etl工具的使用,必不可少,这里要学习的ETL工具是——Kettle,现在已经更名为PDI。
- Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装
- Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出
- Kettle允许管理来自不同数据库的数据,提供一个图形化的用户环境来描述想做什么,无需关心怎么做
环境要求:
资料\安装包\pdi-ce-8.2.0.0-342.zip
下载 地址:http://mirror.bit.edu.cn/pentaho/Pentaho%208.2/client-tools/
spoon.bat
启动spoon 启动时间 有点久 耐心等待需求:把数据从CSV文件(ketttle测试数据\用户数据源\user.csv)抽取到 Excel 文件
- 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
连好 线后 选择 主输出步骤 ,此处的 连线为 蓝色, 单击 连线 变为 灰色 就不能执行了
执行完成后显示 转换成功
查看 输出的文件
下面的输出的 Excel 表中的数据 和 我们输入的 CSV 文件 字段 的还是 有些出入, 这个要在输入的 数据字段 类型修改即可
对 输出到 Excel 表中的 字段类型 进行控制
我们 再次查看 输出结果
需求: 将 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 文件数据源
json 文件 选择之后,一定要选择字段, 字段 输出可以 自由选择
需求:将 MySQL 数据库中 user 表 中的数据 抽取到 Excel 文件中
1. 完成 MySQL 和 kettle 整合 ,之后将 kettle 重启
在 kettle 的 lib 目录 下 添加 jar 包
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. 配置表输入,新建数据库连接
4. 选择 t_user 表,并获取 SQL查询语句
5.配置 Excel 输出组件, 指定 Excel输出位置
数据仓库中绝大数的数据都是业务系统生成的动态数据,但是其中一部分维度的数据不是动态的,比如:日期维度。静态 维度数据就可以提前生成。
需求:往 Excel 文件中插入1000条记录:id为1,name为 kangna,age为18
1. 拖入生成记录组件,输出 Excel 组件,配置 生成记录组件
查看结果
生成记录只能生成空行或者 固定的记录
需求:从mysql数据库的test库的t_user表 抽取数据到文本文件中
跟 前面的 MySQL 到 Excel 中 差不多。
1. JSON 输入配置
2. 表输出配置
表输出的时候,如果表不存在,则 点击 生成 表
插入更新就是把数据库已经存在的记录与数据流里面的记录进行比对
需求:从 new_json 表中读数据,并插入或更新到MySQL t_user_1 中
1. 拖 json 输入 组件,配置 插入更新组件
2. 选择 以 id 作为 更新查询的 字段
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。