数据仓库之电商数仓-- 2、业务数据采集平台

目录

-----------------------------------------------------分隔符-----------------------------------------------------
数据仓库之电商数仓-- 1、用户行为数据采集==>
数据仓库之电商数仓-- 2、业务数据采集平台==>
数据仓库之电商数仓-- 3.1、电商数据仓库系统(DIM层、ODS层、DWD层)==>
数据仓库之电商数仓-- 3.2、电商数据仓库系统(DWS层)==>
数据仓库之电商数仓-- 3.3、电商数据仓库系统(DWT层)==>
数据仓库之电商数仓-- 3.4、电商数据仓库系统(ADS层)==>
数据仓库之电商数仓-- 4、可视化报表Superset==>
数据仓库之电商数仓-- 5、即席查询Kylin==>

一、电商业务简介

1.1 电商业务流程

电商的业务流程可以以一个普通用户的浏览足迹为例进行说明,用户点开电商首页开始浏览,可能会通过分类查询也可能通过全文搜索寻找自己中意的商品,这些商品无疑都是存储在后台的管理系统中的。

当用户寻找到自己中意的商品,可能会想要购买,将商品添加到购物车后发现需要登录, 登录后对商品进行结算,这时候购物车的管理和商品订单信息的生成都会对业务数据库产生影响,会生成相应的订单数据支付数据

订单正式生成之后,还会对订单进行跟踪处理,直到订单全部完成
电商的主要业务流程包括用户前台浏览商品时的商品详情的管理,用户商品加入购物车进行支付时用户个人中心&支付服务的管理,用户支付完成后订单后台服务的管理,这些流程涉及到了十几个甚至几十个业务数据表,甚至更多。

在这里插入图片描述

1.2 电商常识(SKU、SPU)

SKU=StockKeepingUni(t 库存量基本单位) : 现在已经被引申为产品统一编号的简称, 每种产品均对应有唯一的 SKU 号。
SPU(Standard Product Unit): 是商品信息聚合的最小单位,是一组可复用、易检索的 标准化信息集合。

例如:iPhoneX 手机就是 SPU。一台银色、128G 内存的、支持联通网络的 iPhoneX,就 是 SKU。

tips:
简单来说,SKU、SPU都是指一类产品;SPU表示商品名称、型号相同的一类商品;SKU是指商品名称、型号、各个参数属性也相同的一类商品。
SPU 表示一类商品。好处就是:可以共用商品图片,海报、销售属性等。

1.3 电商系统表结构

本电商数仓系统涉及到的业务数据表结构关系共 34 个表,以订单表、用户表、SKU 商品表、活动表和优惠券表为中心,延伸出了优惠券领用表、支付流水表、活动订单表、订单 详情表、订单状态表、商品评论表、编码字典表退单表、SPU 商品表等,用户表提供用户的详细信息,支付流水表提供该订单的支付详情,订单详情表提供订单的商品数量等情况,商品表给订单详情表提供商品的详细信息。

电商业务表
在这里插入图片描述

后台管理系统
在这里插入图片描述

1.3.1 活动信息表(activity_info)

在这里插入图片描述

1.3.2 活动规则表(activity_rule)

在这里插入图片描述

1.3.3 活动商品关联表(activity_sku)

在这里插入图片描述

1.3.4 平台属性表(base_attr_info)

在这里插入图片描述

1.3.5 平台属性值表(base_attr_value)

在这里插入图片描述

1.3.6 商品一级分类表(base_category1)

在这里插入图片描述

1.3.7 二级分类表(base_category2)

在这里插入图片描述

1.3.8 三级分类表(base_category3)

在这里插入图片描述

1.3.9 字典表(base_dic)

在这里插入图片描述

1.3.10 省份表(base_province)

在这里插入图片描述

1.3.11 地区表(base_region)

在这里插入图片描述

1.3.12 品牌表(base_trademark)

在这里插入图片描述

1.3.13 购物车表(cart_info)

在这里插入图片描述

1.3.14 评价表(comment_info)

在这里插入图片描述

1.3.15 优惠券信息表(coupon_info)

在这里插入图片描述

1.3.16 优惠券优惠范围表(coupon_range)

在这里插入图片描述

1.3.17 优惠券领用表(coupon_use)

在这里插入图片描述

1.3.18 收藏表(favor_info)

在这里插入图片描述

1.3.19 订单明细表(order_detail)

在这里插入图片描述

1.3.20 订单明细活动关联表(order_detail_activity)

在这里插入图片描述

1.3.21 订单明细优惠券关联表(order_detail_coupon)

在这里插入图片描述

1.3.22 订单表(order_info)

在这里插入图片描述

1.3.23 退单表(order_refund_info)

在这里插入图片描述

1.3.24 订单状态流水表(order_status_log)

在这里插入图片描述

1.3.25 支付表(payment_info)

在这里插入图片描述

1.3.26 退款表(refund_payment)

在这里插入图片描述

1.3.27 SKU平台属性表(sku_attr_info)

在这里插入图片描述

1.3.28 SKU信息表(sku_info)

在这里插入图片描述

1.3.29 SKU销售属性表(sku_sale_attr_value)

在这里插入图片描述

1.3.30 SPU信息表(spu_info)

在这里插入图片描述

1.3.31 SPU销售属性表(spu_sale_attr)

在这里插入图片描述

1.3.32 SPU销售属性值表(spu_sale_attr_value)

在这里插入图片描述

1.3.33 用户地址表(user_address)

在这里插入图片描述

1.3.34 用户信息表(user_info)

在这里插入图片描述

二、业务数据采集模块

2.1 MySQL安装

2.1.1 安装MySQL

  1. 如图,将安装包和JDBC驱动上传到/opt/software/mysql:
    在这里插入图片描述
  2. 卸载自带的Mysql-libs
[xiaobai@hadoop102 mysql]$ rpm -qa | grep -i -E mysql\ | mariadb | xargs =-n1 sudo rpm -e --nodeps

tips: 查询自带的rpm包 -i忽略大小写 -E正则表达式查询 mysql/mariadb; xargs=-n1 表示将上一个命令的输出作为下一个命令sudo rpm -e --nodeps的输入。

若是遇到一些很难删除掉的MySQL戳这里==>

  1. 安装MySQL依赖:
[xiaobai@hadoop102 mysql]$ sudo rpm -ivh 01_mysql-community-common-5.7.16-1.el7.x86_64.rpm 
[xiaobai@hadoop102 mysql]$ sudo rpm -ivh 02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm 
[xiaobai@hadoop102 mysql]$ sudo rpm -ivh 03_mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm 
  1. 安装mysql-client:
[xiaobai@hadoop102 mysql]$ sudo rpm -ivh 04_mysql-community-client-5.7.16-1.el7.x86_64.rpm 
  1. 安装mysql-server:
[xiaobai@hadoop102 mysql]$ sudo rpm -ivh 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm 

注⚠️:
若是报以下错误,是由于yum安装了旧版本的GPG keys造成的,从rpm版本4.1后,在安装或升级软件包时会自动检查软件包的签名。
在这里插入图片描述
解决方法: 在安装包命令后加上--force --nodeps

[xiaobai@hadoop102 mysql]$ sudo rpm -ivh 02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm --force --nodeps
  1. 启动MySQL:
[xiaobai@hadoop102 mysql]$ sudo systemctl start mysqld
  1. 查看MySQL密码:
[xiaobai@hadoop102 mysql]$ sudo cat /var/log/mysqld.log | grep password

在这里插入图片描述

2.1.2 配置MySQL

注⚠️:
配置只要是root用户 + 密码,在任何主机上都可以登录MySQL数据库。

  1. 用刚查询到的密码进入MySQL:

使用此方法进不去mysql,提示ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost错误的请戳这里==>

  1. 设置复杂密码(MySQL密码策略):
mysql> set password=password("H232%sd=55");
  1. 更改MySQL密码策略:
mysql> set global validate_password_length=4;
mysql> set global validate_password_policy=0;
  1. 设置自己的密码:
mysql> set password=password("******");
  1. 进入MySQL库:
mysql> use mysql
  1. 查询user表:
mysql> select user, host from user;
+-----------+-----------+
| user      | host      |
+-----------+-----------+
| mysql.sys | localhost |
| root      | localhost |
+-----------+-----------+
2 rows in set (0.00 sec)
  1. 修改user表,把Host表内容修改为%:
mysql> update user set host="%" where user="root";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select user,host from user;
+-----------+-----------+
| user      | host      |
+-----------+-----------+
| root      | %         |
| mysql.sys | localhost |
+-----------+-----------+
2 rows in set (0.00 sec)
  1. 刷新:
mysql> flush privileges;
  1. 退出:
mysql> quit

2.2 业务数据生成

2.2.1 连接MySQL

通过Navicat Premium连接MySQL数据库,可先点击连接测试进行测试:
在这里插入图片描述

2.2.2 建表语句

  1. 通过 Navicat 创建数据库 gmall

  2. 如图,设置数据库编码: 默认字符集设为utf8,默认排序规则设为utf8_general_ci
    在这里插入图片描述

  3. 导入数据库结构脚本(gmall.sql):打开数据库–>运行sql文件–>gmall.sql–>开始:
    注⚠️:编码选择utf-8;
    在这里插入图片描述

  4. 如图,右键点击‘表’ 进行‘刷新’即可看见数据库中的表:
    请添加图片描述

2.2.3 生成业务数据

  1. 在 hadoop102 的/opt/module/目录下创建 db_log 文件夹:
[xiaobai@hadoop102 module]$ mkdir db_log/
  1. 将业务数据生成器以及配置文件 gmall2020-mock-db-2021-01-22.jarapplication.properties 上传到 hadoop102 的 /opt/module/db_log 路径上;
    在这里插入图片描述

  2. 根据需求修改 application.properties 相关配置:

logging.level.root=info


spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://hadoop102:3306/gmall?characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=记得修改密码!

logging.pattern.console=%m%n


mybatis-plus.global-config.db-config.field-strategy=not_null


#业务日期
mock.date=2020-06-14
#是否重置     注意:第一次执行必须设置为1,后续不需要重置不用设置为1
mock.clear=1
#是否重置用户 注意:第一次执行必须设置为1,后续不需要重置不用设置为1
mock.clear.user=1

#生成新用户数量
mock.user.count=100
#男性比例
mock.user.male-rate=20
#用户数据变化概率
mock.user.update-rate:20

#收藏取消比例
mock.favor.cancel-rate=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值