数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。 —— 百度百科

概念

数据仓库是为企业所有决策制定过程,提供所有系统数据支持的战略集合。

数据仓库不是数据的最终目的地,而是为数据最终的目的地做好准备,这些准备包括: 清洗,转义,分类,重组,合并,拆分,统计等。大家可以看下这个图:
数据仓库

需求

了解了数据仓库的概念,现在来看看这个数据仓库的具体的需求是什么。

项目需求分析

  • 用户行为数据采集平台的构建
  • 业务数据数据采集平台的构建
  • 数据仓库维度构建
  • 分析: 用户,流量,会员,商品,销售,地区,活动等电商核心主题;
  • 采用即席查询工具,随时指标查询‘
  • 对集群性能进行监控
  • 元数据管理
  • 质量监控

技术选型

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

  • 数据采集传输: Flume /Kafka /Sqoop / Logstash / DataX
  • 数据存储: MySQL / HDFS / HBase / Redis / MongoDB
  • 数据计算: Hive / Tez / Spark / Flink / Storm
  • 数据查询: Presto / Druid / Impala / Kylin
  • 数据可视化: Esharts / Superset / QuickBI / DataV
  • 任务调度: Azkaban / Oozie
  • 元数据管理: Atlas
  • 数据质量监控: Griffin
  • 集群监控: Zabbix / Prometheus

说明: 这里原项目使用的是 Flume / Kafka / Sqoop / MySQL / HDFS / Hive / Tez / Spark / Presto / Druid / Superset / Azkaban / Zabbix / Griffin / Atlas , 但是目前的话,个人感觉 Spark 的风光已经被 Flink 给抢了,Zabbix 的集群监控现在也在偏向与 Prometheus 的监控。所以个人私自将计算引擎由 Spark 改为 Flink , 监控 由 Zabbix 改为 Prometheus,监控改为 Prometheus 后,我会搭配使用 Cortex / Grafana 的使用,这个我之前有分享过相关的内容,有兴趣可以找找看。目前的技术选型是: Flume / Kafka / Sqoop / MySQL / HDFS / Hive / Tez / Flink / Presto / Druid / Superset / Azkaban / Prometheus / Griffin / Atlas .

数据流

数据仓库

说明

  • 业务数据,日志数据 通过Nginx 到达我们的数据采集器,在到达Nginx 之前,应该是在加一层数据的采集,这一层的数据采集主要就是数据平台对外提供的采集的接口,大家通过这个接口将数据打到数据平台,但是这里我没有加,主要是为了和原项目尽量的保持差不多;
  • 数据采集器里面的 Kafka Cluster 是通过Flume来写入到 HDFS 的,这一层可以取消,放在这纯粹时因为我不想写一个消费者去消费 Kafka 数据。
  • 想了一下,这个的流式计算,项目中用到的是 Spark , 这边也准备使用 Spark ,别问为什么,问就是Spark好久不用了,生疏了。自然,这里的 Flink 也是要安排上的。这里的实时计算的数据打入到的是HBase
  • 这里的 Spark / Flink / Kafka / Flume / Hive 等一些框架,回附带这很多的面试题的,这个本人目前也在将收集到的一些面试题分享出来了,大家也可以去我的主页里面找“大数据面试” 的关键字,或者找 “优化方案”

小结

这个第一部分主要就是先简单的认识一下 数据仓库 , 然后呢,走走这个数据流程,知道后面我们大概要做哪些事。后面呢,每个组件的安装部署,我感觉应该是不需要在做具体的介绍了。要么就是简单的去把这个数据的采集模块搭建一下,以及我们的日志的模拟数据的生成。

这里呢,也推荐下一些采集模块里面的一些面试题:
【大数据面试宝典】 第一篇 Hadoop 面试题

【大数据面试宝典】 第二篇 HDFS 面试题

【大数据面试宝典】 第十篇 Zookeeper 面试题

【大数据面试宝典】 第七篇 Flume 面试题

【大数据面试宝典】 第八篇 Kafka 面试题