数据仓库分层没有绝对的规范,适合的就是最好的,特别是企业已经有一个初版的数仓的时候,需要做好改造成本和可理解性之间的平衡。
数据仓库是一套方法论,从规范定义、模型设计到数据服务,再到数据可管理、可追溯、可复用。
背景
在之前的文章
高威:浅谈数仓模型(维度建模)zhuanlan.zhihu.com中,有读者比较关注数仓分层的意义和作用,以及如何建立一个比较完善且能落地的数仓体系,所以在这里单独开一栏主要介绍数仓的分层原理,和针对不同阶段公司或者业务过程中数仓搭建主要关注的点。
定义:
数据仓库,由数据仓库之父Bill Inmon 在1991 年出版的“Building the Data Warehouse”定义且被广泛接受的——面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。从定义上来看,数据仓库的关键词为面向主题、集成、稳定、反映历史变化、支持管理决策,而这些关键词的实现就体现在分层架构内。
说到数仓不可避免的和传统的数据库进行比对:
所以数仓是面向分析型的,主要集中在数据的ETL、数仓模型的建立、数据治理、数据质量的监控、数据资产的沉淀、数据指标体系的搭建,为了方便快速的达到数据获取和数据支撑的目的,同时规避了数据指标不统一造成的数据准确性不足的问题以及重复建设的冗余而建立的一套公司层面或者业务支撑层面的一套规范化数据流向的方案。
目的:
数仓的核心是解决 ETL 任务及工作流的组织、数据的流向、读写权限的控制、不同需求的满足等各类问题,并提供给分析人员一个清晰可用的展现层,方便快速的业务支撑。
特征:
1、集成(面向主题)
数据是分散的,由于事务处理应用分散、蜘蛛网问题、数据不一致问题、外部数据和非结构化数据。数据仓库中的数据是为分析服务的,而分析需要多种广泛的不同数据源以便进行比较、鉴别,因此数据仓库中的数据必须从多个数据源中获取,这些数据源包括多种类型数据库以及文件系统等,它们通过数据集成而形成数据仓库中的数据。
这块的集成主要集中在数据源大量的数据预处理工作(ETL),通常的模型方式是通过E-R模型进行数据整合。目的将各个系统中的数据以整个企业角度按主题进行相似性组合和合并,并进行一致性处理,为数据分析决策服务,但是并不能直接用于分析决策。
特点:
- 一般是公司总栈层面的整合,所以需要全面了解企业业务和数据;
- 实施周期非常长,需要整合全部的数据,并在企业业务角度对数据进行相似