1.3 数据仓库构建方法论
目前,关于数据仓库的构建,主要有以下两种方法论:
(1)Inmon提出的传统的数据仓库构建方法;
(2)Ralph Kimball提出的敏捷数据集市构建方法。
这两种方法论各有优劣,我们逐一来看。
1.3.1 传统的数据仓库构建方法
数据仓库之父Inmon所提出的数据仓库构建方法,通常也被称为传统的数据仓库构建方法。此种方法期望能够从整个企业的全局视角入手,建立企业级的数据模型,从而建立起数据仓库,然后根据各个部门的要求,进而从数据仓库中取出相应的数据,形成能够满足各个部门需求的数据集市。其构建流程如图1-1所示。
图1-1 传统的数据仓库构建流程
传统的数据仓库构建方法的优势如下。
(1)能够在一开始就从企业的全局来审视IT系统及数据现状。这样做的好处极为明显,因为在项目初期就能够去考虑如何构建整个企业的数据视图,所以能够充分了解企业现状,进而引出下一个优势。
(2)能够借助搭建数据仓库的机会,梳理整个企业现有的IT系统和数据,进而为将来的数据治理,甚至是数字化运营打下良好的基础。
(3)企业级的数据仓库项目技术含量高,采用的工具和技术也比较多。若企业可以通过自己的IT部门来完成这样的项目,则能够很好地锻炼相关的技术人员。
(4)构建数据仓库的过程,其实也是对企业现有业务流程进行梳理的过程。
但是,这种数据仓库的构建方法存在不少问题。
(1)实施难度大。构建企业级的数据仓库,需要设计企业级的数据视图,这就对设计人员提出了极高的要求。另外,在进行ETL处理时,需要从多个不同的IT系统、数据源、各种文件,甚至外部数据源中抽取数据,有时可能需要大量的开发工作。并且,来自不同IT系统的数据,往往会存在大量的数据不一致、相互冲突、重复,甚至无法区分谁对谁错的情况。笔者曾经参与过数个企业级数据仓库项目,遇到的此类问题真是太多了。
(2)项目周期长。一般的企业级数据仓库项目,其实施周期至少在半年以上。其间一旦出现关键参与人员中途退出或其他意外情况,就很容易导致项目延期。虽然在IT行业中项目延期是常事,但是数据仓库项目的延期现象尤为突出。
(3)前期成本高。构建企业级的数据仓库,需要在前期就进行大量的人力、财力投入,需要购置大量的设备,组建由多人构成的实施团队。虽然现在可以通过使用公有云来降低硬件成本,但是其他的前期投入依然居高不下。
(4)敏捷性较差。由于此种构建数据仓库的方法周期较长,因此缺乏敏捷性,尤其是在业务上。如果在项目后期才发现早期设计的数据模型有问题,那么返工的成本就比较高。
综上所述,可以看出,传统的数据仓库构建方法是一种典型的优缺点都极为明显的方法。
1.3.2 敏捷数据集市构建方法
与之相对,Kimball提出的敏捷数据集市构建方法(有时也称为自底向上方法)则在相当大的程度上避免了传统数据仓库构建方法的一些缺点,同时又有着自己独特的优势。该方法从一个较小的业务场景入手,快速构建数据模型,收集数据并构建数据集市,然后逐步扩展,最终形成整个企业级的数据仓库。敏捷数据集市构建流程如图1-2所示。
与传统的方法相比,敏捷数据集市构建方法的优势极为明显。
(1)前期投入成本低,试错成本低。由于是从一个小的业务场景开始的,所以此种构建方法属于典型的“船小好调头”。企业可以选取最紧要、最容易出成果、数据质量最好的场景下手。这样做项目成功率就比较高。另外,由于是从小处着手的,因此即使失败了成本也不会太高。
图1-2 敏捷数据集市构建流程
(2)以业务为导向。数据模型的构建和数据集市的搭建都是从业务出发的,更容易获得业务部门的认可。而我们都知道,业务部门的配合,是数据仓库项目成功的关键因素之一。并且,以业务为导向的另一个好处就是能够尽快出成果,无论对于业务部门,还是高层而言,这都是一件能够影响全局的事情。
(3)周期短、见效快。由于敏捷数据集市构建方法的切入点小,因此接下来的数据收集与维度模型创建的工作量和技术难度也就比较低,故而在较短的时间内就能够完成数个业务场景的模型构建和结果展示。项目周期一般以周计。
(4)具有足够的敏捷性。切入点小,项目周期短,带来的好处就是整个项目将具有相当高的敏捷性。当发现初期的数据模型或分析方向有误时,可以随时调整,即便全部返工,其带来的损失也相当小。
(5)技术难度低。敏捷数据集市构建方法,由于是从小的业务场景入手的,初期的数据量不大,可以选择IT人员比较熟练的工具和技术,所以技术上的难度就会比较低。这对于提高项目的成功率,以及加强参与人员的信心极为重要。
当然,敏捷数据集市构建方法也有自己的缺点。
(1)初期无法获得企业的全局视图。敏捷数据集市的构建是从小处着手的,固然技术难度和工作量都降了下来,但对于设计人员而言,看到的往往是部分数据和业务,一叶障目,不见泰山,这样就很容易到后期发现前期不少的数据模型之间存在冲突。毕竟设计整个企业的数据模型,与设计部分业务场景或者部门级的数据模型,其设计思路、工具及技术都可能是不同的。
(2)存在多次返工的可能。敏捷数据集市带来了较低的试错成本,但是项目出现返工的可能性也会随之增大,尤其是在项目初期。
(3)无法对IT人员进行很好的锻炼。毕竟项目的技术难度等都已经大幅下降了。
当然,我们在这里探讨传统数据仓库构建方法和敏捷数据集市的构建方法之间的优劣,其目的并非在于让企业必须选择某一种构建方法,而是希望通过列出不同构建方法之间的差异,让企业根据自己的实际情况自主决策。对于一些具有较强IT技术实力的大企业而言,一上来就实施企业级的数据仓库项目,虽然风险较大,但所带来的收益也是相当可观的;而对于IT实力较弱,或者需要借助外部资源来构建数据仓库的企业而言,采用敏捷数据集市构建方法则是相对比较合适的选择。
1.3.3 Oracle推荐的数据仓库构建方法
Oracle的相关产品很早就开始支持数据仓库技术了,无论是Oracle系列各版本的数据库、当年的OWB和BIEE,还是后来的OGG、ODI,以及现在的ADW和OAC等诸多产品,都可以应用到企业级数据仓库项目的实施当中。并且随着当前云计算技术的发展,以及Oracle正逐步在全球构建自己的数据中心和Region,结合Oracle多年来在实施众多数据仓库项目上的经验和成熟产品,基于敏捷数据集市的构建方法论,Oracle也提出了自己的敏捷数据平台构建方法。其数据平台架构简图如图1-3所示。
图1-3 Oracle推荐的数据平台架构简图
与传统的数据仓库构建方法相比,Oracle推荐的这种方法,有自己明显的特征。
(1)业务导向。此种方法完全以企业的最终业务为导向,直接从业务中的关键问题,也就是从业务运行中的痛点、难点出发,直击痛处,这样就能够快速见效,树立企业建立敏捷数据平台的信心,并且对企业业务的促进作用更直接、更有效。
(2)由小及大。从一个或几个业务痛点出发,然后逐步扩展,数据集市也随之增加,最终将整个企业的数据打通,并纳入该数据平台中。
(3)简化流程。数据可以直接从业务系统或其他原有位置进入数据集市,并按照业务分析的需求逐步扩充,然后进入数据仓库,从而形成整个企业的敏捷数据平台。
(4)敏捷高效。项目的实施周期短,业务上见效快,这对于数据分析和业务洞察都极有好处。
不仅如此,而且Oracle推荐的方法是完全基于公有云的,因此云计算有与生俱来的弹性,也就是按需扩展和缩容的能力。各个企业完全可以根据自己的需要,随时在线扩充自己数据平台的CPU或存储容量,业务应用完全不会中断,可以保持全程在线。
另外,Oracle推荐的这种敏捷数据平台构建,与传统的数据仓库构建方法并非排斥的关系。对于没有数据仓库或数据平台的企业而言,完全可以采用Oracle的这种构建方法;而对于已有数据仓库的企业而言,Oracle推荐的方法依然可以起到加成的作用,也就是在现有的数据仓库之上,提供强大的敏捷性和弹性,从而能够让企业更从容地应对瞬息万变的市场需求。
从产品上来说,Oracle推荐的方法是基于ADW和OAC这两款关键的基于Oracle公有云的成熟产品。本书后面的内容将为读者深入介绍这两款产品的功能、技术特征,以及如何使用。
Oracle的售前专家曾经在一次用户的数据平台项目实施中,特意将Oracle推荐的基于ADW+OAC的方案与传统的数据仓库进行了对比,具体内容如表1-1所示(当然,不同的数据仓库或数据平台项目的差异性极大,因此表中数据仅作为参考)。
表1-1 ADW+OAC与传统数据仓库对比
续表