数据仓库灵魂30问之什么是数据仓库?如何构建数据仓库?
什么是数据仓库?如何构建数据仓库?
什么是数据仓库?
数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,它用于支持企业或组织的决策分析处理。
-
面向主题的:数据集合是以主题为单位进行数据汇聚,一个主题内只存储与本主题有关系的数据。
-
集成的:数据来源多种多样,需要ETL操作。
-
相对稳定的:一般只进行写入与查询操作,不进行更新与删除。
-
反映历史变化:关键数据隐式或显式的基于时间变化
如何构建数据仓库?
1). 前期业务调研 需求调研 数据调研 技术选型
-
业务调研
座谈业务同学,梳理业务流程,构建概念数据模型。
同时初步划分数据仓库DW层主题域。 -
需求调研
梳理现有数据需求,收集整理过去、现在与将来的数据或BI报表需求。
同时初步划分数据仓库APP层主题域。 -
数据调研
获取每个数据源,数据结构说明书,整理数据字典。
划分每个表的业务线与所属模板。
同时初步划分数据仓库ODS层主题域
2). 提炼业务模型,总线矩阵,划分主题域;
-
确定主题域
通过对第一步三个阶段的补充,分析,舍弃(断舍离),整合,抽象,最终确定主题域。主题域是主题的边界,主题是围绕实体凝聚的数据。 -
提炼总线架构(一致性维度)
Kimball提出的数据仓库建模中有三个关键性概念-总线架构,一致性维度,一致性事实。所有的开发迭代必须在这三个概念编制的体系之内。
而一致性维度就好比企业范围内的一组总线,不同数据集市的事实的就好比插在这组总线上的元件。这也是称之为总线架构的原因。 -
构建总线矩阵
以维度为列,以事实为行,来判断每个事实与维度之间的关系
3). 定制规范 命名规范、开发规范、流程规范
略
4). 数仓架构分层:一般分为操作数据层(ODS)、公共维度模型层(CDM)和应用数据层(ADS),其中公共维度模型层包括明细数据层(DWD)和汇总数据层(DWS)
公共维度模型层(CDM):存放明细事实数据、维表数据及公共指标汇总数据,其中明细事实数据、维表数据一般根据ODS层数据加工生成:公共指标汇总数据一般根据维表数据和明细事实数据加工生成。
CDM层又细分为DWD层和DWS层,分别是明细数据层和汇总数据层,采用维度模型方法作为理论基础,更多地采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联,提高明细数据表的易用性:同时在汇总数据层,加强指标的维度退化,采取更多的宽表化手段构建公共指标数据层,提升公共指标的复用性,减少重复加工。
应用数据层(ADS):存放数据产品个性化的统计指标数据,根据CDM层与ODS层加工生成。
5).选择合适的数据模型,不同的行业涉选取的模型近不相同,合适的模型,更利于在数据存储,计算,开发,安全,以及数据查询的效率,更能体现数仓的价值。
略
6).制定合理的数据治理方案。
-
数据治理
确保数据的完整性,准确性,实时性,一致性。
主键监控,表数据量与波动监控、重要字段的非空监控、重要枚举字段的离散值监控、指标值波动监控、业务规则监控。 -
元数据管理
对技术元数据与业务元数据的存储与使用。可以使用的技术有:Metastore、数据字典、系统库、调度日志、作业依赖、数据血缘等。 -
数据审计
数据安全与数据权限
使用外部表、跳板表保证数据安全,进行“最小权限原则”,敏感数据脱敏,审计等等。
一句话总结:通过三步调研(业务调研、需求调研、数据调研),划分主题域,确定主题。然后构建总线矩阵,维度建模(星型模型、四步建模)。设计数仓分层架构(ods-dwd-dws-ads),定制规范(命名规范、模型规范、开发规范、流程规范)。数据治理(数据质量,数据安全,元数据管理)。开工ETL/BI,迭代开发。