目录
一些问题(后面会实时更新,如果大家有问题可以问博主,博主解决了会更新上)
1.MySQL下载与安装
下载地址:MySQL :: Download MySQL Community Server
下载完后将zip包解压到自己指定的文件夹下,这里我解压到了D盘,记住自己路径哦
然后设置环境变量
然后在解压缩后的文件夹下创建data文件夹和my.ini配置文件
配置my.ini文件
里面的
basedir = D:\mysql-8.0.30-winx64
datadir = D:\mysql-8.0.30-winx64\data
是你自己的存放目录哈,自己修改
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir = D:\mysql-8.0.30-winx64
# 设置mysql数据库的数据的存放目录
datadir = D:\mysql-8.0.30-winx64\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 创建模式
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
然后以管理员身份打开命令提示符(cmd)
如果之前有过mysql服务(或者以前安装过),先执行以下命令,删除mysql服务
sc delete mysql
依次运行下面命令
C:Windows\system32>mysqld --remove //删除mysql服务
C:Windows\system32>mysqld --install //安装mysql服务
C:Windows\system32>mysqld --initialize //一定要初始化
初始化后,你会看见刚刚空的data文件夹里面生成了如下文件
最后启动mysql服务
C:Windows\system32>net start mysql
服务启动成功
登录mysql
mysql -u root -p
这时候需要输入密码,mysql初始化会有一个密码
然后将密码输入
成功进入,这时候我建议改一改密码,为了方便后面的数据库连接,此时输入以下命令
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
最后输入exit; 推出即可
2.实验内容
某连锁超市为了优化经营管理,拟搭建一个商务智能系统,来帮助企业管理团队更全面、专业的通过数据了解业务况状。目前公司有一个订单数据库,记录了每一笔订单的详细数据,包括以下字段:
【字段名称,订单编号,下单日期,销售点,支付方式,发货日期,物流时限,客户编号,客户名称,客户类型,客户城市,客户省份,客户地区,产品编号,产品名称,产品分类,产品细类,金额,数量,折扣,利润,推销员,是否退货,财政年度】
(注:详细数据类型及样例,请参考附件“orders.sql”)
然而,各部门对数据的关注点不同,且各部门使用数据分析工具对数据的格式要求也不一样。因此,公司委托你开发一个数据转换系统,将订单数据库中的数据按照不同部门的需求进行转换和输出。各部门具体需求如下:
部门名称 | 销售部门 | 物流部门 | 客户关系部门 | 仓储部门 | 售后部门 |
输出字段 | 订单编号 销售点 支付方式 金额 数量 折扣 利润 推销员 | 订单编号 下单日期 发货日期 物流时限 | 订单编号 客户编号 客户名称 客户类型 客户城市 客户省份 客户地区 | 订单编号 产品编号 产品名称 产品分类 产品细类 | 订单编号 产品编号 客户编号 是否退货 金额 |
数据格式 | .xlsx文件 | .json文件 | .csv文件 | .xml文件 | 数据库表 |
命名规则 | 文件名:姓名拼音-当前日期 | 数据库表名:return | |||
输出路径 | 输出文件路径为转换文件的当前目录 | ||||
特殊要求 | 工作表名: 中文姓名 | 所有数据放到1个文件中 | 以逗号作为分隔符 | 以'订单编号'作为节点属性,其它字段作为节点内容 | 只导出[是否退货=1]的数据 数据库表自行创建 |
附件:
答题要求:
任务一:搭建KETTLE项目开发环境
- 在MySQL中创建kettledb数据库和orders表结构及数据
- 在KETTLE SPOON中创建转换工程(KTR), 转换名称为个人姓名
- 在KTR中创建kettledb数据库连接, 数据库连接参数使用变量(命名参数)
任务二:销售数据导入和导出
- 需提供转换步骤设计全图
- 需提供主要转换步骤的关键配置项截图
- 需提供新建数据库表的SQL语句或操作界面截图
- 需提供转换执行结果截图
需提供输出的文件/数据库表内容的截图
2.1 任务一解答:
首先使用Navicat连接MySQL数据库
打开下载的orders.sql文件
然后运行,会多出kettle这个数据库,下面有orders这个表(先刷新一下哈)
此时数据库和相应的表已经创建,我们开始在spoon进行数据库连接
在spoon连接前,需要添加sql连接包到lib文件夹下(如下图所示)
下载地址:MySQL :: Download MySQL Connector/J (Archived Versions)
下载成功后进行解压(建议和你的MySQL版本一致,如果高版本不行,建议下载低版本,有的版本中有两个jar包,有的只有一个)
将这个jar包添加到 你安装kettle的lib文件夹下
然后开始连接spoon
点击文件,然后再点击新建,在点击数据库连接,出现如下页面,然后进行对应配置,因为要求用命名参数配置,这里就设置了一下字符编码=-=(浅更新一下这个点,最先不太理解他的意思,现在大概理解了)
然后新建一个转换,在对其进行保存(在新建里面)
任务一则完成
2.2 任务二解答:
首先把流程搭建一下
然后依次设置
销售部门输入:
Excel 输出:
其他的内容和字段默认即可
物流部门输入:
JSON output:
其余步骤一样,字段默认即可
客户关系部门输入:
文本文件输出:
基本和前面类似,唯一不同的就是内容有点差异
其余默认即可
仓库部门输入:
XML output:
内容默认即可
售后部门输入 :
表输出:
首先需要创建一个表,我们在Navicat中新建一个查询,然后创建return0表
CREATE TABLE return0 (
订单编号 char(14) ,
客户编号 varchar(20) ,
产品编号 char(14) ,
金额 float ,
是否退货 tinyint(1)
);
其中这些字段可在order表中去查看
设置表输出
其余默认
最终运行结果:
一些问题(后面会实时更新,如果大家有问题可以问博主,博主解决了会更新上)
1.net start mysql 无法启动
这时候去查看这个.err文件
较为常见就是这个问题,说你3306的这个端口被占用,这时候打开你的cmd输入,查看你的3306的pid
netstat -aon|findstr 3306
这是pid
然后输入下面命令kill掉这个端口号就行,然后再重新net start mysql即可
taskkill /pid pid号 -t -f