一、项目架构要求
1.数据仓库的数据来源为业务数据库(mysql)
2.通过sqoop将mysql中的业务数据导入到大数据平台(hive)
3.通过hive进行数据计算和数据分析形成数据报表
4.再通过sqoop将数据报表导出到mysql
5.使用FineReport制作数据报表
二、项目实现
2.1 初始化脚本
进行数据预置,完成“1.数据仓库的数据来源为业务数据库(mysql)”。
2.1.1 初始化MySQL脚本
在navicat中,远程连接虚拟主机上的MySQL,并且执行以下查询。
-- 设置sql_mode
set sql_mode = 'NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES';
-- 创建数据库mall
create database mall;
-- 切换数据库
use mall;
-- 创建用户信息表
CREATE TABLE t_user_info(
user_id varchar(100) not null,
user_name varchar(100) not null,
sex varchar(10) not null,
age int not null,
country_code varchar(100) not null,
province_code varchar(100) not null,
city_code varchar(100) not null
)DEFAULT CHARSET='utf8';
-- 创建订单表
CREATE TABLE t_sale_order(
sale_id varchar(100) not null,
user_id varchar(100) not null,
goods_id varchar(100) not null,
price int not null,
sale_count int not null,
total_price int not null,
create_time varchar(100) not null
)DEFAULT CHARSET='utf8';
-- 创建商品信息表
CREATE TABLE dim_goods_info(
goods_id varchar(100) not null,
goods_name varchar(100) not null
)DEFAULT CHARSET='utf8';
-- 创建国家信息表
CREATE TABLE dim_country_info(
country_code varchar(100) not null,
country_name varchar(100) not null
)DEFAULT CHARSET='utf8';
-- 创建省份信息表
CREATE TABLE dim_province_info(
province_code varchar(100) not null,
province_name varchar(100) not null,
country_code varchar(100) not null
)DEFAULT CHARSET='utf8';
-- 创建城市信息表
CREATE TABLE dim_city_info(
city_code varchar(100) not null,
city_name varchar(100) not null,
province_code varchar(100) not null
)DEFAULT CHARSET='utf8';
-- 创建用户浏览日志表
CREATE TABLE t_access_log(
log_str varchar(500) not null
)DEFAULT CHARSET='utf8';
-- 创建商品类别表
CREATE TABLE dim_goods_type(
goods_id varchar(100) not null,
type_id varchar(100) not null,
type_name varchar(100) not null
)DEFAULT CHARSET='utf8';
-- 用户信息表插入数据
insert into t_user_info values('c001','王小名','男',22,'86','32','320100');
insert into t_user_info values('c002','李虎','男',40,'86','32','320200');
insert into t_user_info values('c003','韩静','女',26,'86','32','320600');
insert into t_user_info values('c004','董冬','男',35,'86','32','321100');
insert into t_user_info values('c005','张茗','男',21,'86','32','321200');
insert into t_user_info values('c006','张一凡','男',56,'86','32','321300');
insert into t_user_info values('c007','王花','女',20,'86','32','320100');
insert into t_user_info values('c008','刘梦','女',31,'86','32','320600');
insert into t_user_info values('u001','peter','男',30,'1','12','2233');
insert into t_user_info values('u002','rose','女',22,'1','08','2345');
insert into t_user_i