浅谈数据仓库架构设计

Posted 阿里云云栖号

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈数据仓库架构设计相关的知识,希望对你有一定的参考价值。

1. 数据中台与DW/BI/DSS

个人认为数据中台本质上是一种新的适配大数据技术发展的新的“数据仓库-决策支持(商业智能)”架构。这个架构是构建在传统的架构基础之上,对传统架构的一种新的发展。

数据中台从企业的视角出发,要求企业在构建数据仓库到决策支持系统的过程中构建一个服务型的架构。数据中台希望构建在数据仓库基础上的决策支持系统的建设能更加迅速敏捷,缩短业务需求实现过程中的数据开发过程的时间。数据中台把应用的共性需求沉淀在中台,做厚数据服务层,这样应用前台在构建的时候可以大幅度的利用已沉淀在中台的各种能力,可以做到快速搭建,形成大中台小前台的层次架构。

1.1. 数据仓库(DW)/商务智能(BI)/决策支持(DSS)

数据仓库之父比尔·恩门(Bill Inmon)在1991年出版的“Building the Data Warehouse” (《建立数据仓库》)一书中所提出的定义被广泛接受,数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。

数据仓库是一个过程而不是一个项目;数据仓库是一个环境,而不是一件产品。数据仓库提供用户用于决策支持的当前和历史数据,这些数据在传统的操作型数据库中很难或不能得到。数据仓库技术是为了有效的把操作形数据集成到统一的环境中以提供决策型数据访问,的各种技术和模块的总称。所做的一切都是为了让用户更快更方便查询所需要的信息,提供决策支持。

商业智能(Business Intelligence,简称:BI),又称商业智慧或商务智能,指用现代数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术进行数据分析以实现商业价值。

决策支持系统(Decision Support System)是一个基于计算机用于支持业务或组织决策活动的信息系统。 DSS服务于组织管理、运营和规划管理层(通常是中级和高级管理层),并帮助人们对可能快速变化并且不容易预测结果的问题做出决策。决策支持系统可以全计算机化、人力驱动或二者结合。

从概念上来讲,BI与DSS都是一组概念的概括性的总称,可以有很多定义。从历史沿革上来说,先有的决策支持系统,利用计算机来辅助人做决策。后续商务智能的发展,为决策支持提供了数据分析预测的能力,商务智能(BI)提供的数据分析能力是现代决策支持系统(DSS)的基石。

(概念引用:商务智能与分析-决策支持系统)

1.2. 先贤的一些词汇与观点的争议

数据仓库行业内容的两位观点部分相左的先贤,分别是Bill Inmon与Ralph Kimball。

1.2.1. 定义与用词

在数据仓库支撑的分析型系统的用词上:

Bill Inmon-数据仓库是体系结构设计环境的核心,是决策支持系统处理的基础。(The data warehouse is the heart of the architected environment, and is the foundation of all DSS processing. )

Ralph Kimball-数据仓库和商业智能(Data Warehousing and Business Intelligence, DW/BI)系统

显然BI与DSS是有区别的,但是DW无疑是可以支撑BI和DSS。BI是手段是能力,而DSS是BI的目标。

在数据仓库的定义上,因为Bill Inmon是数据仓库之父,他对数据仓库的定义获得了广泛的认可。而Ralph Kimball并未对数据仓库概念有单独的定义,但是从架构与实现上来看,其实还是有区别的。

1.2.2. 架构设计

在数据仓库架构的设计上:

Bill Inmon - 全局视角,要先构建企业级数据仓库,然后再基于企业级数据仓库之上去构建数据集市。数据的整合是的企业对数据有一个真正企业范围级的观察,业务分析人员是从整体而不是局部进行数据分析。

数据仓库前期的需求是不明确的,业务人员是先要看到数据再去构建探索真实需求,所以数据仓库是不断的迭代构建。采用3RD模型来构建一个企业级的业务模型,确保数据的完整性与一致性。

Ralph Kimball -需求视角,以业务需求驱动,面向分析。事实要构建在最细的粒度上,不同的业务需求之间靠一致性维度来确保数据的一致性。

  • DW/BI架构

  • 辐射状企业信息工厂(CIF)

  • 混合辐射状企业信息工厂与KimBall架构

从上面几张图上我们可以看到,之所以在Kimball的书中会有与Inmon组合的混合架构,是因为这几张架构图中的层次基本是一致的。而Kimball架构中并未去描述如何去做数据的规范化、完整性、一致性,只是要去做,而Inmon的架构中恰好可以实现这个部分。对于后面数据展现区的数据模型,又都一致的认为是以维度模型来建模。

从实际构建方式上来看,Bill Inmon架构强调数据仓库应该是统一构建,业务模型是企业级的。这个出发点是更具有宏观意义,假设企业有30个交易系统,建设的时候就需要都纳入需求分析范围,然后按需分阶段完成企业级的数据仓库模型。Ralph Kimball架构强调以业务需求为导向,构建维度模型,后续的需求只要确保整个企业范围内一致性维度,就可以构建更加高效的数据仓库。Ralph Kimball认为Bill Inmon的架构太过于庞大,可能会让企业投入巨大但是看不到回报。而Bill Inmon则认为维度模型构建的数据仓库,很容易变成松散的多个不一致的数据集市。虽然Ralph Kimball也强调独立集市架构是不可取的。

其实综合实践与现实中数据仓库的案例来看,在以Teradata\\IBM\\Oracle等公司构建的企业级的数据仓库架构,全部都是以Bill Inmon的架构来构建了一个3RD的企业级的数据仓库模型,并且在一些规模宏大的银行、保险、电信等行业取得了比较巨大的成功。尤其是国内Teradata的金融模型,几乎占据了国内全部的大银行、保险机构的市场。而Ralph Kimball的架构,在银行、电信、零售电商等行业也是受到了广泛的好评。

这两种架构各有千秋,各有侧重。并且从两位先贤相互指责的问题来看,问题都是真实存在的。Ralph Kimball架构虽然强调不能建设成独立集市架构,要采用全局一致性维度,但是,业务部门分头建设且以需求为导向的结构,很容易失控就走成独立集市架构。Bill Inmon的架构因为有一层数据仓库层,从机能上就会去协调,避免这种情况的产生。但是Bill Inmon的架构,因为构建投入巨大,也只是在金融业获得了巨大的成功。在一些业务相对简单规模不大的客户场景中,因为交易型系统本身就是3RD模型,所以,本身并没有需求再去构建一个数据仓库的3RD模型,ODS系统就基本替代的这一层。

在数据集市、数据应用的分析型场景中,Ralph KimballBill Inmon都应该使用维度模型来构建。

1.3. 综合的选择

从Bill Inmon与Ralph Kimball的书中,我们可以看到两位先贤的观点。个人认为在不同的场景可以有不同的选择,在业务复杂、业务变化不频繁、数据仓库上游的交易型系统特别多、能接受足够长时间大投入的企业级数仓建设的场景,Inmon的架构(或者说是CIF与DW/BI混合架构)显然是更好的选择,这种架构更加宏观,且具有企业级视角,只有在这种视角下才能实现数据中台的设计目标。而在业务模型简单、业务变化频繁、难以接受企业级架构构建的时间成本的场景,最好使用DW/BI架构。

如果可以放眼眼前的数据仓库的案例,就会发现这是一种比较现实的选择。

原文链接

本文为阿里云原创内容,未经允许不得转载。

以上是关于浅谈数据仓库架构设计的主要内容,如果未能解决你的问题,请参考以下文章

分析工具9-企业的数据仓库和数据集市-企业数据架构的演进

数据仓库之架构发展

数据仓库的分层架构设计

如何创建数据集市

数据仓库数据集市数据湖,你的企业更适合哪种数据管理架构?

数据仓库架构设计的一些概念