关于数据仓库(DW/DWH)的详解与相关技术
数据仓库(Data Warehouse,简称DW或DWH)是在数据库已经大规模应用的基础上,为了进一步挖掘数据资源以满足决策需求而产生的。它构成了一套完整的理论体系,其中包括了ETL处理、调度以及建模等技术。数据仓库的主要目的是为前端的查询和分析提供基础支持,特别适用于OLAP(在线分析处理),能够支持复杂的分析操作,侧重于决策支持,并能够提供直观易懂的查询结果。
当前流行的数据仓库解决方案包括AWS Redshift、Greenplum以及Hive等。在数据仓库中,其数据方式与操作型数据库有所不同,它是按照一定的主题域来的。主题指的是用户在利用数据仓库进行决策时所关注的重点领域,一个主题可能与多个操作型信息系统相关联。
- 面向主题性:操作型数据库主要面向事务处理,而数据仓库中的数据则是按照特定的主题进行的,这有助于用户更有效地进行决策分析。
- 集成性:源数据需要经过加工和融合,以统一和综合的形式存在。这一过程中必须消除源数据的不一致性,以确保数据仓库内的信息是关于整个企业的一致的全局信息。
- 时间相关性:为了满足决策的需求,数据仓库中的数据都需要明确标明时间属性。
DW技术专门为数据分析设计,涉及读取大量数据以了解数据之间的关系和趋势。而数据库则主要用于捕获和存储数据。在企业的数据管理中,根据业务需求,数据可以进行分层,最基础的分层包括数据运营层、数据仓库层和数据服务层。
-
业务库的数据获取
业务库的数据常常通过sqoop进行抽取,例如每天定时抽取一次。在实时方面,可以考虑使用c来MySQL的binlog,实现实时数据的接入。
-
埋点日志的处理
埋点日志通常以文件的形式保存,可以选择使用flume进行定时同步。也可以利用spark streaming或Flink实现实时接入,kafka也是一种可行的解决方案。
-
消息队列的数据处理
消息队列中包含了来自ActiveMQ、Kafka等的数据。这些数据的处理和利用也是数据仓库建设中的重要一环。
在数据仓库的分层结构中,从下到上依次为DWD(数据仓储层)、DWB(数据缓冲层)以及DWS(数据分析服务层)。每一层都承担着不同的职责和功能,共同构成了企业的数据管理体系。