大数据项目之电商数仓、数据仓库概念、项目需求及架构设计
文章目录
- 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框架版本
框架 | 新版本 |
---|---|
Hadoop | 3.1.3 |
Zookeeper | 3.5.7 |
MySQL | 5.7.16 |
Hive | 3.1.2 |
Flume | 1.9.0 |
Kafka | 3.0.0 |
Spark | 3.0.0 |
DataX | 3.0.0 |
Superset | 1.3.2 |
DolphinScheduler | 2.0.3 |
Maxwell | 1.29.2 |
Flink | 1.13.0 |
Redis | 6.0.8 |
Hbase | 2.0.5 |
ClickHouse | 20.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)
Master | Master | core | core | core | common | common | common |
---|---|---|---|---|---|---|---|
nn | nn | dn | dn | dn | JournalNode | JournalNode | JournalNode |
rm | rm | nm | nm | nm | |||
zk | zk | zk | |||||
hive | hive | hive | hive | hive | |||
kafka | kafka | kafka | |||||
spark | spark | spark | spark | spark | |||
datax | datax | datax | datax | datax | |||
Ds-master | Ds-master | Ds-worker | Ds-worker | Ds-worker | |||
maxwell | |||||||
supset | |||||||
mysql | |||||||
flume | flume | ||||||
flink | flink | ||||||
clickhouse | |||||||
redis | |||||||
hbase |
2.2.6.2 测试集群服务器规划
服务名称 | 子服务 | 服务器hadoop102 | 服务器hadoop103 | 服务器hadoop104 |
---|---|---|---|---|
HDFS | NameNode | √ | ||
HDFS | DataNode | √ | √ | √ |
HDFS | SecondaryNameNode | √ | ||
Yarn | NodeManager | √ | √ | √ |
Yarn | Resourcemanager | √ | ||
Zookeeper | Zookeeper Server | √ | √ | √ |
Flume(采集日志) | Flume | √ | √ | |
Kafka | Kafka | √ | √ | √ |
Flume(消费Kafka日志) | Flume | √ | ||
Flume(消费Kafka业务) | Flume | √ | ||
Hive | √ | √ | √ | |
MySQL | MySQL | √ | ||
DataX | √ | √ | √ | |
Spark | √ | √ | √ | |
DolphinScheduler | ApiApplicationServer | √ | ||
DolphinScheduler | AlertServer | √ | ||
DolphinScheduler | MasterServer | √ | ||
DolphinScheduler | WorkerServer | √ | √ | √ |
DolphinScheduler | LoggerServer | √ | √ | √ |
Superset | Superset | √ | ||
Flink | √ | |||
ClickHouse | √ | |||
Redis | √ | |||
Hbase | √ | |||
服务数总计 | 20 | 11 | 12 |
大数据项目之电商数仓、数据仓库概念、项目需求及架构设计相关推荐
- 尚硅谷大数据项目之电商数仓(4即席查询数据仓库)
尚硅谷大数据项目之电商数仓(即席查询) (作者:尚硅谷大数据研发部) 版本:V4.0 第1章 Presto 1.1 Presto简介 1.1.1 Presto概念 1.1.2 Presto架构 1.1 ...
- 大数据实战项目之电商数仓(一)
大数据实战项目之电商数仓(一) 项目介绍 数据仓库概念 数据仓库是为企业所有决策制定过程,提供所有系统数据支持的战略集合.通过对数据仓库中数据的分析,可以帮助企业改进业务流程,控制成本,提高产品质 ...
- 31 大数据项目之电商数仓(用户行为数据采集)
文章目录 第1章 大数据项目之电商数仓(用户行为数据采集) 第2章 项目需求 2.1 项目需求分析 2.2 项目框架 2.2.1 技术选型 2.2.2 系统架构图设计 2.2.3 系统数据流程设计 2 ...
- 复盘离线电商数仓3.0项目–数据开发梳理
复盘离线电商数仓项目–数据开发梳理 业务数据 数仓分层 ods层到ads层的开发 开源BI工具Superset ODS层业务数据&日志数据 ods层业务数据 使用Sqoop脚本从Mysql数据 ...
- 大数据项目之电商数仓、业务数据介绍、电商系统表结构
文章目录 6. 业务数据介绍 6.1 电商系统表结构 6.1.1 活动信息表(activity_info) 6.1.2 活动规则表(activity_rule) 6.1.3 活动商品关联表(activ ...
- 大数据项目之电商数仓(业务数据仓库)
第1章 电商业务与数据结构简介 1.1 电商业务流程 1.2 电商表结构 电商业务流程 1.2.1 电商常识(SKU.SPU) SKU=Stock Keeping Unit(库存量单位).即库存进出计 ...
- 大数据项目之电商数仓离线计算
本次项目是基于企业大数据的电商经典案例项目(大数据日志以及网站数据分析),业务分析.技术选型.架构设计.集群规划.安装部署.整合继承与开发和web可视化交互设计. 1.系统数据流程设计 我这里主要分享 ...
- 大数据项目之电商数仓(3电商数据仓库系统)V6.1.3
第1章 数仓分层1.1 为什么要分层 1.2 数据集市与数据仓库概念 1.3 数仓命名规范1.3.1 表命名ODS层命名为ods_表名DWD层命名为dwd_dim/fact_表名DWS层命名为d ...
- 33 大数据项目之电商数仓(电商数据仓库系统)
文章目录 写SQL的规律 第 1 章 数仓分层 1.1 为什么要分层 1.2 数据集市与数据仓库概念 1.3 数仓命名规范 1.3.1 表命名 1.3.2 脚本命名 第 2 章 数仓理论 2.1 范式 ...
最新文章
- 解决 IndyFTp 乱码问题 10.6.0
- HTML5 CSS3专题 诱人的实例 CSS3打造百度贴吧的3D翻牌效果
- video标签 添加视频
- cad lisp 两侧偏移并删除_弱电CAD不算CAD?学学操作,将手速发挥极致,让他人刮目相看...
- 详解DPoS共识算法
- 记一个鼠标略过时候的css动画
- 架构之:微服务和单体服务之争
- the first day
- python celery应用场景_Celery使用背景与功能概要
- C# ComboBox自动完成功能的例子
- 移动终端的应用杀掉进程后,接收消息启动应用的简要技术说明
- 废旧光盘手工小制作_变废为宝:废旧CD光盘制作纸巾盒
- Android开发-魔窗DeeplinkDemo-AndroidStudio
- Java 判断对象是否所有属性为空
- 学编程好比学游泳——欠炼
- 千岛湖自助游记--给力
- [SV]SystemVerilog学习笔记之struct union
- 第七届青年地学论坛女科学家论坛学习
- Druid源码解析之Segment
- 让JAVA 中Swing界面更加美观
热门文章
- clientHeight、offsetHeight、scrollHeight、scrollTop
- 小米云网站服务器错误代码,小米健康云开放平台iOS SDK使用指南
- 修改freeradius服务器配置
- Python学习笔记Day01--Day06
- 在Winform环境下Scottplot简单入门
- MySQL的多表关联查询
- excel服务器客户端在哪个文件夹,excel服务器客户端安装配置
- django的优缺点
- 论文阅读《Dense Relation Distillation with Context-aware Aggregation for Few-Shot Object Detection》
- elastic-job 有没有java 接口去触发定时任务执行