当前位置: 首页 > 科技观察

浅谈数据仓库架构设计

时间:2023-03-18 22:16:23 科技观察

1.DataCenter与DW/BI/DSS个人认为DataCenter本质上是一种适应大数据技术发展的新型“数据仓库——决策支持(商业智能))”架构。这种架构是在传统架构的基础上,是对传统架构的新发展。从企业的角度来看,数据中心要求企业在构建数据仓库到决策支持系统的过程中构建面向服务的架构。数据中心希望基于数据仓库的决策支持系统建设能够更加快速、敏捷,缩短数据开发过程在业务需求实现过程中的时间。数据中台将应用的共性需求沉淀在中台,构建厚厚的数据服务层,使得在应用前台搭建时,可以极大的利用已经沉淀在中台的各种能力,以及可快速搭建,形成大中型平台。台湾小前台的层级结构。1.1.数据仓库(DW)/商业智能(BI)/决策支持(DSS)数据仓库之父BillInmon在1991年出版的《构建数据仓库》(《建立数据仓库》)一书中提出的定义被广泛接受。数据仓库是面向主题(SubjectOriented)、集成(Integrate)、相对稳定(Non-Volatile)、反映历史变化(TimeVariant)的数据集合,以支持管理决策。数据仓库是一个过程,而不是一个项目;数据仓库是一种环境,而不是一种产品。数据仓库为用户提供在传统操作型数据库中难以或不可能获得的用于决策支持的当前和历史数据。数据仓库技术是将运营数据有效整合到统一环境中,提供决策数据访问的各种技术和模块的总称。我们所做的一切都是为了让用户更容易、更快捷地搜索他们需要的信息并提供决策支持。商业智能(BusinessIntelligence,简称BI),又称商务智能或商务智能,是指利用现代数据仓库技术、在线分析处理技术、数据挖掘和数据呈现技术进行数据分析,实现商业价值。决策支持系统(DecisionSupportSystem)是一种以计算机为基础的信息系统,用于支持企业或组织的决策活动。DSS服务于组织管理、运营和计划管理(通常是中层和高层管理人员),并帮助人们就可能迅速变化且结果不易预测的问题做出决策。决策支持系统可以是完全计算机化的、人工驱动的或两者的结合。从概念上讲,BI和DSS是一组概念的总称,可以有多种定义。从历史上看,以前的决策支持系统是利用计算机来辅助人们进行决策的。商业智能的后续发展为决策支持提供数据分析和预测能力,而商业智能(BI)提供的数据分析能力是现代决策支持系统(DSS)的基石。(概念参考:商业智能与分析-决策支持系统)1.2.圣人的一些话和观点有争议的数据仓库行业内容观点部分不同的两位圣人是BillInmon和RalphKimball。1.2.1.定义和术语在数据仓库支持的分析系统的术语中:BillInmon-数据仓库是架构设计环境的核心,也是决策支持系统处理的基础。(数据仓库是架构环境的心脏,是所有DSS处理的基础。)RalphKimball-数据仓库和商业智能(DW/BI)系统显然BI和DSS是有区别的,但DW无疑可以支持BI和DSS。BI是一种手段或能力,DSS是BI的目标。在数据仓库的定义方面,由于BillInmon是数据仓库之父,他对数据仓库的定义得到了广泛认可。RalphKimball没有单独定义数据仓库的概念,但是从架构和实现的角度来看,还是有区别的。1.2.2.架构设计在数据仓库架构设计方面:BillInmon-从全局的角度,首先构建企业级数据仓库,然后基于企业级数据仓库构建数据集市。数据的集成使企业能够对数据有一个真正的企业范围的观察,业务分析师从整体而不是部分分析数据。前期对数据仓库的需求不明确。业务人员要先看到数据,再去构建和挖掘真正的需求,所以数据仓库是不断迭代构建的。使用3RD模型构建企业级业务模型,保证数据的完整性和一致性。RalphKimball-需求视角,由业务需求驱动,面向分析。事实应该以最细的粒度来构造,并使用一致性维度来保证不同业务需求之间的数据一致性。DW/BIarchitectureradialenterpriseinformationfactory(CIF)hybridradialenterpriseinformationfactoryandKimBallarchitecture从上面的图片我们可以看出,Kimball的书中之所以会出现结合Inmon的混合架构,是因为这些架构图中的层级是基本一样。Kimball架构没有描述如何标准化、完整和一致性数据,而只是去做,而Inmon架构正好可以实现这部分。至于后面数据展示区的数据模型,约定是用维度模型建模。从实际构建方式来看,BillInmon架构强调数据仓库应该统一构建,业务模型应该是企业级的。这个出发点比较宏观。假设某企业有30个事务系统,在构建时需要全部纳入需求分析范围,然后根据需要分阶段完成企业级数据仓库模型。RalphKimball体系结构强调根据业务需求构建维度模型。只要后续需求保证整个企业的维度一致,就可以构建更高效的数据仓库。拉尔夫·金博尔认为,比尔·英蒙的结构过于庞大,可能会让企业投入很多却看不到回报。BillInmon认为,维度模型构建的数据仓库很容易成为多个不一致的数据集市的松散集合。尽管拉尔夫·金博尔也强调独立的集市结构不可取。事实上,从综合实践和真实数据仓库案例来看,Teradata\IBM\Oracle等公司构建的企业级数据仓库架构都是基于BillInmon的架构构建3RD企业级数据仓库.模式,并在一些大型银行、保险、电信等行业取得了巨大的成功。尤其是国内的Teradata金融模型几乎占据了国内大型银行和保险机构的所有市场。RalphKimball的架构也在银行、电信、零售电子商务等行业获得了广泛的好评。这两种架构各有千秋,各有侧重。而且从两位圣人的相互指责来看,问题是实实在在的。虽然RalphKimball架构强调不能作为一个独立的集市架构来构建,必须采用全局一致性维度,但是,业务部门的分离构建和需求导向的架构很容易成为一个独立的集市架构失控。因为BillInmon的架构有数据仓库层,所以会在功能上进行协调,避免这种情况。但是BillInmon的架构,因为建设投入巨大,只在金融行业取得了巨大的成功。在一些业务比较简单、规模不大的客户场景,因为事务系统本身就是3RD模型,所以不需要自己去构建数据仓库的3RD模型,ODS系统基本替代了这一层。在数据集市和数据应用的分析场景中,RalphKimball和BillInmon都应该使用维度模型来构建。1.3.综合选择从比尔·英蒙和拉尔夫·金博尔的书中,我们可以看出两位先贤的观点。我个人认为在不同的场景下会有不同的选择。在业务复杂,业务变化不频繁,数据仓库上游有大量事务系统,足够长的时间可以接受大投入的企业级数据仓库的建设,Inmon的架构(或者CIF和DW/BI混合架构)显然是更好的选择。这种架构更加宏观,具有企业级的视角。只有从这个角度来看,才能实现数据中心的设计目标。在业务模型简单,业务变更频繁,难以接受搭建企业级架构的时间成本的场景下,最好使用DW/BI架构。如果你能看看眼前这个数据仓库的案例,你会发现这是一个更现实的选择。