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

本文探讨了数据仓库的概念,详细阐述了项目的需求分析,涉及用户行为、业务数据和爬虫数据采集,以及离线和实时需求。关键部分讲解了技术选型、Apache/CDH/HDP框架版本选择、服务器选型(物理机与云主机)以及集群规模和资源规划,包括生产与测试集群的设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
### 商场景下实时数据仓库环境搭建 #### Hadoop 集群环境准备 为了构建一个高效的商实时数据仓库,首先需要建立稳定可靠的Hadoop集群环境。这一步骤不仅涉及硬件资源的选择与分配,还包括软件层面的优化配置,确保整个系统的性能达到最优状态[^1]。 #### Hive 数据仓库安装与MySQL集成 接着,在已有的Hadoop基础上部署与Spark兼容版本的Hive作为数据仓库工具,并将其元数据库(Metastore)存储于外部关系型数据库MySQL之中。这样做可以有效提升查询效率并便于管理复杂的数据结构;同时也方便不同应用间的数据交互和共享。 #### Kafka消息队列设置 考虑到未来可能存在的多种应用场景(如流处理),建议引入Apache Kafka来充当消息中间件的角色。通过Kafka收集来自各个渠道的日志信息或其他形式的数据源输入,从而形成一个高效稳定的传输管道,满足后续数据分析的需求[^2]。 #### Flume 和 Zookeeper 的作用 Flume用于从各种源头捕获日志文件并将它们可靠地传送到目的地——通常是HDFS或Kafka主题内。而Zookeeper则负责协调分布式应用程序中的节点通信和服务发现机制,对于维护集群健康至关重要。 #### Sqoop 迁移传统RDBMS至HDFS/Hive 借助Sqoop工具可实现将现有关系型数据库管理系统(Relational Database Management System, RDMBS),例如MySQL里的表结构及其对应的内容迁移到基于文件系统(HDFS)之上运行的新一代NoSQL解决方案—Hive里去。这一过程有助于打破孤岛式的烟囱架构,促进跨平台之间的协作交流。 #### ETL 流程设计:ODS 至 ADS 层级转换 针对具体业务逻辑定制化开发ETL(Extract Transform Load)作业链路,按照原始明细层(Operational Data Store, ODS)->轻度聚合层(Dimensional Model Layer, DML)>高度汇总层(Application Delivery Service, ADS)这样的顺序逐步提炼加工原始素材直至产出可供上层消费使用的成品报表视图。 ```sql INSERT INTO ods_table SELECT * FROM external_source; -- 各种清洗、过滤操作... INSERT INTO dml_table (SELECT ... FROM ods_table WHERE ...); -- 更复杂的计算、关联等变换... INSERT INTO ads_table (SELECT ... FROM dml_table GROUP BY ...); ``` #### 技术选型考量因素 当企业在评估采用何种云计算服务提供商时,成本效益是一个重要指标之一。以阿里云为代表的国内主流服务商提供了较为经济实惠的价格方案的同时还承担了大量的日常运营维护工作量,使得客户能够更加专注于核心竞争力培养方面的工作[^5]。
评论 86
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Redamancy_06

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值