当前位置: 首页 > news >正文

大数据项目之电商数仓、数据仓库概念、项目需求及架构设计

文章目录

  • 1.数据仓库概念
  • 2. 项目需求及架构设计
    • 2.1 项目需求分析
      • 2.1.1 采集平台
      • 2.1.2 离线需求
      • 2.1.3 实时需求
      • 2.1.4 思考题
    • 2.2 项目框架
      • 2.2.1 技术选型
      • 2.2.2 系统数据流程设计
      • 2.2.3 框架版本选型
        • 2.2.3.1 Apache框架版本
      • 2.2.4 服务器选型
        • 2.2.4.1 物理机:
        • 2.2.4.2 云主机:
        • 2.2.4.3 企业选择
      • 2.2.5 集群规模
      • 2.2.6 集群资源规划设计
        • 2.2.6.1 生产集群
        • 2.2.6.2 测试集群服务器规划

1.数据仓库概念

  数据仓库( Data Warehouse ),是为企业制定决策,提供数据支持的。可以帮助企业,改进业务流程、提高产品质量等。
数据仓库的输入数据通常包括:业务数据、用户行为数据和爬虫数据
  业务数据:就是各行业在处理事务过程中产生的数据。比如用户在电商网站中登录、下单、支付等过程中,需要和网站后台数据库进行增删改查交互,产生的数据就是业务数据。业务数据通常存储在MySQL、Oracle等数据库中。
  用户行为数据:用户在使用产品过程中,通过埋点收集与客户端产品交互过程中产生的数据,并发往日志服务器进行保存。比如页面浏览、点击、停留、评论、点赞、收藏等。用户行为数据通常存储在日志文件中。
  爬虫数据:通常是通过技术手段获取其他公司网站的数据。不建议去做。

在这里插入图片描述
数据仓库,并不是数据的最终目的地,而是为数据最终的目的地做好准备。这些准备包括对数据的:备份、清洗、聚合、统计等。

2. 项目需求及架构设计

2.1 项目需求分析

2.1.1 采集平台

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

2.1.2 离线需求

在这里插入图片描述

2.1.3 实时需求

在这里插入图片描述

2.1.4 思考题

1、项目技术如何选型?
2、框架版本如何选型(Apache、CDH、HDP)
3、服务器使用物理机还是云主机?
4、如何确认集群规模?(假设每台服务器8T硬盘)

2.2 项目框架

2.2.1 技术选型

在这里插入图片描述

2.2.2 系统数据流程设计

在这里插入图片描述

2.2.3 框架版本选型

1)如何选择Apache/CDH/HDP版本?
(1)Apache:运维麻烦,组件间兼容性需要自己调研。(一般大厂使用,技术实力雄厚,有专业的运维人员) (建议使用)
(2)CDH:国内使用最多的版本,但CM不开源,今年开始收费,一个节点1万美金/年。
(3)HDP:开源,可以进行二次开发,但是没有CDH稳定,国内使用较少
2)云服务选择
(1)阿里云的EMR、MaxCompute、DataWorks
(2)亚马逊云EMR
(3)腾讯云EMR
(4)华为云EMR

2.2.3.1 Apache框架版本

框架新版本
Hadoop3.1.3
Zookeeper3.5.7
MySQL5.7.16
Hive3.1.2
Flume1.9.0
Kafka3.0.0
Spark3.0.0
DataX3.0.0
Superset1.3.2
DolphinScheduler2.0.3
Maxwell1.29.2
Flink1.13.0
Redis6.0.8
Hbase2.0.5
ClickHouse20.4.5.36-2

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

2.2.4 服务器选型

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

2.2.4.1 物理机:

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

2.2.4.2 云主机:

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

2.2.4.3 企业选择

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

2.2.5 集群规模

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

(1)每天日活跃用户100万,每人一天平均100条:100万*100条=1亿条
(2)每条日志1K左右,每天1亿条:100000000 / 1024 / 1024 = 约100G
(3)半年内不扩容服务器来算:100G*180天=约18T
(4)保存3副本:18T*3=54T
(5)预留20%~30%Buf=54T/0.7=77T
(6)算到这:约8T*10台服务器

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

2.2.6 集群资源规划设计

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

2.2.6.1 生产集群

(1)消耗内存的分开
(2)数据传输数据比较紧密的放在一起(Kafka 、Zookeeper)
(3)客户端尽量放在一到两台服务器上,方便外部访问
(4)有依赖关系的尽量放到同一台服务器(例如:Hive和mysql)

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

2.2.6.2 测试集群服务器规划

服务名称子服务服务器hadoop102服务器hadoop103服务器hadoop104
HDFSNameNode
HDFSDataNode
HDFSSecondaryNameNode
YarnNodeManager
YarnResourcemanager
ZookeeperZookeeper Server
Flume(采集日志)Flume
KafkaKafka
Flume(消费Kafka日志)Flume
Flume(消费Kafka业务)Flume
Hive
MySQLMySQL
DataX
Spark
DolphinSchedulerApiApplicationServer
DolphinSchedulerAlertServer
DolphinSchedulerMasterServer
DolphinSchedulerWorkerServer
DolphinSchedulerLoggerServer
SupersetSuperset
Flink
ClickHouse
Redis
Hbase
服务数总计201112

相关文章:

  • C生万物 | 底层之美,莫过于C【1024,从0开始】
  • Spring Boot集成第三方登录之微信登录
  • 【图像分割】基于遗传算法的进化聚类技术对彩色图像进行分割(Matlab代码实现)
  • Mybatis 拦截器 说明和使用 (二)
  • Vue.js 组件精讲(目前已有6614人一起学习)
  • 【Spring】一文带你吃透IOC技术
  • I2C知识大全系列二 —— I2C硬件及时序
  • Python基础入门(持续更新中)
  • 【预测模型-SVM预测】基于粒子群算法结合支持向量机SVM实现Covid-19风险预测附matlab代码
  • 初阶数据结构 二叉树常用函数 (二)
  • 【正点原子I.MX6U-MINI应用篇】4、嵌入式Linux关于GPIO的一些操作
  • 【C语言】解题训练
  • 【蓝桥杯国赛真题04】python输出平方 蓝桥杯青少年组python编程 蓝桥杯国赛真题解析
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • RabbitMQ 集群部署及配置
  • [nginx文档翻译系列] 控制nginx
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • Web Storage相关
  • 技术发展面试
  • 来,膜拜下android roadmap,强大的执行力
  • 微信支付JSAPI,实测!终极方案
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​queue --- 一个同步的队列类​
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #Z2294. 打印树的直径
  • (独孤九剑)--文件系统
  • (四)Android布局类型(线性布局LinearLayout)
  • (一)RocketMQ初步认识
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)fock函数详解
  • ******之网络***——物理***
  • .net 8 发布了,试下微软最近强推的MAUI
  • .Net 8.0 新的变化
  • .NET Core 中的路径问题
  • .NET业务框架的构建
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @Transactional类内部访问失效原因详解
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • []FET-430SIM508 研究日志 11.3.31
  • [2010-8-30]
  • [20181219]script使用小技巧.txt
  • [C++]模板与STL简介
  • [C++基础]-初识模板
  • [CakePHP] 在Controller中使用Helper
  • [DM复习]Apriori算法-国会投票记录关联规则挖掘(上)
  • [EFI]英特尔 冥王峡谷 NUC8i7HVK 电脑 Hackintosh 黑苹果efi引导文件
  • [IE 技巧] 显示/隐藏IE 的菜单/工具栏
  • [jobdu]不用加减乘除做加法
  • [NOI2012]迷失游乐园
  • [openGL]在ubuntu20.06上搭建openGL环境
  • [pytest] 运行方式、常用参数、前后置条件