数仓项目—项目需求及架构设计
1. 项目需求分析
1.1 项目需求
1、用户行为数据 采集平台搭建。
2、业务数据 采集平台搭建
3、数据仓库维度建模。
4、分析,设备、会员、商品、地区、活动 等电商核心主题,统计的报表指标近100个。完全对比中型公司
5、采用即席查询 工具,随时进行指标分析。
6、对集群性能进行监控 ,发生异常需要报警。
7、元数据管理 。
8、质量监控 。
1.2 思考题
1、项目技术如何选型 ?
2、框架版本如何选型(Apache、CDH、HDP )
3、服务器使用物理机 还是云主机 ?
4、如何确认集群规模? (假设每台服务器8T硬盘)
2. 项目框架
2.1 技术选型
技术选型主要考虑因素:数据量大小、业务需求、行业内经验、技术成熟度、开发维护成本、总成本预算。
- 数据采集传输:
Flume,Kafka,Sqoop ,Logstash,DataX, - 数据存储:
MySql,HDFS ,HBase,Redis,MongoDB - 数据计算:
Hive,Tez, Spark , Flink,Storm - 数据查询:
Presto,Kylin ,Impala,Druid - 数据可视化:Echarts、
Superset 、QuickBI、DataV - 任务调度:
Azkaban 、Oozie - 集群监控:
Zabbix - 元数据管理:
Atlas
2.2 系统数据流程设计
2.3 框架版本选型
如何选择Apache/CDH/HDP 版本?
Apache:运维麻烦,组件间兼容性需要自己调研。 (一般大厂使用,技术实力雄厚,有专业的运维人员) (建议使用 )- CDH:国内使用最多的版本,但CM不开源,今年开始要收费,一个节点1万美金。
- HDP:开源,可以进行二次开发,但是没有CDH稳定,国内使用较少。.
本项目选用Apache版本,具体版本如下:
2.4 服务器选型
服务器选择物理机还是云主机?
- 物理机 :
以128G内存,20核物理CPU,40线程,8THDD和2TSSD硬盘,戴尔品牌单台报价4W出头 。一般物理机寿命5年左右。 - 需要有专业的运维人员,平均一个月1万。电费也是不少的开销。
- 云主机:
云主机:以阿里云为例,差不多相同配置,每年5W 。- 很多运维工作都由阿里云完成,运维相对较轻松。
- 企业选择
- 金融有钱公司和阿里没有直接冲突的公司选择阿里云
- 中小公司、为了融资上市,选择阿里云,拉倒融资后买物理机。
- 有长期打算,资金比较足,选择物理机。
2.5 集群资源规划设计
如何确认集群规模?(假设:每台服务器8T磁盘,128G内存)
- 每天日活跃用户100万,每人一天平均100条:
100万*100条=1亿条 - 每条日志1K左右,每天1亿条:
100000000/ 1024 / 1024 = 约100G - 半年内不扩容服务器来算:
100G*180天=约18T - 保存3副本:
18T*3=54T - 预留20%~30%Buf=
54T/0.7=77T - 数仓分多层,
在当前基础上在扩展1到2倍 :约8T*10台*2|3服务器=20~30台
如果考虑数仓分层?数据采用压缩?需要重新再计算
采用snappy或者lzo压缩率在60%左右。
2.6 测试集群服务器规划
整体原则
资源均衡。 如有依赖的服务需要在同一个节点,例如 Azkanba 的 Executor调度 hive 或者 sqoop ,需要在一个节点。
☆
|