当前位置:   article > 正文

【数据仓库】【第二章】项目需求和数仓架构设计_数据仓库项目的业务需求有哪些

数据仓库项目的业务需求有哪些


项目中有哪些需求,以及解决这些需求需要的架构设计

1.项目需求

1.1 需求来源

项目需求一般都是由产品经理提出来的,需要做哪些事情

产品经理又是从哪获取的需求呢?
(1)老板提出的需求
(2)客户提出的需求
(3)开发人员觉得这个需求对公司有用

1.2 需求概览

需要重点关注我们是如何解决每一个需求的,也是考核我们对数仓的理解和学习的成都的重要指标;
在这里插入图片描述
在这里插入图片描述

1.3 技术选型

在这里插入图片描述

1.3.1 技术选型考虑因素

(1)数据量大小

  • 如果数据量小,用Mysql就行了;
  • 数据量特别大,用HDFS存储;

(2)实时性

  • 对实时性的要求,比如要求秒级返回查询结果
  • 实时性要求不高,就可以用批处理等

(3)行业内经验

  • 各个大厂在做实时计算,都是用flink

(4)技术成熟度

  • 数仓
  • 中台
  • 数据湖

(5)开发维护成本以及总成本预算

  • 用云主机还是自己买物理机

1.3.2 数据采集技术选择

本项目中使用的方案:

  • Flume:日志文件
  • Sqoop:采集业务数据
  • Kafka: 削峰、解耦

备选方案:

  • logStash 也可以采集文件日志;
    其为ELK三大框架之一(ES、Kibana、logstash)
    ELK框架针对的是中小型公司,数据量不大,分析指标不复杂;

  • DataX 也可以采集业务数据;
    和Sqoop的市场占有率55开(全体起立)

1.3.3 数据存储技术选择

本项目中使用的方案:

  • Mysql : 存储ADS报表层的结果数据
  • **HDFS :**存储数仓大量数据
  • **HBase:**存储Kylin多维分析的结果数据

数仓中未使用到的:

  • Redis:实时计算中会使用,离线数仓用不到
  • MongDB : 存储结果数据

1.3.4 计算引擎的技术选型

本项目中使用的方案:

  • Hive : MR
  • Spark: 基于内存
    项目中使用的是Hive on Spark;表面用的是HQL,底层是Spark程序

数仓项目未使用:

  • Tez:基于内存计算
  • Flink
  • Storm
    这三个框架适用于实时计算

1.3.5 即席查询技术选型

适用于临时查看一些需求指标;而不是数仓中稳定调度的报表指标;

离线场景中:

  • Presto : 离线场景使用 Apache的
  • Kylin : 离线场景使用
  • Impala : CDH的框架

实时数仓中:

  • Druid
  • ClickHouse
  • Doris

1.3.6 数据可视化技术选型

开源免费的:

  • Echarts
  • Supreset

收费的:

  • QuickBI : 针对离线
  • DataV : 针对实时

1.3.7 任务调度技术选型

  • Azkaban: 中小型公司用的多;
  • Oozie: 功能多,框架重
  • DolphinScheduler: 国内的开源工具,可视化页面好看
  • Airflow: python脚本调度

1.3.8 集群服务监控技术选型

  • Zabbix:离线项目中使用
  • Prometheus:实时项目中使用

1.3.9 元数据管理技术选型

  • Atlas : 可以管理任务的血缘依赖关系,挂掉的任务对哪些任务有影响

1.3.10 权限管理框架技术选型

可以管理数仓中哪些表、字段可以给哪些用户查询或者修改

  • Ranger: 主流的框架
  • Sentry:被Apache除名了

2.数仓架构设计

2.1系统数据流程设计

(1)WebApp到Niginx,Nginx负载均衡的作用
(2)日志文件保存30天;防止集群瘫痪,备份时间久一些;
(3)业务数据从Mysql通过Sqoop同步到HDFS
(4)日志数据通过Flume->kafka->HDFS kafka起缓存作用
在这里插入图片描述
(5)数仓五层,从DWD层的数据进行维度分析,并存储到HBase
(6)即席查询 可以从各层获取数据
(7)Ads数据通过sqoop导出到Mysql进行可视化展示,用superSet展示
(8)Azkaban任务调度
(9)元数据管理Altas
(10)权限管理Ranger
(11)质量管理自己写脚本,Python+Shell

2.2 框架版本选型

在这里插入图片描述
CDH 6.3.2版本之后就开始收费了;
云服务是收费的,拥有齐全的组件;

在这里插入图片描述

2.3 服务器选型

在这里插入图片描述
云产品使用的多;

2.4 集群规模

在这里插入图片描述
也就是说中型公司,日活100w左右的,数据存储半年的,大约需要10台服务器;
一般来说10台服务器够用了;

2.5 集群资源规划设计

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

1)生产集群组件搭配原则
(1)消耗内存的分开
(2)数据传输数据比较紧密的放在一起(Kafka 、Zookeeper),减少数据的网络传输
(3)客户端尽量放在一到两台服务器上,方便外部访问;涉及权限开放问题,所以尽量将客户端放置在同一台机器上
(4)有依赖关系的尽量放到同一台服务器(例如:Hive和Azkaban Executor)

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/592030
推荐阅读
相关标签
  

闽ICP备14008679号