3.2 数据仓库架构
3.2.1 架构组成简介
数据仓库是一个过程而不是一个项目。
数据仓库系统是一个信息提供平台,他从 业务处理系统 获得数据,主要以星型模型和雪花模型进行数据组织,并为用户提供各种手段从数据中获取信息和知识。
从功能结构划分,数据仓库系统至少应该包含数据获取(Data Acquisition)、 数据存储 (Data Storage)、数据访问(Data Access)三个关键部分。
数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。其实数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放给外部应用,这也是为什么 叫“仓库”,而不叫“工厂”的原因。因此数据仓库的基本架构主要包含的是数据流入流出的过程,可以分为三层—— 源数据 、 数据仓库 、 数据应用 :
图 11 数据仓库基本体系结构 1
图 12 数据仓库基本体系结构 2
图 13 DW 五层模型架构
备注:ODS~Operation Data Store 操作数据存储。DWD~Dataware Detail 数据仓库明细层。
图 14 大数据的数据仓库平台架构
说明:逻辑上,一般都有数据采集层、数据存储与分析层、数据共享层、数据应用层。
数据采集
数据采集层的任务就是把数据从各种数据源中采集和存储到数据存储上,期间有可能会做一些简单的清洗。
数据源的种类比较多:
- 网站日志:
作为互联网行业,网站日志占的份额最大,网站日志存储在多台网站日志服务器上,
一般是在每台网站日志服务器上部署 flume agent,实时的收集网站日志并存储到 HDFS 上;
- 业务数据库:
业务数据库的种类也是多种多样,有 Mysql、Oracle、SqlServer 等,这时候,我们迫切的需要一种能从各种数据库中将数据同步到 HDFS 上的工具,Sqoop 是一种,但是 Sqoop 太过繁重,而且不管数据量大小,都需要启动 MapReduce 来执行,而且需要 Hadoop 集群的每 台机器都能访问业务数据库;应对此场景,淘宝开源的 DataX,是一个很好的解决方案(可参考文章 《 异构数据源海量数据交换工具-Taobao DataX 下载和使用 》),有资源的话,可以基于 DataX 之上做二次开发,就能非常好的解决,我们目前使用的 DataHub 也是。
当然,Flume 通过配置与开发,也可以实时的从数据库中同步数据到 HDFS。
- 来自于 Ftp/Http 的数据源:
有可能一些合作伙伴提供的数据,需要通过 Ftp/Http 等定时获取,DataX 也可以满足该需求;
- 其他数据源:
比如一些手工录入的数据,只需要提供一个接口或小程序,即可完成;
3.2.2 数据集市架构
数据集市 (Data Mart) ,也叫数据市场,数据集市就是满足特定的部门或者用户的需求,按照多维的方式进行存储,包括定义维度、需要计算的指标、维度的层次等,生成面向决策分析需求的数据立方体。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论