如何建设数据仓库?

数据仓库的概念由来已久,相信大家早已不再陌生,其主要目的是为管理决策提供数据支撑和依据。于是数仓工具显得尤为重要。

数据仓库概述

数据仓库,顾名思义,就是存储数据的仓库。

现实中的仓库会有不同的分区和归类,分区下有多个货架,货架上堆放着各种各样的商品。对于数据仓库来说,分区归类就类似于数据仓库的基础架构,数据仓库的数据存储结构(如表)就是仓库的货架,而商品则是对应数据仓库实际存储的各种数据。无论是什么样的仓库,无论仓库大小,其目的都是为了实现物品的集中管理、有序存取,数据仓库也是一样,它管理存储的是数据以及数据结构。

其实业界对于数据仓库早已有了广泛认可的定义,即:数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。

数据仓库本质上是一种特殊的数据组织形式:

  1. 面向主题,即数据仓库中表的设计是按照一个个主题进行组织的而非按照业务流程设计;
  2. 集成性,是指将企业中各大业务系统进行数据集中、整合、加工从而形成全局统一的数据视图;
  3. 相对稳定,则是指数据仓库中的数据不会做频繁的增删改操作,相对于业务系统中频繁的事务处理,其数据变化相对稳定;
  4. 反应历史变化,表明数据仓库通常会保存数据的历史备份,因此就可以从中获取数据历史变化情况。

数据仓库的这些特性满足了分析型应用的需求,可以更好的帮助企业制定管理决策。

数据仓库核心概念

理解完数据仓库基本概念和特性,接着我们来学习下数据仓库的核心概念。

  1. 概念一 —— 维度

维度是一个与业务相关的观察角度,比如我们从地区角度观察哪个地区的销售额最多,那么地区就是一个维度。在数据仓库中我们将这些维度信息存储成一张张数据库表,我们称之为维表。

维表主要分为:单级维、层级维、变化维。

  • 单级维是指一对一的代码表,不存在层级关系,最主要的作用是将事实表中的代码显示为标题(名称)。
  • 层级维是具有分层结构的维度表,比如地区维,层级往上可以到区、市、省、国家等。
  • 缓慢变化维是随着时间属性变化的,如机构维,机构名称会随时间而改变。

维表通常由维主键编码和维度名称以及其他属性字段组成。

2.概念二 —— 度量。

度量是反映企业运行情况或状态的一些数值指标,是业务量化的表示,可以用来监测业务的成效,比如销售额、利润来反应企业业绩。

3.概念三 —— 事实表

事实表也被称为主题表,它是由若干维度和度量组合而成,表达期望分析的主题。事实表中的多个维度的组合决定了事实表的数据详细程度,这种详细程度我们称之为颗粒度。以颗粒度来划分主题表的话,通常会有三种事实表:事务粒度事实表、周期快照粒度事实表、累积快照粒度事实表。

以一个例子来说明,比如某个商品的一笔销售记录,我们用表记录下来,这条记录已经是最小的数据记录单元,不可再分,因此它是一个事务粒度的事实表,我们将这张表按自然月进行汇总得到该商品月度销售情况,那么这张表就是按一定周期记录事实,我们称之为周期快照粒度事实表。最后一种累积快照事实表,则记录覆盖整个生命周期过程中的不同阶段的关键信息,如订单累积快照事实表,包括下单时间、付款时间、发货时间、收货时间等,通过多个时间字段记录订单从产生到业务完结的关键节点,在订单的不同阶段,这些时间字段逐步被填充。

在数据仓库中,维度表和事实表的设计需要遵循一些重要原则,即一致性维度和一致性事实。

所谓一致性维度是指在同一个集市内,两个维度如果有关系,要么就是完全一样的,要么就是一个维度在数学意义上是另一个维度的子集,例如,如果建立月维度话,月维度的各种描述必须与日期维度中的完全一致,最常用的做法就是在日期维度上建立视图生成月维度。这样月维度就可以是日期维度的子集,在后续钻取等操作时可以保持一致;

所谓一致性事实,即是指表达相同业务含义的度量(或称为指标)需要在描述定义和计算口径、度量单位等保持一致,杜绝系统间同词不同义或同义不同词的问题。

数据仓库分层架构

数据仓库有分层结构,每个分层结构都有各自的作用,大抵上分层结构分为:贴源层、整合层、集市层、汇总层。

  • 贴源层,就是将所有涉及业务系统的数据抽取到这一层集中存放,同时也会保留历史数据,这一层基本保留了与源系统一样的结构和数据。
  • 整合层,会保留最细颗粒的所有历史数据,它面向主题、规范化建模,站在全局的视角上规划主题、整合业务模型,在数据模型维度上完成重大的转变。
  • 集市层,面向某个业务主题的多维模型集合。通过预计算、预连接、维度规范化等方式进一步将业务系统的范式模型转变成面向主题的多维模型。
  • 汇总层,它应技术或业务需要而建,直面需求,方便展现,同时提高数据的存储性能。

数据仓库分层架构从整体上来看,是将数据从分散到集中、从细粒度到高度汇总、从业务模型到分析型模型转变的过程,从而更好的为分析型系统提供后台数据支撑。

数据仓库建设工具

数据仓库诞生已久,在此过程中,涌现了诸多优秀的数仓建设工具,有国内外的,有开源的有商业的,如常用建模工具有Erwin、PowerDesigner等,还有一些国内建模ETL工具,比如亿信华辰的数据工厂系统EsDataFactory。

如何建设数据仓库?

数据工厂登录界面

EsDataFactory集建模和ETL于一体,内置经典的数仓分层理念和丰富的数据处理组件,同时结合十多年的数仓实施经验,开发了批量建模、ETL快捷建模等多种建模方式,有效提升开发效率,更贴近实际数仓建设场景,可以快速帮助企业搭建数仓模型,完成 ETL敏捷开发。

数据工厂到底有什么用呢?话不多说,我们来看看数据工厂在项目上的成功应用。

案例一:某银行数仓建设

为全面满足某银行各项监管报送、分析决策类需求,基于数据仓库和商务智能BI技术,构建数据仓库和数据分析应用平台,为决策者提供数据支持服务。平台整合各业务数据,构建了经逻辑整合的、面向业务主题的综合应用数据仓库,能够支持高扩展性的辅助决策支持体系。通过数据补录手段对业务数据和报表数据分别进行人工补录,全面解决数据缺失、数据质量不高的问题。

使用数据工厂EsDataFactory,通过建模功能构建统一的符合企业数据标准的业务主题模型,通过ETL任务实现多源数据的整合、汇总,并根据业务规则创建数据质量检查体系,解决数据不准确、不一致等质量问题。该项目主要架构如下图:

 

如何建设数据仓库?

案例二:国家电网一体化数据应用平台

为建设“三型两网”,要实现电力流、数据流横向融合和纵向贯通,优先重点做好“大规划”业务技术支撑,而“大规划”体系的技术支撑单位,存在业务涉及面广,支撑部门多,工作中存在信息口径多、重复录入,信息交换困难,孤岛现象严重;业务数据协同、智能分析、辅助决策等深层次分析挖掘和综合利用不够;各项业务系统缺乏流程监控,精益化管理水平有待进一步提高等问题。

为提高信息化和精益化管理水平,建立统一、健全、高效的技术服务体系,亟需在“大规划”体系的技术支撑单位建设贯通各层级、集成各业务、信息高度共享的电网大数据综合管理平台。

电网规划大数据一体化平台拓展覆盖电网规划等全部规划领域,贯穿各层级,打通各环节,建设涵盖规划信息库、输电网规划、配电网规划、电网发展诊断、输电网成果管理和配电网成果管理六大块业务需求的全业务数据中心,全面支撑电网规划设计业务。

如何建设数据仓库?

平台建设借助[email protected]快速搭建数据采集平台,并通过亿信EsDataFactory完成各个业务系统数据的整合清洗,再结合亿信BI实现大规划、大建设成果的集中展示,快速完成数据采集、数据处理、数据应用的一整套流程。

数据仓库作为分析型系统的理论模型被逐渐应用完善,发展到今天,数据仓库已经成为企业信息化建设必不可少的重要支撑。亿信华辰的数仓工具-数据工厂EsDataFactory已成功应用于多个客户,经过无数项目的锤炼,成功证明其价值。