2、电商数仓(业务数据采集平台)电商业务流程、电商常识、电商系统表结构、业务数据模拟、业务数据采集模块

news2024/12/23 9:52:35

1、电商业务简介

1.1 电商业务流程

电商的业务流程可以以一个普通用户的浏览足迹为例进行说明,用户点开电商首页开始浏览,可能会通过分类查询也可能通过全文搜索寻找自己中意的商品,这些商品无疑都是存储在后台的管理系统中的。
当用户寻找到自己中意的商品,可能会想要购买,将商品添加到购物车后发现需要登录,登录后对商品进行结算,这时候购物车的管理和商品订单信息的生成都会对业务数据库产生影响,会生成相应的订单数据和支付数据。
订单正式生成之后,还会对订单进行跟踪处理,直到订单全部完成。
电商的主要业务流程包括用户前台浏览商品时的商品详情的管理,用户商品加入购物车进行支付时用户个人中心&支付服务的管理,用户支付完成后订单后台服务的管理,这些流程涉及到了十几个甚至几十个业务数据表,甚至更多。

在这里插入图片描述

1.2 电商常识

1.2.1 SKU和SPU

SKU = Stock Keeping Unit(库存量基本单位)。现在已经被引申为产品统一编号的简称,每种产品均对应有唯一的SKU号。
SPU(Standard Product Unit):是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息集合。
SPU表示一类商品。同一SPU的商品可以共用商品图片、海报、销售属性等。

1.2.2 平台属性和销售属性

1、平台属性
在这里插入图片描述
2、销售属性
在这里插入图片描述

2、业务数据介绍

2.1 电商系统表结构

以下为本电商数仓系统涉及到的业务数据表结构关系。这34个表以订单表、用户表、SKU商品表、活动表和优惠券表为中心,延伸出了优惠券领用表、支付流水表、活动订单表、订单详情表、订单状态表、商品评论表、编码字典表退单表、SPU商品表等,用户表提供用户的详细信息,支付流水表提供该订单的支付详情,订单详情表提供订单的商品数量等情况,商品表给订单详情表提供商品的详细信息。本次讲解以此34个表为例,实际项目中,业务数据库中表格远远不止这些。

2.1.1 活动信息表(activity_info)

在这里插入图片描述

2.1.2 活动规则表(activity_rule)

在这里插入图片描述

2.1.3 活动商品关联表(activity_sku)

在这里插入图片描述

2.1.4 平台属性表(base_attr_info)

在这里插入图片描述

2.1.5 平台属性值表(base_attr_value)

在这里插入图片描述

2.1.6 一级分类表(base_category1)

在这里插入图片描述

2.1.7 二级分类表(base_category2)

在这里插入图片描述

2.1.8 三级分类表(base_category3)

在这里插入图片描述

2.1.9 字典表(base_dic)

在这里插入图片描述

2.1.10 省份表(base_province)

在这里插入图片描述

2.1.11 地区表(base_region)

在这里插入图片描述

2.1.12 品牌表(base_trademark)

在这里插入图片描述

2.1.13 购物车表(cart_info)

在这里插入图片描述

2.1.14 评价表(comment_info)

在这里插入图片描述

2.1.15 优惠券信息表(coupon_info)

在这里插入图片描述

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

在这里插入图片描述

2.1.17 优惠券领用表(coupon_use)

在这里插入图片描述

2.1.18 收藏表(favor_info)

在这里插入图片描述

2.1.19 订单明细表(order_detail)

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

2.1.22 订单表(order_info)

在这里插入图片描述

2.1.23 退单表(order_refund_info)

在这里插入图片描述

2.1.24 订单状态流水表(order_status_log)

在这里插入图片描述

2.1.25 支付表(payment_info)

在这里插入图片描述

2.1.26 退款表(refund_payment)

在这里插入图片描述

2.1.27 SKU平台属性表(sku_attr_value)

在这里插入图片描述

2.1.28 SKU信息表(sku_info)

在这里插入图片描述

2.1.29 SKU销售属性表(sku_sale_attr_value)

在这里插入图片描述

2.1.30 SPU信息表(spu_info)

在这里插入图片描述

2.1.31 SPU销售属性表(spu_sale_attr)

在这里插入图片描述

2.1.32 SPU销售属性值表(spu_sale_attr_value)

在这里插入图片描述

2.1.33 用户地址表(user_address)

在这里插入图片描述

2.1.34 用户信息表(user_info)

在这里插入图片描述

2.1.35 电商业务表

在这里插入图片描述

2.1.36 后台管理系统

在这里插入图片描述

2.2 MySQL安装

按照这篇文章中的MySQL安装即可

2.3 业务数据模拟

2.3.1 连接MySQL

通过MySQL可视化客户端连接数据库。

2.3.2 建表语句

1、通过SQLyog创建数据库
2、设置数据库名称为gmall,编码为utf-8,排序规则为utf8_general_ci
3、导入数据库结构脚本(gmall.sql)
数据库导入数据脚本

2.3.3 生成业务数据

1、在hadoop102的/opt/module/目录下创建db_log文件夹

mkdir db_log/

2、把gmall2020-mock-db-2021-11-14.jar和application.properties上传到hadoop102的/opt/module/db_log路径上
获取jar包
3、根据需求修改application.properties相关配置
获取配置文件

logging.level.root=info


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

--下面两个要改成自己的
spring.datasource.username=root
spring.datasource.password=000000

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
#收藏数量
mock.favor.count=100

#每个用户添加购物车的概率
mock.cart.user-rate=50
#每次每个用户最多添加多少种商品进购物车
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=50
#用户从购物中购买商品比例
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

4、并在该目录下执行,如下命令,生成2020-06-14日期数据

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

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

3、业务数据采集模块

3.1 采集通道

在这里插入图片描述

3.2 采集工具

MaxWell详细介绍

3.3 采集通道MaxWell配置

1、修改Maxwell配置文件config.properties

vim /opt/module/maxwell/config.properties

2、配置参数如下

log_level=info

producer=kafka
kafka.bootstrap.servers=hadoop102:9092,hadoop103:9092

#kafka topic配置
kafka_topic=topic_db

# mysql login info
host=hadoop102
user=maxwell
password=maxwell
jdbc_options=useSSL=false&serverTimezone=Asia/Shanghai

3、重新启动Maxwell

mxw.sh restart

4、通道测试
(1)启动Zookeeper以及Kafka集群
(2)启动一个Kafka Console Consumer,消费topic_db数据

bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic topic_db

(3)生成模拟数据

cd /opt/module/db_log/
java -jar gmall2020-mock-db-2021-11-14.jar 

(4)观察Kafka消费者是否能消费到数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/686667.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

imx6ull——多点电容触摸

电容触摸寄存器 触点最多5个 触摸屏实现由 IIC驱动、中断驱动、 input子系统组成 触摸屏类型Type A和 Type B Type A:适用于触摸点不能被区分或者追踪,此类型的设备上报原始数据 (此类型在实际使 用中非常少! Type B:适用于有…

SikuliX 实战

一. SikuliX是什么 SikuliX的前身是 Sikuli。Sikuli是由MIT(麻省理工学院)研究团队发布的一种基于OpenCV图像识别技术的自动化工具软件。 Sikuli 是2009 年由在麻省理工学院用户界面设计小组作为一个开源研究项目,负责人分别是Tsung-Hsiang …

42 # 前端 blob 类型

前端的二进制 文件类型 Blob&#xff1a;二进制文件类型input 的 typefile&#xff1a;file 类型&#xff0c;继承于 Blob 前端实现下载功能 实现下载字符串到文件里&#xff0c;需要将字符串包装成二进制类型 <!DOCTYPE html> <html lang"en"><h…

文字对话如何配音?安利你三款制作对话配音的软件

对话配音怎么配&#xff1f;安利三个好用的对话配音软件给你 一分钟告诉你对话配音怎么配 对话配音怎么配&#xff1f;超简单的对话配音制作教程来啦 对话配音软件有哪些&#xff1f;给你安利这三款对话配音软件 对话配音如何操作&#xff1f;分享你三个对话配音小技巧 在电…

想学PMP,有考过的同学给个建议嘛?

PMP中国和国外的考试形式略有不同&#xff0c;这里只介绍一下PMP中国考试的相关信息。 1.PMP考试相关信息 考试形式&#xff1a;笔试 考试时间&#xff1a;230分钟&#xff08;3小时50分钟&#xff09;&#xff0c;一般考试时间在上午9:00~12:50&#xff0c;也会因为特殊情况…

C++primer(第五版)第二章(变量和基本类型)

2.1基本内置类型 2.1.1算术类型 C的基本内置类型包括算数类型和空类型,空类型就是void,算术类型我从原书中截下来放在下面: 从上表我们可以得知C规定int至少和short一样大,long至少和int一样大,longlong至少和long一样大. 其中char(字符)类型支持国际化,所以char会确保可以放…

学Java还是学Android?如何选择?

学Java和学Android都有其各自的好处和应用场景。下面是一些关于学习Java和学习Android的信息&#xff0c;以帮助你做出选择&#xff1a;刚好我这里有嵌入式、plc、单片机的资料需要的在评论区扣6或私我 学习Java&#xff1a; Java是一种通用的编程语言&#xff0c;广泛应用于服…

Simulink自动把所有的double数据转换成single数据

目录 前言 子系统double自动转single操作步骤 总结 前言 在基于模型的开发建模中&#xff0c;模块大多默认的数据类型是double&#xff0c;很多MCU支持的是单精度的浮点&#xff0c;生成代码的部分需要把double转成single数据类型&#xff0c;当然在建模的时候可以配置每一…

GCP学习笔记(三)——存储和安全

文章目录 一、Cloud Storage二、Cloud Bigtable三、Cloud SQL四、Cloud Spanner五、Firestore六、Cloud Datastore七、安全1. Data Loss Prevention2. Stackdriver3. IAM 八、网络概述 在GCP中&#xff0c;我们需要序列化数据使数据能够进行存储和转换。Avro时一种数据序列化方…

清华唐杰新作WebGLM,参数100亿可联网

WebGLM是一个基于大语言模型&#xff08;LLM&#xff09;的联网问答聊天机器人&#xff0c;它的作者是清华大学计算机系唐杰教授团队&#xff0c;它的论文入选了KDD2023会议。 WebGLM的特点是它可以利用Web搜索和检索功能来增强LLM的能力和泛化性&#xff0c;从而实现一个高效、…

智驾产品价值逻辑变了,新一代智驾芯片的核心要求

“根据创新扩散理论&#xff0c;智能汽车的早期用户主要是‘发烧友’&#xff0c;但是真正起量需要依靠‘大众群体’。要想抓住智能驾驶普及的黄金增长机遇&#xff0c;必须捕捉到两个群体的差异化需求&#xff0c;理解行业规则的变化。在当下&#xff0c;智驾产品必须重视功能…

MySQL架构介绍

MySQL架构介绍 和其它数据库相比&#xff0c;MySQL有点与众不同&#xff0c;它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上&#xff0c;插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和…

【软考网络管理员】2023年软考网管初级常见知识考点(15)-网络管理与存储

涉及知识点 网络管理功能&#xff0c;网络管理模型&#xff0c;SNMP协议原理与版本&#xff0c;数据备份&#xff0c;DAS/NAS/SAN技术 软考网络管理员常考知识点&#xff0c;软考网络管理员网络安全&#xff0c;网络管理员考点汇总。 文章目录 涉及知识点一、网络管理功能二、…

容器访问外部网络之Linux ip_forward 数据包转发

文章目录 1 问题解决1.1 问题&#xff1a;1.2 原因&#xff1a;1.3 解决&#xff1a;临时打开&#xff1a;永久打开&#xff1a; 2 net.ipv4.ip_forward内核参数通俗解释3 在Linux中验证并实践net.ipv4.ip_forward设置 IP 地址设置路由信息打开 IP Forward 功能关闭主机 R 的防…

【LeetCode】动态规划 刷题训练(四)

文章目录 面试题 17.16. 按摩师(打家劫舍|)题目解析状态转移方程完整代码 213. 打家劫舍 II题目解析状态转移方程完整代码 740. 删除并获得点数题目解析预处理状态转移方程完整代码 面试题 17.16. 按摩师(打家劫舍|) 点击查看&#xff1a;按摩师 一个有名的按摩师会收到源源不…

【vue小知识】给DOM元素动态的添加上一个类||v-bind的妙用

&#x1f609;博主&#xff1a;初映CY的前说(前端领域) ,&#x1f4d2;本文核心&#xff1a;vue文件怎么给DOM元素加上一个类 项目场景&#xff1a; 在前端页面逻辑操作中通常是存在click事件,添加点击效果是为了让页面操作起来更加的有操作性与互动性,那么有什么方式可以实现…

13个有趣的Python高级脚本!

关注“Python专栏”微信公众号&#xff0c;回复暗号【面试大全】&#xff0c;立即领取面试题简历模板。 每天我们都会面临许多需要高级编码的编程挑战。你不能用简单的 Python 基本语法来解决这些问题。在本文中&#xff0c;我将分享 13 个高级 Python 脚本&#xff0c;它们可以…

IP路由选择过程

1.1路由选择基础 路由选择是指将分组从一个设备通过互联网络发往位于不同网络上的另一个设备的操作。路由器不关注网络中的主机&#xff0c;而只关注互联起来的网络以及通往各个网络的最佳路径。 目标主机的逻辑网络地址用来获取通过可路由网络传送到指定网络中的分组&#xf…

(一)CSharp-Socket

一、套接字 Windows Sockets 只支持一个通信域&#xff1a;网际域&#xff08;AF-INET&#xff09;&#xff0c;这个域被使用网际协议族通信的进程所使用。 TCP/IP 的 Socket 则提供3种类型的套接字 1、流式套接字&#xff08;SOCK_STREAM&#xff09; 提供面向连接、可靠的数…

STM32 Proteus仿真闹钟设定万年历系统DS1302北京时间LCD1602蜂鸣器报警-0045

STM32 Proteus仿真闹钟设定万年历系统DS1302北京时间LCD1602蜂鸣器报警-0045 Proteus仿真小实验&#xff1a; STM32 Proteus仿真闹钟设定万年历系统DS1302北京时间LCD1602蜂鸣器报警-0045 功能&#xff1a; Protues版本&#xff1a;8.9 硬件组成&#xff1a;STM32F103R6单…