数据集市入门[作者:Nancy Padrick]

数据集市入门

作者: Nancy Padrick  

为何构建数据集市?

    快速发展的、充满竞争的商业世界对于及时、准确的信息有着永无止境的需求,一些 IT 专家对此认为其必然结果就是创建数据集市。其他专家却质疑用户和客户所要付出的工作和成本。毕竟,难道不能直接从遗留系统和在线事务处理(On Line Transaction Processing,OLTP)系统通过特定的报表获得相同的信息吗?在 EDS 的商业智能小组里,我们就经常被问到这一问题。经验让我们有许多机会使我们的同行和客户了解这项有用技术的价值。这篇文章讨论了商业智能的基础,以及我们为何和如何建议构建数据集市解决方案。我们共享了从构建数据集市的经验中获得的关键教训,并且希望本文能帮助其他从事实现数据集市的人。

    那么,一个组织为何要构建数据集市呢?虽然 OLTP 和遗留系统拥有宝贵的信息,但是可能难以从这些系统中提取有意义的信息并且速度也较慢。而且这些系统虽然一般可支持预先定义操作的报表,但却经常无法支持一个组织对于历史的、联合的、“智能的”或易于访问的信息的需求。因为数据分布在许多跨系统和平台的表中,而且通常是“脏的”,包含了不一致的和无效的值,使得难于分析。

    例如,一个索赔支付系统为了尽可能快地支付或拒绝索赔,通常要处理许多日常或实时的事务。大多数情况下,这些系统都易于查看单一索赔以及通过系统来加速其处理。然而,这些系统一般没有提供查看组合索赔数据的工具,来用以响应即席(ad hoc)或基于业务的问题,也没有提供工具,用以联合查看索赔信息和在索赔系统外部的、与之相关的系统中所包含的信息(如策略所有者或服务提供者的数据)。

    数据集市将合并不同系统的数据源来满足业务信息需求。若能有效地得以实现,数据集市将可以快速且方便地访问简单信息以及系统的和历史的视图。一个设计良好的数据集市将:

    发布特定用户群体所需的信息,且无需受制于源系统的大量需求和操作性危机。

    支持访问非易变(nonvolatile)的业务信息。(非易变的信息是以预定的时间间隔进行更新的,并且不受 OLTP 系统进行中的更新的影响。)

    调和来自于组织里多个运行系统的信息,比如账目、销售、库存和客户管理以及组织外部的行业数据。

    通过默认有效值、使各系统的值保持一致以及添加描述以使隐含代码有意义,从而提供净化的(cleansed)数据。

    为即席分析和预定义报表提供合理的查询响应时间(不同于 OLTP 系统中所需的调优需求)。

    通过提供对于遗留系统和 OLTP 应用程序的选择来减少对这些应用程序的要求,以获得更多所需信息。

    数据集市适用于商业智能世界中的哪些位置?

    数据集市是向组织提交的商业智能总体计划中的一个部分。Gartner Group 提出“商业智能是将数据转换为信息,然后通过发现又将该信息转换为知识的过程”。商业智能的范围包括信息体系结构、访问和分析数据的方法、基础设施以及组织将数据变为智能的能力和过程(图 1)。信息体系结构存储致力于向组织传送信息的数据,其中包括元数据。元数据是有关于逻辑和物理模型以及数据字典等数据的信息。在该图中, information architecture中的数据与驻留在遗留系统和 OLTP 系统中的数据是分开的。

bb



bb


bb



bb

bb

768773_200912141016281.jpg



    操作数据存储(Operational Data Store,ODS)集成了当前的而非历史的明细操作数据,以支持操作环境和立即做出的决策。不是所有组织都有 ODS,但是如果他们有的话,ODS 可被当作“记录系统”,这表示它是权威信息的来源。遗留系统和 OLTP 系统将实时地、每小时或每天填充 ODS。数据仓库是组织信息体系结构的组成部分,它包含了历史的、明细的和概要的集成信息来支持决策和填充数据集市。数据仓库中的数据是非易变的,这意味着将周期性地进行更新和刷新并且被用户群体所理解。 数据集市(Data marts)是为满足已定义的用户组或业务领域(Business Area)对于特定业务信息的需求而创建的。它们比数据仓库更小且更关注在数据中构建复杂的业务规则来支持功能强大的分析。

    DB2 和商业智能

    Gartner Group 已经将 DB2 与 Teradata 和 Oracle 一起放在了数据仓库 DBMS 幻方图(magic quadrant)的右上角中。因为 DB2 是可扩展的并且可以处理超大型的数据库,所以它既适合于整个信息体系结构,又适合于纯粹的数据集市。DB2 还提供了精制的优化器以管理复杂查询。DB2 中包含的自动摘要表(Automatic Summary Table,AST)将在适当的时候自动访问预先摘要的总数,而无需每次都进行计算,从而提高了性能。

    DB2 Relational Connect 提供了对于查询访问分布式异构数据服务器的只读支持。因此,它将为用户和应用程序提供优化的、联合的数据视图,而无需考虑这些数据是存储于本地 DB2、远程 DB2 中,还是完全在另一数据库系统中。

    大辨论:Inmon 和 Kimball

    在过去的 15 年中,Ralph Kimball 和 Bill Inmon 一直是商业智能领域中的革新者,开发并测试了新的技术和体系结构。他们都撰写了关于数据仓库的多本书籍,这些书也经常被参考。Kimball 和 Inmon 都同意组织需要一个与遗留系统和 OLTP 系统分开的数据仓库,以捕获组织的有关信息并且使之可用。他们也同意数据仓库中的数据应该是净化的、一致的,并且不受到其来源的遗留系统和 OLTP 系统设计的牵制。在开始第一个数据集市之前,他们还同意用针对整个体系结构的思想重复构建数据仓库。到这里,他们的意见就发生了分歧。



    如图 2 中所示,Bill Inmon 将数据仓库定义为“一个面向主题的、集成的、随时间变化的、非易变的用于支持管理的决策过程的数据集合”(Building the data warehouse,第 2 版,第 33 页)。Inmon 通过“面向主题”表示应该围绕主题来组织数据仓库中的数据,例如客户、供应商、产品等等。每个主题区域仅仅包含该主题相关的信息。数据仓库应该一次增加一个主题,并且当需要容易地访问多个主题时,应该创建以数据仓库为来源的数据集市。换言之,某个特定数据集市中的所有数据都应该来自于面向主题的数据存储。 Inmon 的方法包含了更多上述工作而减少了对于信息的初始访问。但他认为这个集中式的体系结构持续下去将提供更强的一致性和灵活性,并且从长远来看将真正节省资源和工作。

Ralph Kimball 说“数据仓库仅仅是构成它的数据集市的联合”(Figure 3,The Data Warehouse Lifecycle Toolkit,第 27 页)。他认为“可以通过一系列维数相同的数据集市递增地构建数据仓库”。每个数据集市将联合多个数据源来满足特定的业务需求。通过使用“一致的”维,能够共同看到不同数据集市中的信息,这表示它们拥有公共定义的元素。 Kimball 的方法将提供集成的数据来回答组织迫切的业务问题并且要快于 Inmon 的方法。Inmon 的方法是只有在构建几个单主题区域之后,集中式的数据仓库才创建数据集市。而 Kimball 认为该方法缺乏灵活性并且在现在的商业环境中所花时间太长。

哪种信息体系结构更好?

    实际上,方法的选择取决于项目的主要商业驱动。如果该组织正忍受糟糕的数据管理和不一致的数据,或者希望为今后打下良好的基础,那么 Inmon 的方法就更好一些。 如果该组织迫切需要给用户提供信息,那么 Kimball 的方法将满足该需求。而一旦满足了迫切的信息需求后,就应该考虑包含独立数据仓库的数据体系结构的转换计划。数据仓库将使数据集市与遗留系统和 OLTP 系统隔离,并且支持更快地创建将来的数据集市。由于数据仓库在整个发展中一直承担了重任,所以它将支持极力关注数据集市。

    遗憾的是,个别部门经常滥用 Kimball 的方法,并将之作为脱离集中控制而构建他们自己的数据集市的借口。当试图跨集市访问数据以获取联合视图时,这将造成严重问题,因为或许连诸如数据类型一致性等基本标准都未考虑。而集中式信息体系结构将避免这一点。

    虽然无需在创建第一个数据集市之前就设置好整个信息体系结构,但是首先要识别可信的数据源,映射遗留系统的数据流程以及确定将在哪里存储什么数据。另外,信息体系结构的方针强调现有数据源、可信数据源和既定标准的使用,而每次创建数据集市时设置信息体系结构的方针就避免了“多此一举”。

    以下是影响成功信息体系结构的主要因素。

    总经理发起,以便确定方向、做出艰难决策、集中支持以及提供资金;

    优先考虑且可分阶段完成的清晰、现实的目标;

    现实的和预计的投资收益;

    在进行过程中维护数据质量的数据管理工作;以及

    担任项目经理、数据架构师、ETL 领导和数据访问工具领导等重要职位的人应该是经验丰富的人员。

    数据集市的构建块

    有了对于如何在商业智能中集成数据集市的基本了解,我们现在将讨论构造数据集市的细节问题。数据集市是自上而下构建的,其中商业目标在顶层驱动所需信息,而这两者将共同决定所需的基础设施(图 4)。一旦构建好之后,其方向就逆转了,因为将由基础设施来管理完成组织的商业目标所需的信息并使之可访问。

    构建块 1: 商业目标

    商业目标定义了需要解决的商业问题,特别那些将拓宽组织的视野的目标(图 5)。一旦确定了目标,也就确定了支持该目标所需的信息。一般最好通过考虑何时回答哪些问题将有助于取得这些目标来确定这些信息。这些分析问题将直接指出谁需要什么信息。

    商业目标应该来源于商业团体并且反映他们的苦恼,而不应来源于 IT 部门。一个清晰的商业目标可用一两句话来陈述且不要试图解决太多问题。目标“为销售和市场组织提供销售信息以使他们能够评价性能和确定策略”就说明了这一点。一旦建立了商业目标,使用该数据的个人和部门将进一步定义如何取得该目标。因为用户将最终承担评价性能和确定市场策略的任务,所以应该由他们定义需要哪些信息来取得该目标。

此时最好考虑一下将要定义和使用该数据集市的组织的类型。 该组织是否很容易就能接受并且适应此改变呢?为了成功应用数据集市,需要改变该组织的各个层次。显然,终端用户需要学习新的数据和软件。此外,经理需要支持他们的学习,并且为重要的和每天使用的信息创建环境。 信息在组织中是力量的源泉吗?如果是的,那么该力量将随着数据集市的实现而转移!或许存在政治上的阴谋而试图控制,或更糟的是,限制对于信息的访问,也因而抑制了该功能。 如何做出企业级决策呢?尤其如果这是第一个数据集市,那么将需要做出许多决策以建立一个企业信息体系结构。如果企业决策易于卷入政治困境,那么数据集市可能被耽搁,或被迫仅仅考虑数据集市的需要从而放弃企业视图。 用户群体的能力如何呢?即使是最优秀的 OLTP 用户,他们非常善于按说明书操作,要想成为数据集市的用户,也需要付出艰苦的努力。如果出于商业目的,需要分析数据和许多即席(ad hoc)请求,那么用户将需要拥有较强的分析技能、技术技能以及解决问题的技能。

    构建块 2: 信息

    最后,用户将通过一个终端用户数据访问工具访问在数据库中组织的信息(图 6)。首先,需要确定信息来源并将之组织到数据模型中去,而该数据模型将驻留在数据库中。然后,基于业务规则和标准,构建填充数据库的过程。最后还要创建元数据来描述数据和用于填充数据的逻辑。

    数据源

    数据集市的主要信息来源就是该组织中的遗留系统和 OLTP 系统。其他来源包括杂项引用表和外部行业数据。一个组织通常对于相似的信息有多个来源,例如何时存在两个或更多客户文件。在这种情况时,应该从中选择最可信的和最关键的来源,或者创建一个合并了可信文件的新文件。然后应将选择的数据用于所有将来的数据集市。这将避免由于不同的信息源而导致无法进行比较的查询结果。此外,还可利用来自于首次实现的文档和提取逻辑。

    数据源的数目和复杂性比任何其他因素更影响作用域,因为每个数据源都带有它自己的问题集并且要花费相当多的时间进行理解和适当的转换。或许有必要基于数据源对商业目标所做贡献的大小来消除该数据源,而该商业目标是与将该数据源引入数据集市所需工作相关的。因此,数据集市的前两个部分,商业目标和数据源,应迭代地进行定义。关于质量和数据源复杂性的信息将影响在第一次迭代中如何处理商业目标以及处理多少商业目标。

数据库——将数据组织到模型中

    要获得最优速度并易于使用,需要组织好针对数据集市的数据。这涉及到数据库软件和标准(这将在下一期文章中的“基础设施”一节里进行详细讨论)以及建模技术。建模技术会将数据整理到可快速访问的表结构中并且使数据可预测且易于理解。

    通常会使用维数方法。维数建模(也称作“多维”和“星型模式”)将信息组织到与多个维数表(dimension table)相连的单一事实表(fact table)中。事实表包含了要度量的信息,比如总数和数量。维数表包含了关于将要度量的信息的属性,比如客户数据、销售代表信息和产品描述信息。维数表通过系统指派键连接到事实表,而这些键提供了极快的响应时间。

    维数数据模型在许多 RDBMS 和硬件平台上已证明,它提供了快速的响应时间和可靠的结果。然而,维数模型可能存在一些不足,它需要做大量工作来开发填充它们的逻辑,以及一旦构建好之后,又需要做许多努力来进行某种修改。

    维数建模可以选择将数据组织到非规格化(denormalized)或完全规格化(normalized)的表中。规格化(Denormalization)增加了存储的数据量。非规格化和规格化的表连接都将通过自然键(natural key)来进行,相比之下,用于维数模型的系统指派键可能要花更长时间来进行连接,因为通常存在多个冗长的连接字段。功能更强的数据库服务器可以补偿与非规格化或规格化表相关的较慢的响应时间。一般情况下,数据访问工具能够很好地利用维数模型,但是,也有一些工具在利用规格化的表创建有效的 SQL 方面存在着局限性,所以建模方法将有助于数据访问工具的评估准则。视图可以用于管理规格化模型中所需的附加连接。

    不管建模方法如何,都必须确定数据的粒度(granularity)。粒度定义了捕获信息的详细程度。其粒度越细,可精确回答的问题就越多。然而,较低层次的粒度意味着必须在数据集市中存储更多数据,而这又可能转换成更慢的响应时间和更高的成本。

    硬件、数据模型和数据库将共享合理响应时间的负担。现在趋向于通过购买更强大的硬件将数据模型从性能需求中释放出来,这样可以减少开发工作。需要有经验的数据建模人员和 DBA 来评估这种折中方案,并给出建议。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/768773/viewspace-622333/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/768773/viewspace-622333/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值