文章目录
一、实验内容
目的: 掌握使用Kettle进行数据导入与导出的方法
主要仪器设备: 计算机、Kettle(PDI)、MySQL数据库
某连锁超市为了优化经营管理,拟搭建一个商务智能系统,来帮助企业管理团队更全面、专业的通过数据了解业务况状。目前公司有一个订单数据库,记录了每一笔订单的详细数据,包括以下字段:
【字段名称,订单编号,下单日期,销售点,支付方式,发货日期,物流时限,客户编号,客户名称,客户类型,客户城市,客户省份,客户地区,产品编号,产品名称,产品分类,产品细类,金额,数量,折扣,利润,推销员,是否退货,财政年度】
然而,各部门对数据的关注点不同,且各部门使用数据分析工具对数据的格式要求也不一样。因此,公司委托你开发一个数据转换系统,将订单数据库中的数据按照不同部门的需求进行转换和输出。各部门具体需求如下:
部门名称 | 销售部门 | 物流部门 | 客户关系部门 | 仓储部门 | 售后部门 |
---|---|---|---|---|---|
输出字段 | 订单编号;销售点;支付方式;金额;数量;折扣;利润;推销员 | 订单编号;下单日期;发货日期;物流时限 | 订单编号;客户编号;客户名称;客户类型;客户城市;客户省份;客户地区 | 订单编号;产品编号;产品名称;产品分类;产品细类 | 订单编号;产品编号;客户编号;是否退货;金额 |
数据格式 | .xlsx文件 | .json文件 | .csv文件 | .xml文件 | 数据库表 |
命名规则 | 文件名:姓名拼音 | 文件名:姓名拼音 | 文件名:姓名拼音 | 文件名:姓名拼音 | 数据库表名:return |
输出路径 | 输出文件路径为转换文件的当前目录 | ||||
特殊要求 | 工作表名: 中文姓名 | 所有数据放到1个文件中 | 以逗号作为分隔符 | 以’订单编号’作为节点属性,其它字段作为节点内容 | 只导出[是否退货=1]的数据数据库表自行创建 |
任务一:搭建KETTLE项目开发环境
(1)在MySQL中创建kettledb数据库和orders表结构及数据
(2)在KTR中创建kettledb数据库连接, 数据库连接参数使用变量(命名参数)
任务二:销售数据导入和导出
(1)需提供转换步骤设计全图
(2)需提供主要转换步骤的关键配置项截图
(3)需提供新建数据库表的SQL语句或操作界面截图
(4)需提供转换执行结果截图
需提供输出的文件/数据库表内容的截图
二、任务一解答
1. 在MySQL中创建kettledb数据库和orders表结构及数据
利用Navicat连接数据库:
订单sql语句:见百度网盘:链接:[https://pan.baidu.com/s/1NbiWzWdm0EfCHBsLn3ucFA]
提取码:12ws
2. 在KETTLE SPOON中创建转换工程(KTR), 转换名称为个人姓名
利用spoon软件进行创建数据库连接:
任务二解答
1.转换设计全图
2. 销售数据表
表输入部分:
输入sql筛选语句:
表输出部分:
输出结果:
3. 物流部门数据表
表输入部分:
表输出部分:
输出结果:
4. 客户关系部门数据表
表输入部分:
表输出部分:
内容字段部分:
输出结果:
5. 仓储部门数据表
表输入部分:
表输出部分:
内容字段部分:
输出结果:
6. 售后部门数据表
退货表return表在navicat创建:
CREATE TABLE returnb (
`订单编号` char(14) ,
`客户编号` varchar(20) ,
`产品编号` char(14) ,
`金额` float ,
`是否退货` tinyint(1)
);
退货表数据加载:
输入部分:
输出部分:
输出结果:
输出文件如下: