IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 业务数据采集平台 -> 正文阅读

[大数据]业务数据采集平台

业务数据采集平台

电商业务简介

电商业务流程

以用户的浏览足迹为例说明

用户点开电商首页开始浏览,通过分类查询或通过全文搜索寻找自己中意的商品 , 将商品添加到购物车后,对商品进行结算,这时候购物车的管理和商品订单信息的生成都会对业务数据库产生影响,会生成相应的订单数据和支付数据

订单正式生成之后,还会对订单进行跟踪处理,直到订单全部完成

电商的业务流程 : 用户前台浏览商品时的商品详情的管理,用户商品加入购物车进行支付时用户个人中心&支付服务的管理,用户支付完成后订单后台服务的管理

在这里插入图片描述

电商常识

SKU和SPU

SKU (Stock Keeping Unit)(库存量基本单位): 产品统一编号 , 每种产品均对应有唯一的SKU号 , 如 : 一台银色、128G内存的、支持联通网络的iPhoneX

SPU( Standard Product Unit ):是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息集合 , 如 : iPhoneX手机

SPU : 一类商品

同一SPU的商品可以共用 :

  • 商品图片
  • 海报
  • 销售属性

在这里插入图片描述

平台属性和销售属性

平台属性 :

在这里插入图片描述

销售属性 :

在这里插入图片描述

电商业务数据

电商系统表结构

中心 :

  • 订单表 :
  • 用户表 : 用户的详细信息
  • SKU商品表 : 商品的详细信息
  • 活动表
  • 优惠券表

延伸 :

  • 优惠券领用表
  • 支付流水表 : 该订单的支付详情
  • 活动订单表
  • 订单详情表 : 订单的商品数量
  • 订单状态表
  • 商品评论表
  • 编码字典表退单表
  • SPU商品表

电商业务表 :

在这里插入图片描述

后台管理系统 :

在这里插入图片描述

活动信息表(activity_info)

字段名字段说明类型
id活动idbigint(20)
activity_name活动名称varchar(200)
activity_type活动类型(1:满减,2:折扣)varchar(10)
activity_desc活动描述varchar(2000)
start_time开始时间datetime(0)
end_time结束时间datetime(0)
create_time创建时间datetime(0)

活动规则表(activity_rule)

字段名

字段名字段说明类型
id编号int(11)
activity_id活动IDint(11)
activity_type活动类型varchar(20)
condition_amount满减金额decimal(16, 2)
condition_num满减件数bigint(20)
benefit_amount优惠金额decimal(16, 2)
benefit_discount优惠折扣decimal(10, 2)
benefit_level优惠级别bigint(20)

活动商品关联表(activity_sku)

字段名字段说明类型
id编号bigint(20)
activity_id活动 idbigint(20)
sku_idsku_idbigint(20)
create_time创建时间datetime(0)

平台属性表(base_attr_info)

字段名字段说明类型
id编号bigint(20)
attr_name属性名称varchar(100)
category_id分类idbigint(20)
category_level分类层级int(11)

平台属性值表(base_attr_value)

字段名字段说明类型
id编号bigint(20)
value_name属性值名称varchar(100)
attr_id属性idbigint(20)

一级分类表(base_category1)

字段名字段说明类型
id编号bigint(20)
name分类名称varchar(10)

二级分类表(base_category2)

字段名字段说明类型
id编号bigint(20)
name二级分类名称varchar(200)
category1_id一级分类编号bigint(20)

三级分类表(base_category3)

字段名字段说明类型
id编号bigint(20)
name三级分类名称varchar(200)
category2_id二级分类编号bigint(20)

字典表(base_dic)

字段名字段说明类型
dic_code编号varchar(10)
dic_name编码名称varchar(100)
parent_code父编号varchar(10)
create_time创建日期datetime(0)
operate_time修改日期datetime(0)

省份表(base_province)

字段名字段说明类型
ididbigint(20)
name省名称varchar(20)
region_id大区idvarchar(20)
area_code行政区位码varchar(20)
iso_code国际编码varchar(20)
iso_3166_2ISO3166编码varchar(20)

地区表(base_region)

字段名字段说明类型
id大区idvarchar(20)
region_name大区名称varchar(20)

品牌表(base_trademark)

字段名字段说明类型
id编号bigint(20)
tm_name属性值
logo_url品牌logo的图片路径varchar(20)

购物车表(cart_info)

字段名字段说明
id编号
user_id用户id
sku_idskuid
cart_price放入购物车时价格
sku_num数量
img_url图片文件
sku_namesku名称 (冗余)
is_checked
create_time创建时间
operate_time修改时间
is_ordered是否已经下单
order_time下单时间
source_type来源类型
source_id来源编号

评价表(comment_info)

字段名字段说明
id编号
user_id用户id
nick_name用户昵称
head_img
sku_idskuid
spu_id商品id
order_id订单编号
appraise评价 1 好评 2 中评 3 差评
comment_txt评价内容
create_time创建时间
operate_time修改时间

优惠券信息表(coupon_info)

字段名字段说明
id购物券编号
coupon_name购物券名称
coupon_type购物券类型 1 现金券 2 折扣券 3 满减券 4 满件打折券
condition_amount满额数(3)
condition_num满件数(4)
activity_id活动编号
benefit_amount减金额(1 3)
benefit_discount折扣(2 4)
create_time创建时间
range_type范围类型 1、商品(spuid) 2、品类(三级分类id) 3、品牌
limit_num最多领用次数
taken_count已领用次数
start_time可以领取的开始日期
end_time可以领取的结束日期
operate_time修改时间
expire_time过期时间
range_desc范围描述

优惠券优惠范围表(coupon_range)

字段名字段说明
id购物券编号
coupon_id优惠券id
range_type范围类型 1、商品(spuid) 2、品类(三级分类id) 3、品牌
range_id

优惠券领用表(coupon_use)

字段名字段说明
id编号
coupon_id购物券ID
user_id用户ID
order_id订单ID
coupon_status购物券状态(1:未使用 2:已使用)
get_time获取时间
using_time使用时间
used_time支付时间
expire_time过期时间

收藏表(favor_info)

字段名字段说明
id编号
user_id用户名称
sku_idskuid
spu_id商品id
is_cancel是否已取消 0 正常 1 已取消
create_time创建时间
cancel_time修改时间

订单明细表(order_detail)

字段名字段说明
id编号
order_id订单编号
sku_idsku_id
sku_namesku名称(冗余)
img_url图片名称(冗余)
order_price购买价格(下单时sku价格)
sku_num购买个数
create_time创建时间
source_type来源类型
source_id来源编号
split_total_amount分摊总金额
split_activity_amount分摊活动减免金额
split_coupon_amount分摊优惠券减免金额

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

字段名字段说明
id编号
order_id订单id
order_detail_id订单明细id
activity_id活动ID
activity_rule_id活动规则
sku_idskuID
create_time获取时间

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

字段名字段说明
id编号
order_id订单id
order_detail_id订单明细id
coupon_id购物券ID
coupon_use_id购物券领用id
sku_idskuID
create_time获取时间

订单表(order_info)

字段名字段说明
id编号
consignee收货人
consignee_tel收件人电话
total_amount总金额
order_status订单状态
user_id用户id
payment_way付款方式
delivery_address送货地址
order_comment订单备注
out_trade_no订单交易编号(第三方支付用)
trade_body订单描述(第三方支付用)
create_time创建时间
operate_time操作时间
expire_time失效时间
process_status进度状态
tracking_no物流单编号
parent_order_id父订单编号
img_url图片路径
province_id地区
activity_reduce_amount促销金额
coupon_reduce_amount优惠券
original_total_amount原价金额
freight_fee运费
freight_fee_reduce运费减免
refundable_time可退款日期(签收后30天)

退单表(order_refund_info)

字段名字段说明
id编号
user_id用户id
order_id订单id
sku_idskuid
refund_type退款类型
refund_num退货件数
refund_amount退款金额
refund_reason_type原因类型
refund_reason_txt原因内容
refund_status退款状态(0:待审批 1:已退款)
create_time创建时间

订单状态流水表(order_status_log)

字段名字段说明
id
order_id
order_status
operate_time

支付表(payment_info)

字段名字段说明
id编号
out_trade_no对外业务编号
order_id订单编号
user_id
payment_type支付类型(微信 支付宝)
trade_no交易编号
total_amount支付金额
subject交易内容
payment_status支付状态
create_time创建时间
callback_time回调时间
callback_content回调信息

退款表(refund_payment)

字段名字段说明
id编号
out_trade_no对外业务编号
order_id订单编号
sku_id
payment_type支付类型(微信 支付宝)
trade_no交易编号
total_amount退款金额
subject交易内容
refund_status退款状态
create_time创建时间
callback_time回调时间
callback_content回调信息

SKU平台属性值表(sku_attr_value)

字段名字段说明
id编号
attr_id属性id(冗余)
value_id属性值id
sku_idskuid
attr_name属性名称
value_name属性值名称

SKU信息表(sku_info)

字段名字段说明
id库存id(itemID)
spu_id商品id
price价格
sku_namesku名称
sku_desc商品规格描述
weight重量
tm_id品牌(冗余)
category3_id三级分类id(冗余)
sku_default_img默认显示图片(冗余)
is_sale是否销售(1:是 0:否)
create_time创建时间

SKU销售属性表(sku_sale_attr_value)

字段名字段说明
idid
sku_id库存单元id
spu_idspu_id(冗余)
sale_attr_value_id销售属性值id
sale_attr_id
sale_attr_name
sale_attr_value_name

SPU信息表(spu_info)

字段名字段说明
id商品id
spu_name商品名称
description商品描述(后台简述)
category3_id三级分类id
tm_id品牌id

SPU销售属性表(spu_sale_attr)

字段名字段说明
id编号(业务中无关联)
spu_id商品id
base_sale_attr_id销售属性id
sale_attr_name销售属性名称(冗余)

SPU销售属性值表(spu_sale_attr_value)

字段名字段说明
id销售属性值编号
spu_id商品id
base_sale_attr_id销售属性id
sale_attr_value_name销售属性值名称
sale_attr_name销售属性名称(冗余)

用户地址表(user_address)

字段名字段说明
id编号
user_id用户id
province_id省份id
user_address用户地址
consignee收件人
phone_num联系方式
is_default是否是默认

用户信息表(user_info)

字段名字段说明
id编号
login_name用户名称
nick_name用户昵称
passwd用户密码
name用户姓名
phone_num手机号
email邮箱
head_img头像
user_level用户级别
birthday用户生日
gender性别 M男,F女
create_time创建时间
operate_time修改时间
status状态

模拟生成业务数据

MySQL安装

业务数据生成

cpucode101/opt/module/db_log 文件夹

mkdir db_log/

gmall2020-mock-db-2021-11-14.jarapplication.properties 上传到 cpucode101/opt/module/db_log 路径上

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

logging.level.root=info

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://cpucode103:3306/gmall?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456

logging.pattern.console=%m%n

mybatis-plus.global-config.db-config.field-strategy=not_null
mybatis.mapperLocations=classpath:mapper/*.xml

#业务日期
mock.date=2020-06-14
#是否重置,首日须设置为1
mock.clear=1
#是否重置用户,首日须设置为1
mock.clear.user=1

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

#收藏取消比例
mock.favor.cancel-rate=10
#收藏数量
mock.favor.count=100

#每个用户添加购物车的概率
mock.cart.user-rate=10
#每次每个用户最多添加多少种商品进购物车
mock.cart.max-sku-count=8 
#每个商品最多买几个
mock.cart.max-sku-num=3 

#购物车来源  用户查询,商品推广,智能推荐, 促销活动
mock.cart.source-type-rate=60:20:10:10

#用户下单比例
mock.order.user-rate=30
#用户从购物中购买商品比例
mock.order.sku-rate=50
#是否参加活动
mock.order.join-activity=1
#是否使用购物券
mock.order.use-coupon=1
#购物券领取人数
mock.coupon.user-count=100

#支付比例
mock.payment.rate=70
#支付方式 支付宝:微信 :银联
mock.payment.payment-type=30:60:10

#评价比例 好:中:差:自动
mock.comment.appraise-rate=30:10:10:50

#退款原因比例:质量问题 商品描述与实际描述不一致 缺货 号码不合适 拍错 不想买了 其他
mock.refund.reason-rate=30:10:20:5:15:5:5

logging.level.com.atguigu.gmall2020.mock.db.mapper=debug

生成 2020-06-14 日期数据:

java -jar gmall2020-mock-db-2021-11-14.jar

查看 gmall 数据库,观察是否有 2020-06-14 的数据出现

业务数据梳理工具

业务数据采集模块

业务数据同步概述

数据同步策略概述

每日定时从业务数据库抽取数据,传输到数据仓库中,之后再对数据进行分析统计

为保证统计结果的正确性,需要保证数据仓库中的数据与业务数据库是同步,离线数仓的计算周期通常为,所以数据同步周期为天 ( 每天同步一次 )

数据的同步策略 :

  • 全量同步
  • 增量同步

全量同步 : 每天都将业务数据库中的全部数据同步一份到数据仓库,保证两侧数据同步的最简单的方式

在这里插入图片描述

增量同步 : 每天只将业务数据中的新增及变化数据同步到数据仓库。采用每日增量同步的表 ( 首日一次全量同步 )

在这里插入图片描述

数据同步策略选择

两种策略对比 :

同步策略优点缺点
全量同步逻辑简单在某些情况下效率较低。例如某张表数据量较大,但是每天数据的变化比例很低,若对其采用每日全量同步,则会重复同步和存储大量相同的数据。
增量同步效率高,无需同步和存储重复数据逻辑复杂,需要将每日的新增及变化数据同原来的数据进行整合,才能使用

结论:业务表数据量大,且每天数据变化低 ( 增量同步 ) ,否则 全量同步

各表同步策略:

在这里插入图片描述

数据同步工具概述

数据同步工具 :

  • 离线、批量同步 : 基于Select查询 , DataX、Sqoop
  • 实时流式同步 : 基于数据库数据变更日志 , Maxwell、Canal
增量同步方案DataX/SqoopMaxwell/Canal
对数据库的要求数据表中存在create_time、update_time等字段,然后根据这些字段获取变更数据要求数据库记录变更操作,如 : MySQL开启 binlog
数据的中间状态获取最后一个状态,中间状态无法获取获取变更数据的所有中间状态

全量同步 : DataX

增量同步 : Maxwell

数据同步工具部署

DataX

Maxwell

全量表数据同步

数据通道

全量表数据由DataX从MySQL业务数据库直接同步到HDFS

在这里插入图片描述

DataX 配置文件

增量表数据同步

数仓环境准备

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:14:20  更:2022-02-19 01:15:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:06:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码