网易有数:漫谈企业数据仓库的演进

共 4020字,需浏览 9分钟

 ·

2021-06-26 13:18

数据仓库的概念诞生最早可追溯到上世纪70年代,回顾早期的企业环境,企业的生产与服务是一个很长周期,导致业务数据呈现一种粗粒度模式。


随着互联网的快速渗透,从早期的pc到现在的移动互联网,业务的需求与服务周期逐渐变短,业务数据量级,与数据类型的多样化暴增,对应着的技术、架构、理论也显出快速发展。从最开始的数据仓库到现在的大数据,中间经历过太多的技术、架构模式的演进与变革,从最初的数据仓库到海量数据,从大数据到现在的数据平台,从数据中台到数据湖。中间还穿插着人工智能与云计算两大技术体系。


数据仓库在国外的发展历史多年,进入中国的时间大概在1998-1999年左右,中间大致经历了两个阶段,从传统企业的数据仓库架构到现在互联网时代的大数据之下的数据仓库架构,有着明显的变更。本文按照数据仓库的发展历程,细说数据仓库的发展历程,最后再讨论下技术体系对数据仓库架构的影响。


——1——

传统企业数据仓库


从数据仓库的萌芽至今,传统企业的数据仓库大致可以分为五个时代,四种架构。

  • 1970~1991 数据仓库概念萌芽到全企业集成

  • 1991~1994 EDW企业数据集成时代(Inmon 数据仓库一书,范式建模)

  • 1994~1996 数据集市时代(kimball维度建模)

  • 1996~1997 神仙大战时代(维度建模与范式建模争论)

  • 1998~2001 合并时代(CIF架构)


1.1 范式建模


五个时代均是以重要事件或者人物的出现作为划分,比如说EDW企业数据集成时代是以Bill Inmon大作《Building the Data Warehouse》作为划分,在这本书里面Inmon给出了数据仓库定义:数据仓库(DataWarehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化的(Time Variant)数据集合,用于支持管理决策(Decision-Making Support)。该书还提供了建立数据仓库的指导意见和基本原则。凭借此书,Bill Inmon被称为数据仓库之父。


1.2 维度建模


数据仓库的概念确立之后,有关数据仓库的实施方法、实施路径和架构等问题引发了诸多争议。在实际运用中,大部分企业也都以失败告终。这时候数据集市时代代表人物 Ralph kilmball及其代表作《The Data Warehouse Toolkit》出现。在数据仓库的建设上提出了自下而上的建设方法,刚好与Bill Inmon的范式建模自上而下建设理论相反。这两种理论的架构是各有千秋,所以就进入的争吵年代。

(范式建模以及维度建模的架构图)


Inmon提出的集线器的自上而下(EDW-DM)的数据仓库架构。操作型或事务型系统的数据源,通过ETL抽取转换和加载到数据仓库的ODS层,然后通过ODS的数据建设原子数据的数据仓库EDW,EDW不是多维格式的,不方便上层应用做数据分析,所以需要通过汇总建设成多维格式的数据集市层。


范式建模应用在EDW层,一个符合3范式的关系必须具有以下三个条件:

  • 每个属性的值唯一,不具有多义性;

  • 每个非主属性必须完全依赖于整个主键,而非主键的一部分;

  • 每个非主属性不能依赖于其他关系中的属性,因为这样的话,这种属性应该归到其他关系中去。


但是由于EDW的数据是原子粒度的,数据量比较大,完全规范的3范式在数据的交互的时候效率比较低下,所以通常会根据实际情况在事实表上做一些冗余,减少过多的数据交互。


Inmon理论下结构就是:ODS、EDW(ADM/FDM)和DM,也就是贴源层、主题模型层、共性加工层以及集市层。每一个层对应于数据库下面的模式,接下来依次介绍:

(1)ODS(贴源层):即这里存放的数据与原系统保持一致,将采集公司所有的系统产生的数据以及外部数据(包括合作数据以及爬虫获得的数据),将所采集的数据汇总到一起,供EDW和DM使用;

(2)EDW:这一层分为两个,即ADM(共性加工层)和FDM(主题模型层)。其中FDM将从ODS层不同系统不同表的字段进行分类,同一主题的字段都归为一类,之前针对不同行业的十大主题;ADM是加工一些共性的指标,指标从ODS或者FDM的字段加工来,这层主要供集市层使用;

(3)DM:数据集市层,这一层是将业务部门所关注的指标进行汇总,形成的数据,不同的业务部门可以形成不同的集市,具体情况可以视情况而定;集市层的架构可以细分为:基础层、汇总层和分析层。


Kimball提出的总线式的自下而上(DM-DW)的数据仓库架构。同样的,操作型或事务型系统的数据源,通过ETL抽取转换和加载到数据仓库的ODS层,然后通过ODS的数据,利用维度建模方法建设一致维度的数据集市。通过一致性维度可以将数据集市联系在一起,由所有的数据集市组成数据仓库。


在复合式的数据仓库架构中,操作型或事务型系统的数据源,通过ETL抽取转换和加载到数据仓库的ODS层,然后通过ODS的数据,利用范式建模方法,建设原子数据的数据仓库EDW,然后基于EDW,利用维度建模方法建设数据集市。一般采用的模型是星型模型(推荐)和雪花模型。


范式建模和维度建模的区别在于,范式建模是先进行全企业数据的数据仓库建设,包含数据仓库生命周期中的所有内容,在一开始的时候不会过于关注数据的应用与变现,通过对数据质量的摸底,分阶段的去按照一条数据主线的方式将全企业数据聚集起来。最后再将第一阶段数据仓库中的数据再次通过阶梯型高度聚合进入到数据集市DM中,完成对业务的支撑。


由于需要对企业全局进行规范化建模,这将导致较大的工作量。但这一步必须完成好,才能继续往上建设数据集市。因此也就导致规范化数据仓库需要一定时间才能投入使用,敏捷性相对后者来说略差。但是规范化数据仓库一旦建立好了,则以后数据就更易于管理。而且由于开发人员不能直接使用其数据仓库(通过数据集市的方式使用),更加确保了数据质量。还有由于中心数据库是采用规范化设计的,冗余情况也会更少。


而维度建模则是更像是根据需求,面向业务的提取相关业务数据,按照维度建模的方式组织数据,最后进入到数据集市,维度建模敏捷性更强,而且适用于业务变化比较频繁的情况,对开发人员的要求也没有规范化数据仓库那么高。


(范式建模与维度建模大致区别)


1.3 CIF架构


随着数据仓库的不断实践与迭代发展,从争吵期进入到了合并的时代,Bill inmon 与 Ralph kilmball 的争吵没有结论,干脆提出一种新的架构包含对方,也就是后来Bill Inmon 提出的CIF(corporation information factory) 架构模式,这也算是数据仓库的第三代架构,其架构特点是把整个架构划分为不同层次,把每一层次的定义与功能都详细的描述下来,CIF主要包括集成转换层(DSA)、操作数据存储(ODS)、数据仓库(EDW)、数据集市(DM)、探索仓库(EW)等部件。



在后续的数据仓库建设过程中,一般是合用维度建模和CIF两种架构进行的,即建立CIF的数据仓库和维度建模的数据集市。


CIF模式架构建设周期较长且设计复杂,初始阶段建立企业级数据模型和数据标准以及相关的数据清洗整合工作,需要花费大量的人力和时间,但是一旦建立起企业级数据模型,数据的完整性和一致性问题就能够得到根本解决,针对需求变化易于扩展,后续的成本较低。


维度建模架构首先着重于某几个业务过程进行构建,以增量演进的方式简化企业级数据仓库的实现过程,启动成本和设计方法较为简单,通过维度建模方式将原子层和汇总层合二为一,可以快速创建分析应用,但是企业级数据仓库的稳定性和数据集市之间数据的一致性需要持续维护一致性维度来保证,后续扩展数据集市的工作量较大。


1.4 OPDM


OPDM 大约是在2011年提出来的,严格上来说,OPDM 操作型数据集市(仓库)是实时数据仓库的一种,它更多的是面向操作型数据而非历史数据查询与分析。这里的操作型数据集市指的是将那些支持企业日常运作的系统数据(比如说订单系统,财务系统,CRM系统产生的数据),通过一种实时技术,将这些分布在各个孤岛的数据,按照业务的逻辑有机的整合到一起。提供业务系统的监控与指导(这些技术可以大体可以认为是storm、spark、flink)这一部分的内容和后续大数据时代下的数据仓库实时数仓重合,我们后续进行讨论。


——2——

互联网时代的大数据平台


传统企业数据仓库的正确读法应该是 传统-企业数据仓库,从架构体系上来说,传统企业数据仓库是数据仓库一个从无到有的过程,中间的有着不停的探索与实践。但是随着互联网的高速发展,传统企业数据仓库的劣势也愈来展现。

  • 不能满足海量数据存储需求

  • 不能处理不同类型的数据

  • 计算与处理能力差


随着大数据技术的发展,互联网时代的数据仓库闪亮登场,互联网的数据平台从07年-08年左右开始迅猛发展,在发展的初期也是从传统数据平台的第三代架构开始演进的,互联网产品发展特点是“糙、快、猛”,原有的技术体系必然无法支撑高IO吞吐、密集型计算,由此带来了一系列的技术变革,适合互联网时代的大数据平台应运而生。


(网易有数大数据平台架构)

作者:熊大,目前就职于网易数帆 - 有数事业部,专注于大数据计算领域,现网易大数据平台HIVE组件的运维与开发。

浏览 68
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报