大数据项目实战之数据仓库:用户行为采集平台——第2章 项目需求及架构设计

第2章 项目需求及架构设计

2.1 项目需求分析

1)采集平台

(1)用户行为数据采集平台搭建

(2)业务数据采集平台搭建

2)离线需求

主题

子主题

指标

流量主题

各渠道流量统计

当日各渠道独立访客数

当日各渠道会话总数

当日各渠道会话平均浏览页面数

当日各渠道会话平均停留时长

当日各渠道跳出率

路径统计

路径分析

用户主题

用户变动统计

流失用户数

回流用户数

用户留存统计

新增留存率

用户活跃统计

新增用户数

活跃用户数

用户行为漏斗分析

首页浏览人数

商品详情页浏览人数

加购人数

下单人数

支付人数

新增用户下单统计

新增下单人数

新增支付成功人数

最近7日内连续3日下单用户数

商品主题

*复购率统计

最近30日各品牌复购率

各品牌商品下单统计

各品牌订单数

各品牌订单人数

各品类商品交易统计

各品类订单数

各品类订单人数

购物车存量统计

各分类商品购物车存量Top3

各品牌商品收藏次数Top3

下单到支付时间间隔平均值

各省份交易统计

各省份订单数

各省份订单金额

优惠券主题

优惠券使用率统计

使用次数

使用人数

3)实时需求

主题

子主题

指标

流量主题

各渠道流量统计

当日各渠道独立访客数

当日各渠道会话总数

当日各渠道会话平均浏览页面数

当日各渠道会话平均停留时长

当日各渠道跳出率

流量分时统计

当日各小时独立访客数

当日各小时页面浏览数

当日各小时新房客数

新老访客流量统计

各类访客数

各类访客页面浏览数

各类访客平均在线时长

各类访客平均页面浏览数

关键词统计

当日各关键词评分

用户主题

用户变动统计

当日回流用户数

用户新增活跃统计

当日新增用户数

当日活跃用户数

用户行为漏洞分析

当日首页页面浏览人数

当日商品详情页浏览人数

当日加购人数

当日下单人数

当日支付成功人数

新增交易用户统计

当日新增下单人数

当日新增支付成功人数

商品主题

*复购率统计

最近7/30日截止当前各品牌复购率

各品牌商品交易统计

当日各品牌订单数

当日各品牌订单人数

当日各品牌订单金额

当日各品牌退单数

当日各品牌退单人数

各品类商品交易统计

当日各品类订单数

当日各品类订单人数

当日各品类订单金额

当日各品类退单数

当日各品类退单人数

各SPU商品交易统计

当日各SPU订单数

当日各SPU订单人数

当日各SPU订单金额

交易主题

交易综合统计

当日订单总额

当日订单数

当日订单人数

当日退单数

当日退单人数

各省份交易统计

当日省份订单数

当日省份订单金额

优惠券主题

优惠券补贴率统计

当日优惠券补贴率

活动

活动补贴率统计

当日活动补贴率

4)思考题

1、项目技术如何选型?

2、框架版本如何选型(Apache、CDH、HDP)

3、服务器使用物理机还是云主机?

4、如何确认集群规模?(假设每台服务器8T硬盘)

2.2 项目框架

2.2.1 技术选型

image-20230306211944955

2.2.2 系统数据流程设计

系统数据流程图

Untitled

2.2.3 框架版本选型

1)如何选择Apache/CDH/HDP版本?

  • Apache:运维麻烦,组件间兼容性需要自己调研。(一般大厂使用,技术实力雄厚,有专业的运维人员)(建议使用
  • CDH:国内使用最多的版本,但CM不开源,今年开始收费,一个节点1 万美金/年。
  • HDP:开源,可以进行二次开发,但是没有CDH稳定,国内使用较少

2)云服务选择

  • 阿里云的EMR、MaxCompute、DataWorks
  • 亚马逊云EMR
  • 腾讯云EMR
  • 华为云EMR

具体版本型号:Apache框架版本

Untitled

注意事项:框架选型尽量不要选择最新的框架,选择最新框架半年前左右的稳定版

2.2.4 服务器选型

服务器选择物理机还是云主机

1)物理机:

  • 以128G内存,20核物理CPU,40线程,8THDD和2TSSD硬盘,戴尔品牌单台报价4W出头。一般物理机寿命5年左右
  • 需要有专业的运维人员,平均一个月1万。电费也是不少的开销。

2)云主机:

  • 云主机:以阿里云为例,差不多相同配置,每年5W。
  • 很多运维工作都由阿里云完成,运维相对较轻松

3)企业选择

  • 金融有钱公司和阿里没有直接冲突的公司选择阿里云
  • 中小公司、为了融资上市,选择阿里云,拉倒融资后买物理机。
  • 长期打算,资金比较足,选择物理机。

2.2.5 集群规模

1)如何确认集群规模?(假设:每台服务器8T磁盘,128G内存)

(1)每天日活跃用户100万,每人一天平均100条(50-200):100万*100条=1亿条

(2)每条日志1K(0.5k-2k)左右,每天1亿条:100000000/1024/1024=约100G

(3)半年内不扩容服务器来算:100G*180天=约18T

(4)保存3副本*:18T3=54T

(5)预留20%~30%Buf=54T/0.7=77T

(6)算到这:约8T*10台服务器

2)如果考虑数仓分层?数据采用压缩?需要重新再计算

2.2.6 集群资源规划设计

在企业中通常会搭建一套生产集群和一套测试集群。生产集群运行生产任务,测试集群用于上线前代码编写和测试。

1)生产集群

(1)消耗内存的分开

(2)数据传输数据比较紧密的放在一起(Kafka、Zookeeper)

(3)客户端尽量放在一到两台服务器上,方便外部访问

(4)有依赖关系的尽量放到同一台服务器(例如:Hive和Azkaban Executor)

MasterMastercorecorecorecommoncommoncommon
nnnndndndnJournalNodeJournalNodeJournalNode
rmrmnmnmnm
zkzkzk
hivehivehivehivehive
kafkakafkakafka
sparksparksparksparkspark
dataxdataxdataxdataxdatax
Ds-masterDs-masterDs-workerDs-workerDs-worker
maxwell
supset
mysql
flumeflume
flinkflink
clickhouse
redis
hbase

2)测试集群服务器规划

服务名称子服务hdp101hdp102hdp103
HDFSNameNode
DataNode
SecondaryNameNode
YarnNodeManager
Resourcemanager
ZookeeperZookeeper Server
Flume(采集日志)Flume
KafkaKafka
Flume
(消费Kafka日志)Flume
Flume
(消费Kafka业务)Flume
Hive
MySQLMySQL
DataX
Spark
DolphinSchedulerApiApplicationServer
AlertServer
MasterServer
WorkerServer
LoggerServer
SupersetSuperset
Flink
ClickHouse
Redis
Hbase
服务数总计201112

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pdf压缩文件怎么压缩最小?办公常备软件

PDF文件的大小有时会让人感到困扰,特别是在网络上传输和存储方面。为了解决这个问题,我们需要将PDF文件压缩至最小。 在进行压缩之前,需要检查PDF文件的分辨率和图形质量。通过降低分辨率和图形质量,可以显著减小文件的大小。此外…

springCloud学习【6】之分布式搜索引擎(3)

文章目录前言一 数据聚合1.1 DSL实现聚合1.1.1 Bucket聚合语法1.1.2 聚合结果排序1.1.3 限定聚合范围1.2 Metric聚合语法1.3 小结1.4 RestAPI实现聚合1.5 API语法1.7 案例二 自动补全2.1 拼音分词器的安装2.2 自定义分词器2.3 自动补全查询2.4 自动补全查询的JavaAPI三 数据同步…

Unity升级后打包AssetBundle变慢

1)Unity升级后打包AssetBundle变慢 ​2)打包使有些资源合成了一个资源data.unity3d,有些分开的原因 3)Unreal在移动设备中无法使用Stat命令获取到GPU Thread的耗时 4)Unity中如何看到相机视野范围内的剔除结果 这是第3…

【C++】迭代器

内容来自《C Primer(第5版)》9.2.1 迭代器、9.2.3 begin和end成员、9.3.6 容器操作可能使迭代器失效、10.4.3 反向迭代器 目录 1. 迭代器 1.1 迭代器范围 1.2 使用左闭合范围蕴含的编程假定 2. begin和end成员 3. 容器操作可能使迭代器失效 3.1 编…

【SQL基础笔记】

本文标签: SQL语法 SQL分类 DDL DML DQL DCL 目录 一、SQL语法 二、SQL的分类 三、DDL 1.DDL-数据库操作 2.DDL-表操作 3.DDL-数据类型 4.DDL-表操作 四、DML 五、DQL 1.DQL-基本查询 2.DQL-条件查询: 3.DQL-聚合函数 4.DQL-分组查询 5.DQL-排序查询 6.DQL-分页查询 7.综合案…

让ChatGPT在中断回答的时候自动输入「请接上文继续」并发送

一、脚本内容 让ChatGPT在中断回答的时候自动输入「请接上文继续」并发送 // UserScript // name ChatGPT自动接上文继续 // namespace http://tampermonkey.net/ // version 1.3 // description 让ChatGPT在中断回答的时候自动输入「请接上文继续」并发送 /…

Elasticsearch:高级数据类型介绍

在我之前的文章 “Elasticsearch:一些有趣的数据类型”,我已经介绍了一下很有趣的数据类型。在今天的文章中,我再进一步介绍一下高级的数据类型,虽然这里的数据类型可能和之前的一些数据类型有所重复。即便如此,我希望…

MySQL数据同步ES的常用思路和方法

文章目录 1.同步双写2.异步双写3.定时任务4.数据订阅大家应该都在各种电商网站检索过商品,检索商品一般都是通过什么实现呢?搜索引擎Elasticsearch。 那么问题来了,商品上架,数据一般写入到MySQL的数据库中,那么用于检索的数据又是怎么同步到Elasticsearch的呢? 1.同步双…

认识Spring(下)

作者:~小明学编程 文章专栏:Spring框架 格言:热爱编程的,终将被编程所厚爱。 目录 Spring更加高效的读取和存储对象 存储bean对象 五大注解 关于五大类注解 对象的注入 属性注入 构造方法注入 Setter注入 三种注入方式的…

IPV6 资料收集

IPV6与IPV4区别 1、地址长度的区别:IPv4协议具有32位(4字节)地址长度;IPv6协议具有128位(16字节)地址长度。 2、地址的表示方法区别:IPv4地址是以小数表示的二进制数。 IPv6地址是以十六进制表…

4.1 读写不同数据源的数据

4.1 读写不同数据源的数据4.1.1 读写数据库数据1、数据库数据获取2、数据库数据存储4.1.2 读写文本文件1、文本文件读取2、文本文件存储4.1.3 读写Excel文件1、Excel文件读取2、Excel文件存储完整代码4.1.1 读写数据库数据 1、数据库数据获取 pandas提供了读取与存储关系型数…

为什么说网络安全行业是 IT 行业最后的红利?

一、为什么选择网络安全? 这几年随着我国《国家网络空间安全战略》《网络安全法》《网络安全等级保护 2.0》等一系列政策/法规/标准的持续落地,网络安全行业地位、薪资随之水涨船高。 未来 3-5 年,是安全行业的黄金发展期,提前踏…

Android OKHttp源码解析

Https是Http协议加上下一层的SSL/TSL协议组成的,TSL是SSL的后继版本,差别很小,可以理解为一个东西。进行Https连接时,会先进行TSL的握手,完成证书认证操作,产生对称加密的公钥、加密套件等参数。之后就可以…

jenkins打包发布前端项目

1.配置前端nodejs打包环境 1.1安装nodejs插件 1.2配置jenkins nodejs环境 2.下载git插件(使用此插件配置通过gitlab标签拉取项目) 3.创建一个自由风格的发布项目 4.配置项目构建流程 4.1添加钉钉告警 4.2配置参数化构建 4.3配置源码管理为git拉取项目 4.4配置构建环境 4.5配置…

Graphic Game(思维 + 模拟删点)

C-Graphic Game_2022年江西省大学生程序设计竞赛(正式赛) (nowcoder.com) Topic describes eightCirno被推荐了一个游戏,她决定今天和Daiyousei一起玩。最初,有一个具有2 n个顶点和m条边的图。在每一个转弯,Cirno和Da…

SpringBoot+Shiro框架整合实现前后端分离的权限管理基础Demo

记录一下使用SpringBoot集成Shiro框架实现前后端分离Web项目的过程,后端使用SpringBoot整合Shiro,前端使用vueelementUI,达到前后端使用token来进行交互的应用,这种方式通常叫做无状态,后端只需要使用Shiro框架根据前端…

【云原生进阶之容器】第五章容器运行时5.4--容器运行时之Firecracker

1 Firecracker诞生背景 近些年 AWS 非常推崇无服务器模式

用Cmake构建第一个C++项目

ps:由于工作需求,需要涉及到跨平台。 概念 Cmake是一个款平台的构建工具,可以自动生成各种不同平台和编译器的构建脚本,使得项目在不同平台和编译器下都能够正常构建和运行。 CMake有自己的一套语法,需要学习CMake的…

上海亚商投顾:两市成交创年内新高 人工智能再爆发

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪三大指数今日高开高走,沪指震荡反弹逼近3300点,创业板指午后涨超1.7%,科创50指数…

springboot 配置文件、多环境配置、运行优先级

前言 提问:springboot项目,开发环境、测试环境和生产环境配置文件如何分开表示? 答:多profile文件方式 1、多环境配置(profile) 1.1、properties文件配置 application.properties:主配置文…