0


离线数仓搭架_01_数仓概念与项目框架说明

文章目录

1.0 数据仓库概念

image-20220831234500440

数据仓库( Data Warehouse ),是为企业制定决策,提供数据支持的。可以帮助企业,改进业务流程、提高产品质量等。
​ 数据仓库的输入数据通常包括:业务数据、用户行为数据和爬虫数据等
业务数据:就是各行业在处理事务过程中产生的数据。比如用户在电商网站中登录、下单、支付等 过程中,需要和网站后台数据库进行增删改查交互,产生的数据就是业务数据。业务数据通常存储在MySQL、Oracle等数据库中。

用户行为数据:用户在使用产品过程中,通过埋点收集与客户端产品交互过程中产生的数据,并发往日志服务器进行保存。比如页面浏览、点击、停留、评论、点赞、收藏等。用户行为数据通常存储在日志文件中。

爬虫数据:通常事通过技术手段获取其他公司网站的数据。

数据仓库不是数据的最终的目的地,而是为数据最终的目的地做好准备。这些准备包括对数据的:备份,清洗,聚合,统计等

ODS:备份

DWD:清洗

DWS:按天存储

DWT:累积性存储

ADS:报表

2.0 项目 需求及架构设计

2.1项目需求

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

2、业务数据采集平台搭建

3、数据仓库维度建模(核心)

4、分析,设备、会员、商品、地区、活动等电商核心主题,统计的报表指标近100个。

5、采用即席查询工具,随时进行指标分析

6、对集群性能进行监控,发生异常需要报警。

7、元数据管理

8、质量监控

9、权限管理

2.2项目框架

2.2.1技术选型

技术选型主要考虑因素:数据量大小、业务需求、行业内经验、技术成熟度、开发维护成本、总成本预算。

数据采集传输:Flume,.Kafka,Sqoop;Logstash,DataX

数据存储:MySQL,HDFS,HBase,Redis,MongoDB

数据计算:Hive,Tez,Spark,Flink,Storm

数据查询:Presto,Kylin,Impala,Duid,ClickHouse,Doris

数据可视化:Echats,Superset,QuickBI,DataV

任务调度:Azkaban,Oozie.,DolphinScheduler,Airflow

集群监控:Zabbi这,Prometheus

元数据管理:Atlas

权限管理:Ranger,Sentry

2.2.2 系统数据流程设计

image-20220901111526317

2.2.3 框架版本选型

(1)Apache:运维麻烦,组件间兼容性需要自己调研。(一般大厂使用,技术实力雄厚,有专业的运维人员)(建议使用)

(2)CDH:国内使用最多的版本,但CM不开源,今年开始收费,一个节点1万美金/年。

(3)HDP:开源,可以进行二次开发,但是没有CDH稳定,国内使用较少

2)云服务选择

(l)阿里云的EMR、MaxCompute、Data Works

(2)亚马逊云EMR

(3)腾讯云MR

(4)华为云EMR

image-20220901111846543

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条:100万100条=1亿条
(2)每条日志1K左右,每天1亿条:100000000/1024/1024=约100G
(3)半年内不扩容服务器来算:100G
180天=约18T
(4)保存3副本:18T3=54T
(5)预留20%30%Buf=54T0.7=77T
(6)算到这:约8T
10台服务器

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

2.2.6 集群资源规划设计

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

1)生产集群

​ (1)消耗内存的分开

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

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

​ (4)有依赖关系的尽量放到同一台服务器(例如:Hive和Azkaban Executor)
12345678910nnnndndndndndndndndnrmrmnmnmnmnmnmnmnmnmzkzkzkkafkakafkakafkaFlumeFlumeflumeHbaseHbaseHbasehivehivemysqlmysqlsparksparkAzkabanAzkabanESES
2)测试集群服务器规划
服务名称子服务服务器hadoop102服务器hadoop103服务器hadoop104HDFSNameNode√DataNode√√√SecondaryNameNode√YarnNodeManager√√√Resourcemanager√ZookeeperZookeeper Server√√√Flume(采集日志)Flume√√KafkaKafka√√√Flume(消费Kafka)Flume√HiveHive√MySQLMySQL√SqoopSqoop√PrestoCoordinator√Worker√√AzkabanAzkabanWebServer√AzkabanExecutorServer√Spark√Kylin√HBaseHMaster√HRegionServer√√√Superset√Atlas√SolrJar√服务数总计1988


本文转载自: https://blog.csdn.net/m0_58022371/article/details/126651491
版权归原作者 程序员小憨 所有, 如有侵权,请联系我们删除。

“离线数仓搭架_01_数仓概念与项目框架说明”的评论:

还没有评论