浅谈数据仓库架构设计

阿里云云栖号 阿里云云栖号     2022-10-22     298

关键词:

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架构。

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

原文链接

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

数据仓库的架构与设计(代码片段)

公司之前的数据都是直接传到Hdfs上进行操作,没有一个数据仓库,趁着最近空出几台服务器,搭了个简陋的数据仓库,这里记录一下数据仓库的一些知识。涉及的主要内容有:什么是数据仓库?数据仓库的架构数据仓库多维数... 查看详情

数据仓库的架构与设计(代码片段)

公司之前的数据都是直接传到Hdfs上进行操作,没有一个数据仓库,趁着最近空出几台服务器,搭了个简陋的数据仓库,这里记录一下数据仓库的一些知识。涉及的主要内容有:什么是数据仓库?数据仓库... 查看详情

数据仓库的分层架构设计

数据仓库采用分层架构,分为缓冲层、操作数据层、明细数据层、汇总数据层和数据集市层。如图为数据仓库分层架构示意图。1、缓冲层概念:用于存储每天的增量数据和变更数据。数据生成方式:直接从Kafka接收源数据或从业... 查看详情

数仓实践:浅谈kimball维度建模

我们不管是基于Hadoop的数据仓库(如Hive),还是基于传统MPP架构的数据仓库(如Teradata),抑或是基于传统Oracle、MySQL、SQLServer关系型数据库的数据仓库,其实都面临如下问题:怎么组织数据仓库中... 查看详情

21.数据仓库架构体系总结

一、数据仓库架构 二、数据主题域设计  三、星型模型设计   数据处理技术QQ群:467404632      原文地址https://www.cnblogs.com/hadoopdev/p/5753063.html 查看详情

21.数据仓库架构体系总结

一、数据仓库架构 二、数据主题域设计  三、星型模型设计   数据处理技术QQ群:467404632      原文地址https://www.cnblogs.com/hadoopdev/p/5753063.html 查看详情

数仓实践:浅谈kimball维度建模

我们不管是基于Hadoop的数据仓库(如Hive),还是基于传统MPP架构的数据仓库(如Teradata),抑或是基于传统Oracle、MySQL、SQLServer关系型数据库的数据仓库,其实都面临如下问题:怎么组织数据仓库中... 查看详情

数仓实践:总线矩阵架构设计

如何设计一套切实可行的数据仓库呢?我们要明白,对于数据仓库的设计是不能完全依赖于业务的需求,但往往又必须要服务于业务的价值。因此,在构建数据仓库前,我们往往会通过总线矩阵设计,来快... 查看详情

电商数仓笔记1(数据仓库概念,项目需求及架构设计,数据生成模块)(代码片段)

电商数仓一、数据仓库概念二、项目需求及架构设计1、项目需求分析2、项目框架(1)技术选型(2)系统数据流程设计(3)框架版本选型(4)服务器选型(5)集群规模(6)集群资... 查看详情

浅谈一下可扩展性网站架构设计

扩展性(Extensibility)-指对现有系统影响最小的情况下,系统功能可持续扩展或者提升的能力,表现在系统基础设施稳定不需要经常变更,应用之间较少依赖和耦合,对需求变更可以敏捷响应。它是系统架构设计层面的开闭原则... 查看详情

浅谈网站架构演变

浅谈网站架构   作为一个从事后台开发已经2年的程序员来讲,大部分时间都忙于业务逻辑分析,往往忽略了业务之上的架构层面的设计。本文作为网站架构知识的补充,不仅开拓了眼界,也对以后的程序设计益处多... 查看详情

浅谈12306核心模型设计思路和架构设计

前言春节期间,无意中看到一篇文章,文章中讲到12306的业务复杂度远远比淘宝天猫这种电商网站要复杂。后来自己想想,也确实如此。所以,很想挑战一下12306这个系统的核心领域模型的设计。一般的电商网站,购买都是基于... 查看详情

转--《浅谈12306核心模型设计思路和架构设计》

12306这个系统,核心要解决的问题是网上售票。涉及到2个角色使用该系统:用户、铁道部。用户的核心诉求是查询余票、购票;铁道部的核心诉求是售票。购票和售票其实是一个场景,对用户来说是购票,对铁道部来说是售票。... 查看详情

数据仓库设计问题

】数据仓库设计问题【英文标题】:DataWarehousingDesignQuestion【发布时间】:2010-08-1213:06:05【问题描述】:我正在开发一个数据仓库,但遇到了一个不知道如何解决的问题。当前架构定义如下:DimInstructor我想实现一个场景,如果教... 查看详情

转载etl浅谈

ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。 ETL是BI项目重要的一个环节。通常情况下,在BI项目中ETL... 查看详情

数仓实践:总线矩阵架构设计

如何设计一套切实可行的数据仓库呢?我们要明白,对于数据仓库的设计是不能完全依赖于业务的需求,但往往又必须要服务于业务的价值。因此,在构建数据仓库前,我们往往会通过总线矩阵设计,来快... 查看详情

浅谈秒杀系统架构设计

http://mp.weixin.qq.com/s?__biz=MjM5NDM4MDIwNw%3D%3D&mid=2448834705&idx=1&sn=25cf3d4f6d6826e564a634901189eb8f&chksm=b28a405185fdc9478b6bd140396a37bbc2af68bdbd1fdf3ec9377e07ef5ce457849d 查看详情

浅谈基于prism的软件系统的架构设计

  很早就想写这么一篇文章来对近几年使用Prism框架来设计软件来做一次深入的分析了,但直到最近才开始整理,说到软件系统的设计这里面有太多的学问,只有经过大量的探索才能够设计出好的软件产品,就本人的理解,一... 查看详情