用于进行数据仓储的设备和方法

文档序号:6553626阅读:256来源:国知局
专利名称:用于进行数据仓储的设备和方法
技术领域
本发明涉及计算机系统,更具体地说,涉及数据仓储系统的实现。
背景技术
随着企业内的商业机能数量的增加,企业所产生的数据量也相应 地增加了。这种数据可能分布在整个企业内,例如在由不同部门或地 理单元实现的数据库系统和其他类型的系统内。在某些情况下,可以 跨越现有系统或位置之间的自然边界对企业数据进行有用分析。为了 便于进行这种分析,可以采用数据仓储系统将来自多个不同系统或位 置的数据汇集在单个系统内,如单个数据库内。随后,分析工具可以 将该单个、经汇集的系统而不是各种分布式数据源作为目标,这可以 简化分析工具的设计并改进分析性能。
通常,数据仓储系统利用被配置成提供所需分析性能的高端计算 机系统来支持对非常大量的数据的存储和查询。然而,非常适合于特 定数据仓储应用的高端系统的采购和维护费用可能是高昂的,并且可 能无法随着企业的数据仓储需求的增长而扩缩。如果例如由于昂贵而 只提供单个数据仓储系统,那么在该单个仓库发生故障时会损害数据 可用性。另一方面,如果提供多个数据仓储系统,那么分析应用会丧 失采用单个、经汇集的数据源的简单性。例如,可能需要将分析应用 配置成对多个数据仓库内的期望数据的位置进行跟踪。

发明内容
公开了用于实现数据仓储系统的设备和方法的各种实施例。根据
一个实施例, 一种系统可以包括若干数据仓库;和数据仓库管理器, 其被配置成从一个或更多个数据源提取数据集合以存储在所述多个数据仓库中的一个或更多个中。两个或更多个数据仓库中的每一个都可 被配置成存储由所迷数据仓库管理器提取的数据集合的相应副本。此 外,所述数据仓库管理器可以被配置成在所述数据集合的每个相应副 本被存储到对应的一个另外数据仓库之前允许由所述多个数据仓库中 的一个数据仓库对依赖于所述数据集合的查询进行评估。类似地,所 述数据仓库管理器还可以被配置成在已将所述数据集合的修改复制到 对应的另外数据仓库之前允许由所述多个数据仓库中的 一个数据仓库 对依赖于所述数据集合的查询进行评估。
还构思了 一种方法,根据一个实施例,该方法可以包括以下步骤 从一个或更多个数据源提取数据集合以存储在一个或更多个数据仓库 中;将第 一数据集合的相应副本存储在包括两个或更多个数据仓库的 第一子集中的每个数据仓库中;以及在所述第一数据集合的每个相应 副本被存储到所述第 一子集中的对应数据仓库之前允许由数据仓库的 所述第 一子集中的一个数据仓库对依赖于所述第 一数据集合的查询进 行评估。
根据第二实施例, 一种系统可以包括多个数据仓库,其被配置 成存储从一个或更多个数据源提取的数据集合;和数据仓库管理器, 其被配置成将所述多个数据仓库作为单个数据仓库呈现给客户机。所 述多个数据仓库内的所述数据集合的位置对于所述客户机来说可以是 透明的。而且,在给定时刻,由第一数据仓库存储的并且在所述给定 时刻可供所述客户机进行查询的第 一数据集合可能与由第二数据仓库 存储的并且在所述给定时刻也可供所述客户机进行查询的第二数据集 合不相似。所述数据仓库管理器还可以被配置成响应于接收到来自所 述客户机的针对由所述多个数据仓库中的一个或更多个数据仓库所存 储的数据集合的查询的接收,对所述多个数据仓库中的能够对所述查 询进行评估的一个特定数据仓库进行识别并将所述查询传送给所述特 定数据仓库以进行评估。
还构思了一种方法,根据一个实施例,该方法可以包括以下步骤 从一个或更多个数据源提取数据集合以存储在一个或更多个数据仓库中,并将所述多个数据仓库作为单个数据仓库呈现给客户机。所述多 个数据仓库内的所述数据集合的位置对于所述客户机来说可以是透明 的。响应于对来自所述客户机的针对由所述多个数据仓库中的 一个或 更多个数据仓库所存储的数据集合的查询的接收,该方法还可以包括
以下步骤对所述多个数据仓库中的能够对所述查询进行评估的一个
评估。在给定时刻,、由第一数据仓库存储的并且在所述给定时刻可供 所述客户机进行查询的第 一数据集合可能与由笫二数据仓库存储的并 且在所述给定时刻可供所述客户机进行查询的第二数据集合不相似。


图l是例示了数据仓储系统的一个实施例的框图。 图2是例示了跨越多个数据仓库的数据集合复制处理的一个实施 例的框图。
图3是例示了利用粗同步将所提取的数据存储在数据仓库中的方 法的一个实施例的流程图。
图4是例示了利用粗同步对由数据仓库存储的数据进行查询的方 法的一个实施例的流程图。
图5A是例示了在粗同步下在数据集合更新与查询之间的关系的 一个实施例的时序图。
图5B到5D是例示了利用粗同步而复制的数据集合的一个示例 性实施例的框图。
图6是例示了将数据仓库可视化给客户的方法的 一个实施例的流程图。
图7是例示了数据仓库计算集群的一个实施例的框图。 图8是例示了计算机系统的示例性实施例的框图。 尽管本发明容许各种修改和另选形式,但是在附图中以示例的方 式示出了其特定实施例,在此将对这些具体实施例进行详细描述。然 而,应当理解,附图及其详细描述并不旨在将本发明局限于所公开的具体形式,而是相反,旨在覆盖落在如所附权利要求所限定的本发明 的精神和范围内的所有变型例、等同物以及另选例。
具体实施方式
数据仓储系统的概述
在某些复杂的企业计算环境中,各种数据源可能分布在整个企业 内。例如,企业可能对于不同的商业机能(如会计、财务、电子商务、 人力资源、采购、制造、分发等)实现多个独立的计算机系统和/或应 用。此外,这种系统和/或应用可能在地理上是分散的和重复的,例如 在各分发地点处提供有分发管理系统。在某些这种企业中,数据库或 其他数据存储体以及分析工具和其他应用可能对于一地点或机能来说 是专用的,并且可以外部地与其他机能或地点的系统相交互。
为特定商业机能或地点只提供其执行其大部分任务所需要的数 据和资源可以避免在企业内对过度或冗余资源进行分配。然而,在某 些情况下,可能需要对来自整个企业的数据作为整体进行分析。例如, 对企业范围的财务或生产趋势的分析可能依赖于在多个不同地点处或 跨越不同部门所产生和保持的数据。在某些情况下,可以将数据分析 工具配置成对跨越多个商业机能的复杂相互关系进行检测,这种相互 关系不能直接通过对孤立的单个机能的分析辨别出。例如,在员工经 验与培训(由人力资源来跟踪)、分发生产率与财务业绩(例如,由 于分发错误而导致的产品回报额的减少)之间可能存在关系。可以通 过对来自这些机能中的每一个的数据集体地针对互相关性进行检查来 识别这种关系。
在某些实施例中,企业可以提供集中化数据仓储系统以便于对企 业范围的数据进行处理和分析。 一般来讲,数据仓库可以包括被配置 成将存储在一个或更多个数据源中的数据汇集起来的数据库或其他数 据储存库。数据源自身可以是企业内的存储或产生数据的其他数据库 或其他应用。通常,存储在数据仓库内的数据是存储在企业内的其他 地方的数据的衍生物。然而,在某些情况下,也可以将数据仓库配置成用作针对某些数据(如企业范围的分析数据,或者甚至企业机能或 地点数据)的主储存器。
在图1中例示了数据仓库系统的一个实施例。在所例示的实施例
中,数据仓库系统100包括被配置成与由图1中的数据仓库120a到 120d表示的多个数据仓库相交互的数据仓库管理器110。图l所例示 的数据仓库120a到120d的数量只是例示性的,其可以在其他实施例 中不同。也可以将数据仓库管理器110配置成与操作数据库130相交 互。还将数据仓库管理器110配置成与一个或更多个客户机140和数 据源160相交互,这些客户机140和数据源160可以位于数据仓库系 统100的外部(例如,分布在整个企业中、或者分布在多个企业间、 分布在不同逻辑或物理地点处)。在某些实施例中,可以将某些客户 机140配置成经由web服务接口 150与数据仓库管理器110相交互。 在某些实施例中,可以将数据仓库管理器IIO配置成经由web服务接 口 (未示出)与某些数据源160相交互。
在某些实施例中,数据仓库120a到120d可以包括相应的关系数 据库。例如, 一给定数据仓库120可以包括诸如Oracle、 DB2、 Sybase、 Informix、 Adabas或任何其他私有或开放源码数据库之类的数据库。 在某些实施例中,不同的数据仓库120可以实现来自不同厂商的不同 类型的数据库软件。 一般来讲,关系数据库可以将多个数据项的集合 组织到一个或更多个规则结构(如包括多行和多列的表)中,尽管也 可以构思多维关系数据库结构。此外,在许多实施例中,可以将关系 数据库配置成评估对于存储在数据库内的数据的查询,以选择满足给 定查询的数据子集。例如,可以将数据库配置成存储客户定单信息, 可以将该客户定单信息组织成包括诸如客户标识符、定单标识符、货 运状态信息、定单费用等之类的数据的一个或几个表。试图识别正在
等待未付货运的所有客户的用户可以向数据库提交如下查询,该查询 指定对于自特定日期和/或时间起具有未运送定单的所有客户标识符 的选择。作为响应,该数据库可以对其内容进行检查并返回那些满足 该查询的约束条件的数据记录。需要指出的是,在某些实施例中,不同的数据仓库120可以位于不同的物理位置或地点处,这与如下所述 的数据集合复制结合在一起,可以通过减小由于单个地点处的故障而 损害整个数据仓库120的可能性来增强数据集合的可靠性和可用性。
需要指出的是,尽管数据仓库120通常可能包括关系数据库,但 是在某些实施例中给定数据仓库120可以包括非关系数据库。通常, 在关系数据库中, 一特定数据项的含义隐式地由该数据项在表内的位 置或其他关系数据结构来描述。例如,在特定二维关系数据库表中, 可以将一列定义成存储客户标识符,可以将另一列定义成存储运货状 态信息,并将第三列定义成存储定单费用。那么该表的各行可以对应 于特定定单记录,因而,存储在一行的第一列中的任何数据项因其位 置可被解释成客户标识符。作为对照,在一个实施例中,非关系数据 库可以存储这样的数据项由与给定数据项相关联的显式元数据,而 不是由该数据项在所定义数据结构内的位置,来控制对该数据项的解 释。例如,在一个实施例中,可以将数据仓库120配置成将数据项存 储成由一版本的可扩展标记语言(XML)来界定的记录。在一个这种 实施例中,可以由标识了诸如客户标识符之类的一给定数据项的类型 的元数据字段或标签来界定该给定数据项。例如,可以将客户标识符 "smith"存储为"〈custjd〉smitlK/custjd〉,,,其中元数据标签custjd 表示可以由该标签界定的数据可以被解释成客户标识符。通常,可以 在记录内按任何顺序来存储非关系数据库内的多个记录的数据项,因 为一给定数据项的含义被连同该数据项一起显式地存储,而不是通过 该数据项的位置而被隐式地存储。
如先前已提及的,在某些实施例中,可以将数据仓库120配置成 将存储在企业内的其他地方(如数据源160)的数据汇集起来。在一 个实施例中,如以下更详细地描述的,由数据仓库120存储的数据量 可以相当大,例如在几百万兆字节(TB)的量级上。在所例示的实施 例中,可以将数据仓库管理器110配置成对如何在数据仓库120之间 检索和存储数据进行协调,以及对诸如客户机140之类的客户机对数 据仓库120的访问进行协调。具体来说,在一个实施例中,可以将数据仓库管理器110 (或者简称为管理器110 )配置成从一个或更多个数 据源160提取数据,并对所提取的数据在一个或更多个数据仓库120 中的存储进行协调。
在某些情况下,管理器110可以在所提取的数据被存储之前附加 地对其进行变换。例如,在一个实施例中,给定数据仓库120可以存 储包括有从若干不同的数据源160导出的数据的表。在这种实施例中, 可以将管理器110配置成将从不同数据源160抽取的各个数据项变换 成给定数据仓库120所要求的格式。在某些实施例中,与对数据进行 重排或改变数据的格式相反,对数据的变换可以包括对数据本身的修 改。例如,在某些实施例中,可以将管理器110配置成在将特定数据 项存储在数据仓库120中之前对这些数据项进行扩缩或四舍五入,或 者可以施加任何其他合适的变换。在某些实施例中,也可以将管理器 IIO称为提取、变换和加栽(ETL)管理器。
在所例示的实施例中,可以将操作数据库130配置成对与数据仓 库系统100的操作状态有关的信息进行存储和跟踪,该信息可以包括 与数据仓库120内的数据项或数据集合(如表或单个记录)的位置有 关的信息,以及相对于用于对数据仓库120内的数据进行修改的未处 理操作而言的数据项或数据集合的状态。在某些实施例中,操作数据 库130可以包括与上述那些数据库类似的关系或非关系数据库(其包 括用于对其内容进行访问和修改的查询接口),而在其他实施例中操 作数据库130可以包括被配置成例如通过在客户应用编程接口 (API) 中定义的过程调用而与管理器IIO进行交互的客户软件应用。以下结 合图3到6的描述对在各种实施例中管理器110与操作数据库130 一 起对数据仓库120进行加栽和将数据仓库120的呈现可视化给客户机 140的操作进行更详细的描述。
在某些实施例中,作出如下构思可以通过健壮、容错系统来实 现管理器110和/或操作数据库130。例如,通过采用冗余(例如热备 份(hot standby ))或集群计算机系统,可以提高管理器110和/或操 作数据库130的总体可靠性和可用性,以使得管理器或数据库操作可以在一个或更多个系统发生故障的情况下继续工作。可以采用任何合
适类型的故障转移机制来降低数据仓库系统IOO对管理器110或操作 数据库130的故障的敏感度。
而且,在某些实施例中,作出如下构思将管理器110和/或操 作数据库130的实现与数据仓库120的实现进行分离可以降低与数据 仓库系统100相关联的成本或复杂度。例如,这种分离可以使得便于 利用商品计算机系统和/或数据库软件来实现管理器110和操作数据库 130的控制功能。这种分离还可以使得便于通过能够与数据仓库硬件 分离地对控制硬件进行升级,来扩缩数据仓库系统100。在某些实施 例中,这种分离还可以增强数据仓库系统100的整体可用性并缩短故 障恢复时间。例如,如果一个数据仓库120万一发生故障,那么在对 该故障仓库进行恢复的同时,操作数据库130和管理器110可以继续 加载其他数据仓库120。类似的是,如果操作数据库130万一发生故 障,则可能无需对任何数据仓库120进行恢复,由此缩短了总体故障 恢复时间。
客户机140通常可以包括被配置成访问数据仓库系统100的任何 软件应用或其他实体。例如,在一个实施例中,客户机140可以包括 被配置成(例如通过查询来)检索数据的应用。这种应用可能包括数 据分析应用、决策支持系统、数据查看应用或任何其他合适的应用。 客户机140还可以包括可以对数据仓库系统100的操作进行配置的管 理应用或实用程序。例如,数据分析员或管理员可以确定应当由数据 仓库系统100对来自多个数据源160的特定集合的数据项的组合进行 汇集以供将来分析。该分析员或管理员可以使用客户机140来指示管 理器110例如一次性地或重复地从数据源160提取有关数据集合。在 各种实施例中,可以将客户机140配置成例如在任何合适类型的系统 (如通用计算机系统、手持系统或嵌入式系统)上运行。在某些实施 例中,可以将客户机140配置成经由中间系统与数据仓库系统IOO相 交互。例如,可以通过客户机-服务器系统(未示出)来实现客户机 140,在该客户机-服务器系统中,将服务器系统配置成对客户机140与数据仓库系统IOO之间的通信进行传递。
除了利用由管理器110提供的API直接进行通信以外,在某些实 施例中,可以将一些或所有客户机140配置成经由web服务接口 150 与管理器110进行通信。 一般来讲,可以将web服务接口配置成提供 标准的、跨平台API,以用于在请求执行某些服务的客户机与服务提 供方之间的通信。在某些实施例中,可以将web服务接口 150配置成 支持对包括有描述服务请求的信息的文档进行交换并对该请求进行响 应。可以利用标准化web协议(如超文本传输协议(HTTP))来交 换这种文档,并且可以按照与平台无关的数据格式(如XML)对该文 档进行格式化。通过采用该web服务模型,并且^^用标准web协议和 以及独立于平台的文档格式化,可以减少管理器110需要支持的接口 类型的数量,并且可以改进客户机140和管理器110的跨平台互操作 性。
在某些实施例中,数据源160本身可以包括关系或非关系数据库, 并且可以分布在整个企业中。这种数据库可以是也可以不是与数据仓 库120的数据库相同的类型(如厂商或格式)。在其他实施例中,数 据源160可以是除数据库以外的应用,如被配置成以文档形式或以另 一形式来存储数据的客户或私有应用。在这种实施例中,可以将管理 器110配置成利用必要的协议(例如,由数据源的API定义的特定格 式的过程调用)与数据源160相通信以获取数据。数据源160还可以 包括文档的储存库,诸如对如下内容的汇集或归档交易日志、电邮 通信、文字处理器/办公应用文档、图像或多媒体文件、网页文档、XML 文档、对电子商务站点的操作的量度,或者任何其他合适类型的文档 或数据。例如,在一个实施例中,数据源160可以包括网络附接的大 容量介质存储装置,如独立盘阵列或通过存储区域网(SAN)连接的 存储装置。
无论数据源160的具体类型如何,都可以将管理器110配置成执 行合适的操作以从其中提取期望的数据集合、施加任何必要的变换以 将数据转换成适合于存储在数据仓库120中的格式、以及将所提取出的数据加载到一个或更多个数据仓库120。如果特定数据源160的数 据内容在格式上与由数据仓库120存储的数据高度不相似,那么可以 将管理器110配置成对数据源160进行分析以导出对该数据内容的恰 当的量度或表示,或者被配置成调用另一应用来执行这种分析。 数据仓库复制、粗同歩以及虚拟化
在某些情况下,由数据仓库120存储的数据可能对于企业的运行 来说是关键的。例如,在某些实施例中,可以将分析软件配置成对所 仓储的数据进行操作以生成净艮告并且/或者识别出趋势,这进而会影响 运行决策,如定购/采购决策、人员配备决策等。例如,在企业范围内 对一天的生产量度进行的分析可能影响如下决策在企业内对资源的 转移、对下一天的生产的再调度、加急进料或库存采购,等等。万一 丢失或破坏了数据仓库120内的要对其执行相关分析的数据,就会严 重损害运行或战略决策制定过程,或者在某些情况下会使得完全不能 进行这种运行或战略决策制定过程。
如上所述,某些经仓储的数据可能是由数据源160存储的数据的 衍生物,并且在原则上可以通过将相关数据从这些数据源160再加载 到数据仓库120来恢复这些经仓储的数据。然而,例如,如果所丟失 或破坏的数据量很大,或者如果数据源160必须访问较慢的数据存储 介质(如磁带或离线介质)以检索所请求的数据,那么这种再加载处 理可能会耗费相当大的时间量来完成。可能无法在对依赖于经仓储数 据的处理产生最小中断的时限内再加载所需数据。再者,在某些情况 下,存储在数据仓库120上的数据可能是利用数据仓库系统100的应 用(如分析应用)的主要输出,因此无法简单地通过从数据源160再 加栽该数据就可以恢复的。
为了减小数据损失和随之产生的中断的可能性,在一个实施例 中,可以将数据仓库120的子集配置成对特定数据集合进行复制。即, 可以将两个或更多个数据仓库120配置成存储一数据集合(如表或多 个记录的集合)的相应副本。图2例示了例示出这种复制处理的一个 实施例。在所例示的实施例中,将数据仓库120a和120b均配置成存储包含有客户定单数据和客户运货数据的表的副本。应当指出的是,
在某些实施例中,可以由任意数量(从两个直到数据仓库系统100内 的数据仓库120的数量)个数据仓库120来复制特定数据集合。另一 方面,在某些实施例中,可以根本不复制某些数据集合,或者可以将 某些数据集合复制在其他数据仓库上。在所例示的实施例中,数据仓 库120a和120b均包括未由其它数据仓库复制的表(分别是财务报告 数据和会话跟踪数据)。应当指出的是,在某些实施例中,可以由数 据仓库120利用不同的数据库方案(例如,利用不同的数据字段定义 和/或结构)来存储不同的数据集合。
在某些实施例中,由数据仓库120存储的数据集合可以对于许多 不同类型的企业是共有的。例如,在砖和浆企业与提供虚拟客户界面 (例如,基于web的电子商务界面或电子商务界面)的企业内,客户 定单和货运数据可能是共同可用的数据集合。然而,在某些实施例中, 可以将支持电子商务界面的企业配置成甚至在发生销售之前就收集并 存储大量关于客户与企业的交互的信息。在一个实施例中,可以将图 2所例示的会话跟踪数据集合配置成存储关于客户与电子商务界面的 交互的任何方面的数据。例如,可以将该会话跟踪数据集合配置成存 储表示客户在访问企业的网点期间所查看的特定项目的数据(例如, 会话)、以及该查看的持续时间、客户在会话过程中导航的链接、客 户所执行的任何搜索,等等。可以将分析应用配置成对这些和其他类 型的跟踪数据进行分析以分辨出客户偏好、预测客户定购各种货品的 可能性、对呈现给客户的电子商务界面进行定制,等等。
然而,需要指出的是,可以将数据仓储和下述各种技术同样地应 用于没有基本电子商务组件的企业。例如,某些企业可能具有跨越许 多机能和地理分部的高度复杂的内部处理,并且即使除了外部客户的 活动之外也会在内部产生可用于进行仓储的巨大数据量。此外,在某 些实施例中,企业可能是足够复杂的,它可能针对企业内部的活动和 事务采用与上述面向电子商务的活动类似的信息收集策略。例如,企 业内的不同的商业单位可能如类似于外部客户的客户那样与其他商业单位进行交互,并且可能按类似的方式产生客户数据。
在某些实施例中,可以将多个数据仓库120的子集配置成以不同 的复制程度来存储不同类型的数据。例如,在图2的实施例中,如所 示出的那样,可以将数据仓库120a和120b配置成按复制方式来存储 客户定单和运货数据。在类似的实施例中,可以将数据仓库120c和 120d配置成按复制方式来存储历史会话跟踪数据(例如,前15个月 的跟踪数据的价值)(未示出)。在数据仓库120的这种配置中,仓 库120a和120b可以形成特别适合于进行涉及客户定单和运货数据的 分析的在功能上集群或分组的仓库集合,而仓库120c和120d可以形 成类似的特别适合于进行涉及会话跟踪数据的分析的在功能上集群的 仓库集合。在各情况下,可以对相对关键的数据进行复制,以帮助进 行保护以防数据丢失。在数据仓库120a到120d的这种配置中,对客 户数据的分析驱动查询也可能常常以最近的会话跟踪数据为目标。例 如,对客户定货和货运模式的分析可能试图将这些模式关联于最近的 会话跟踪数据(例如,前90天的跟踪数据的价值)。由此,在图2 的实施例中,将数据仓库120b配置成存储会话跟踪数据的集合。然而, 考虑到将数据仓库120c和120d配置成冗余地存储更大的会话跟踪数 据集合(如果需要的话,可以从该集合重构出由数据仓库120b存储的 集合),可以不复制由数据仓库120b存储的会话跟踪数据。
针对某些数据集合对多个数据仓库120进行集群或分组,使得可 以针对不同类型的查询来优化不同的数据仓库120组,这可以使得数 据仓库系统100被针对期望的使用模式而更佳地调整。例如,如以下 结合图7的描述更详细地描述的那样,根据期望数据仓库120的某个 给定集群要处理的活动的程度,可以为作为数据仓库120的基础的硬 件系统提供更多或更少的计算资源。然而,在其他实施例中,可以按 更均一的方式将数据集合分布在多个数据仓库120中。例如,在一个 实施例中,每个数据仓库120都可以包括大致相同的计算资源集合, 并且可以按不同复制程度将数据集合分布在大致等价的多个数据仓库 120中。虽然在这种实施例中可以针对数据存储和检索活动对硬件资源进行次优地调节,但是例如通过根据处理增长的数据分析需求的需
要而添加附加的、类似配置的数据仓库120,可以更容易地对相对均 匀的数据仓库120进行扩缩。
如上所提及的,通过减小给定数据仓库120的故障将导致数据损 失的可能性,跨越多个数据仓库120进行数据集合的复制可以提高数 据的总体可靠性。通过增加例如可以响应于查询而向客户机提供经复 制的数据集合的数据仓库120的数量,这种复制还可以增加数据集合 的可用性。在图1所例示的数据仓库系统100的实施例中,可以将管 理器110配置成对将数据存储到数据仓库120的操作(包括在多个仓 库120中对数据集合的任何复制)进行协调。由此,在所例示的实施 例中,是否复制了 一给定数据集合对于一特定数据仓库120来说可能 是透明的。然而,在某些实施例中作出如下构思在此被描述成管理 器110的功能的跨越多个数据仓库120对数据集合的管理和复制可以 被协作地分布在多个数据仓库120之中,或者由被配置成既用作数据 仓库又用作管理器的特定数据仓库120来实现。
在某些情况下由数据仓库120存储的各个数据集合可能相当大, 例如在几百百兆字节(MB)或几百千兆字节(GB)的量级上。此外, 即使由管理器110例如响应于从数据源160对新的可操作数据的定期 提取而对给定数据集合进行的部分更新也可能包括相当大量的待传送 给一给定数据仓库120的数据。如果跨越几个数据仓库120对数据集 合进行复制,最终会将包括该数据集合在内的数据以及对该数据正在 进行的更新存储在这几个数据仓库120之中。然而,这种存储处理可 能不是同时发生的。例如,即使管理器110同时开始将相同的数据存 储到数据仓库120a和120b中,在这两个数据仓库120a和120b中该 数据存储处理也可能不是同时完成的。诸如不同的计算负荷(如,对 查询的服务)以及基本资源配置之类的因素可能使得一个数据仓库 120比另一个更快地完成存储操作。因此,在这两个数据仓库120a和 120b上完成存储操作之前的任何给定时刻,在数据仓库120a和120b 上正在被存储的数据集合的状态可能不同。在此状态下,也可以将该数据集合称为不具同步性或不同步。对于试图检索数据的客户机140来说,不同步数据可能会带来问 题。例如,如果在管理器IIO接收到以给定的经复制的数据集合为目 标的查询时该给定数据集合在数据仓库120a和120b上处于两个不同 的状态,那么根据该给定数据集合在该查询被指示以进行评估的特定 数据仓库120中的状态,该查询可能返回两个不同的结果,这种不一 致可能会导致不一致的客户机操作,尤其是如果在多个数据仓库120 (或者更广泛地说,数据仓库系统100的总体结构)中对数据集合的 复制对于客户机140来说是透明的话。一个防止由于对不同步数据的不受控制的访问而产生的不一致的客户机行为的方法可能包括当被复制的数据集合在多个数据仓库 120之中是不同步的时,管理器IIO防止对该数据集合进行任何访问。 例如,在一个实施例中,可以将管理器110配置成将对被复制数据集 合的更新实现为原子操作或事务操作。 一般来讲,相对于其他操作来 说,将涉及跨多个实体的同步的原子操作或事务操作视为不可分的; 即,在允许进行以所涉及的实体为目标的另一操作之前,这种原子操 作或事务操作要么对于这些实体中的所有实体来说都完成了,要么对 于这些实体中的没有一个实体来说完成了。由此,在一个实施例中, 管理器110可能不允许在完成了存储在所有有关数据仓库120上的所 有数据集合副本之前对正在被存储或修改的被复制数据集合进行访问 的尝试,从而确保了客户机在尝试访问被复制的数据集合时不会接收 到不一致的结果。然而,跨所有数据集合副本执行原子或事务同步可能会显著降低 数据仓库系统100的性能。例如,在一给定的被复制数据集合4艮大的 情况下,在可以访问该数据集合之前等待对所有数据集合副本的更新 都完成的过程中,可能出现显著的等待时间。因此,在一个实施例中, 可以将管理器110配置成对跨多个数据仓库120而复制的数据集合进 行粗同步。在一个实施例中,对数据集合的粗同步可以包括使对特 定数据仓库120内的被复制数据集合的更新原子地同步,而同时允许访问由其他数据仓库120存储的该数据集合的其他副本。即,在一个 实施例中,管理器110可以在对特定数据仓库120的特定表(如图2 所示的数据仓库120a的客户定单数据表)进行更新的同时针对其他读 或写访问原子地锁定该特定表。同时,管理器110可以有条件地允许 访问该特定的被锁定表在另一数据仓库120上的副本(例如,数据仓 库120b的被复制客户定单数据表)。在另选实施例中,管理器110 在对存储在数据仓库120中的数据集合进行更新的同时可以原子地锁 定整个数据仓库120,或者可以只锁定正在被更新的数据集合的一部 分(如表内的一行);作出如下构思可以由管理器110采用任何合 适的锁定粒度。作出如下附加的构思在某些实施例中,可以将管理 器110配置成锁定给定数据仓库120上的正在被更新的数据集合的一 部分,而允许分开地访问该给定数据仓库120上的同一数据集合的未 锁定部分以进行读取或更新。在一个实施例中,管理器110可以有条件地允许在对一数据集合 副本进行更新的同时,如果对另一数据集合副本的访问不依赖于该数 据更新的话,有条件地访问所述另一数据集合副本。例如,客户机140 可能提交对于前一整个日历季度(例如,排除当前日历季度)的所有 客户运货数据进行请求的查询。同时,管理器IIO可能处于从许多客 户履行地点(其中每一个都可以包括数据源160)提取前一天的客户 运货数据的过程中。可以将管理器110配置成利用任何适当的锁定 方案以确保在多个数据仓库120内的同步,来对由这些数据仓库120 存储的客户运货数据表进行更新。在对仓库120a进行更新的同时,可 以不允许针对其客户货运数据的副本的查询(或者,在某些实施例中, 不允许针对仓库120a内的任何数据的查询)。然而,可以将管理器 110配置成检测到所提交的针对前一日历季度的客户运货数据的查 询并不依赖于当前正在对数据仓库120a进行的更新。即,尽管数据仓 库120b内的客户货运数据并不完全与数据仓库120a内的副本相同步, 但是满足所述查询所必需的所有数据都可能存在于数据仓库120b内。 因此,在已将客户货运数据更新存储于数据仓库120b之前,管理器110可以允许由数据仓库120b对所述查询进行评估。在该示例中,所 讨论的数据集合在数据仓库120a到120b之间并不是完全同步的,而 是粗略地同步的,在此情况下允许具有用于对一查询进行评估的足够 数据的数据仓库120对该查询进行评估,即使它们不具有所讨论的数 据集合的最新版本。在图1所示的数据仓库系统100的实施例中,可以将管理器IIO 配置成利用操作数据库130来保持与由数据仓库120存储的数据集合 有关的信息,如标识了存储有给定数据集合的位置(例如,具有该给 定数据集合的唯一拷贝或副本的特定数据仓库120)的信息,以及针 对任何正在进行的更新活动而标识了数据集合的每个拷贝的状态的信 息。例如,在一个实施例中,操作数据库130可以包括与由数据仓库 120存储的客户货运数据表的每个拷贝相对应的相应记录。对于图2 所示的实施例,操作数据库130可以存储两个这种记录,其中每一个 都将相应的数据仓库120a到120b标识为存储有客户货运数据表的相 应副本。此外,每个记录都可以包括表明该表在对应的数据仓库120a 和120b内的状态的字段。参考在上一段中给出的示例,在管理器IIO 正在对数据仓库120a内的客户货运数据表的更新进行协调的同时,操 作数据库130内的对应记录可以表明该副本正在被更新、不可用或者 其他合适的状态。与之对照的是,针对由数据仓库120b存储的客户货 运数据副本的记录可以表明该副本不是正在被更新或已完成对该副本 的更新。在各种实施例中,可以将操作数据库130配置成存储对数据集合 的位置和状态进行标识的不同类型的数据。例如,位置标识数据可以 包括数据仓库120的唯一标识符,如系统名称、网际协议(IP)地址、 或其他合适的标识符。状态信息可以涵盖从表明是否正在更新某个给 定数据集合的简单信号到表征给定数据集合的状态的复杂字段的范 围。例如,在某些实施例中,与数据集合相对应的状态信息可以表明 更新该数据集合的最后一次、用以执行该更新的数据源160、该更新 的原因(例如,由于调度操作或手动操作),或者任何其他合适的状态信息。在某些实施例中,(例如,在将管理器110配置成支持对数 据仓库120的多个并发读或写操作的实施例中)可以将管理器110配 置成利用事务操作来读取和/或修改操作数据库130以确保操作状态的 同步。在一个实施例中,管理器IIO可以利用由操作数据库130存储的 位置和状态信息来实现由多个数据仓库120存储的数据的粗同步。即, 可以将管理器110配置成在从数据仓库120提取数据并向数据仓库 120存储数据时以及在接收到检索所存储的数据的操作(例如,查询) 时查阅操作数据库130。图3例示了利用粗同步将所提取的数据存储 在数据仓库120中的方法的一个实施例。共同地参照图1到图3,操 作始于块300,在该块中,开始从一个或更多个数据源提取数据集合 的操作。例如,在一个实施例中,可以将管理器110配置成重复地(例 如每小时、每晚、每周)从一个或更多个数据源160 (如分布在整个 企业中的客户履行地点)中提取诸如客户货运数据的数据集合。作为 另 一种选择,用户或应用可以经由客户机140请求提取和存储数据集 合。在某些实施例中,作出如下构思可以从数据源160同时提取多 个数据集合并在一个或更多个数据仓库120内对它们进行更新。例如, 作为批作业或批处理,如调度批作业,可以同时提取并存储多个数据 集合;或者可以从数据源160动态地流式传输多个数据集合并在数据 仓库120内对它们进行更新。随后,管理器110例如通过向数据源160发出查询或其他命令来 检索所提取的数据以抽出数据(块302)。如果有必要的话,可以对 所提取的数据进行变换(块304)。例如,如上所述,可能需要改变 所提取的数据的格式,或者根据数据仓库120的数据存储要求而需要 修改数据本身。管理器110接着确定哪个数据仓库120容纳有所提取的数据集合 (块306)。例如,在一个实施例中,管理器110可以查阅操作数据 库130以根据其中存储的记录来确定所提取的数据集合所在的位置。 管理器110接着选择要使用所提取的数据集合来进行更新的特定数据仓库120,并更新与该数据集合相关联的状态信息以表明发生了所述 更新(块308)。在某些实施例中,可以将管理器110配置成按并行 或交叠方式对容纳有所提取的数据集合的每个数据仓库120进行更 新,尽管这些更新可以在不同的时间开始或结束。在图3中针对块308 到312中的重复块例示了这种并行性,可以对若干不同数据集合或数 据集合副本中的每一个并行地执行这些块。例如,可以将管理器110 配置成在若干不同数据仓库120上同时开始对所提取的数据集合进 行更新;或者可以交错进行这些更新,使得它们在时间上部分地交叠。 而且,需要指出的是,在某些实施例中,可以在多个不同数据仓库120 内同时更新多个不同数据集合。在其他实施例中,可以将管理器110配置成按串行或有条件的方 式对数据仓库120进行更新。例如,如果数据仓库120的一子集复制 了所提取出的数据集合,那么管理器IIO可以随机地选择特定数据仓 库120来开始进行更新。作为另一种选择,管理器110可以选择所述 子集中的最不繁忙的数据仓库120,或者可以利用某些其他选择准则。 在操作数据库130对未处理数据集合读操作进行跟踪的某些实施例 中,如果当前正在读取该数据集合(例如,通过查询),那么可以不 选择一数据仓库120来进行数据集合更新。 一旦选择了数据仓库120, 在一个实施例中,管理器IIO可以对在操作数据库130中存储的与该 数据集合和所选择的数据仓库120相关联的记录中的状态信息进行更 新,以表明在所选择的数据仓库中正在对该数据集合进行修改。如以 上指出的,在某些实施例中,管理器IIO可以利用事务操作来与操作 数据库130相交互,以例如确保多个并发操作的适当排序。接着将所提取出的数据集合存储于所选择的数据仓库120 (块 310)。需要指出的是,可以经由其他数据仓库120对该数据集合的其 他副本进行访问和/或更新,同时对所选择的数据仓库120的更新继续 进行。 一旦完成了该更新,管理器110就对与该数据集合相关联的状 态信息进行更新以表明完成了该更新(块312)。作出如下构思在某些实施例中,管理器110在将所提取的数据集合存储到其对应的数据仓库120中时不必对该数据集合进行緩冲。 在一个另选实施例中,管理器IIO在开始从数据源160进行数据提取 之前可以选择数据仓库120来进行更新。管理器110接着可以将所提 取的数据(施加适当的变换)流式传输或者使得该数据被流式传输到 所选择的数据仓库120,并且可以随后使用更新后的数据仓库120作 为用于对其他数据仓库120进行更新的数据源。进一步作出如下构思 在某些实施例中,可以同时(而不是顺序地)对多个数据仓库120进 行更新。例如,如果在3个数据仓库120中复制有某个给定的数据集 合,则可以同时对这些数据仓库中的2个进行更新,而留下第3个数 据仓库以供对该给定数据集合进行查询。最后,在某些实施例中,通 过同时对所有数据仓库120 (或其选定子集)进行更新,在操作数据 库130中适当地表示出状态,可以实现(与粗同步相对的)完全同步。 在图4中例示了利用粗同步对由多个数据仓库120存储的数据进 行查询的方法的一个实施例。共同地参照图l到图4,操作始于块400, 在该块中,接收到依赖于由多个数据仓库120存储的一个或更多个数 据集合的查询操作。例如,在一个实施例中,可以将管理器110配置 成从客户机140接收这种查询,而不是直接或经由web服务接口 150 来接收。随后,管理器IIO对所接收到的查询进行分析以确定该查询的数 据集合依赖性(块402)。在一个实施例中,对数据集合依赖性的确 定可以包括对由该查询引用的特定数据集合的确定,以及对与所依赖 的这些数据集合有关的任何附加状态信息的确定。例如,在一个实施 例中,管理器110可能确定一特定查询依赖于图2所例示的客户货运 数据表,进而确定所依赖的数据是前一日历季度的数据。管理器110接着确定所依赖的数据集合在数据仓库120内的位 置,和与所存储的数据集合相关联的当前状态信息(块404)。例如, 管理器110可以查阅操作数据库130,以针对所依赖的每个数据集合 来确定哪个数据仓库120容纳有该数据集合的拷贝,以及与该拷贝相 关联的状态信息(例如,当前正在被更新、自某个日期起是最新的由于维护而离线,等等)。基于管理器110对所接收到的查询对数据集合依赖性以及与数据 集合在数据仓库120内的位置和状态有关的信息的分析,管理器110 确定是否任何数据仓库120具有用以对所接收到的查询进行评估的足 够数据(块406)。例如,在一个实施例中,如果一数据仓库120具 有某个给定查询所依赖的每个数据集合的拷贝,如果不是正在更新所 依赖的每个数据集合(例如,通过诸如图3所例示的那样的提取和存 储操作),并且如果所依赖的每个数据集合都满足该查询的状态要求 (例如,每个数据集合都至少与由该查询所指定的任何日期范围一样 新),那么管理器110可以确定该数据仓库120具有足够数据来对该 查询进行评估。在其他实施例中,管理器110可以采用不同或附加的 准则来确定一给定数据仓库120对于给定查询是否具备数据充足性。 例如,这种准则可以包括与数据仓库120的能力或资源(如其对某些 类型的查询语言进行评估的能力或其可用于处理复杂查询的计算资 源)有关的信息。在某些实施例中,可以将一个或更多个数据仓库120配置成例如 通过对可以由给定数据仓库120同时评估的查询的数量进行限制来对 查询评估资源进行管理。例如,可以将数据仓库120配置成为查询 的执行提供一定数量的"作业时间片",并且可以在所有时间片都被占 用的情况下不可接受其他查询。在某些实施例中,无论一给定查询的 复杂度如何,该查询都可以对应于一个可用作业时间片。在其他实施 例中,更复杂的查询可以占用多个作业时间片,或者数据仓库120可 以采用其他类型的负载平衡策略。在某些实施例中,管理器110在确 定给定数据仓库120是否具有用以对给定查询进行评估的足够数据时 还可以考虑该给定数据仓库120的可用查询评估资源。例如,在一个 实施例中,管理器110可以不选择具有用以对查询进行评估的足够数 据但是没有用于进行查询评估的可用资源的数据仓库120。如果没有数据仓库120具有用以对所接收到的查询进行评估的足 够数据(或者,在某些实施例中,如果没有数据仓库120具有用以对所接收到的查询进行评估的足够的可用资源),那么管理器110可以 将该查询入队,直到诸如可以识别出足够的数据仓库120的时间为止 (块408)。例如,在一个实施例中,管理器110可能识别出所接收 到的查询依赖于当前正在被更新到特定数据仓库120中的数据集合, 并且在完成了该更新时可以在该特定数据仓库120上对要评估的该查 询进行调度。作为另一种选择,管理器110有时可以对已入队的查询 进行再评估,以确定是否有数据仓库120已变得可用于对查询进行评 估。在某些实施例中,为了避免客户机死锁,管理器110可以对查询 可以保持入队状态的时间长度加以限制,并且可以在其查询超过了入 队时间限制的情况下向客户机返回错误情况。如果识别出足以对所接收到的查询进行评估的数据仓库120,那 么管理器110将所接收到的查询传送给该数据仓库120以进行评估(块 410)。需要指出的是,在粗同步下,可以在由一个数据仓库120对以 特定数据集合为目标的查询进行评估的同时,在另一数据仓库120上 对该特定数据集合的副本进行更新。图5A示出了例示出在粗同步下对数据集合的更新与对数据集合 的查询之间的关系的一个实施例的时序图。在所例示的时序图中,管 理器110在时刻Tl处开始对特定数据集合进行更新,此时数据仓库 120a和120b复制有该数据集合。随后,在时刻T2处由管理器110 接收到以正在被更新的数据集合为目标的查询。在比T2晚的时刻T3 时在数据仓库120a处完成了该数据集合更新,而在比T3晚的时刻 T4时在数据仓库120b处完成了该数据集合更新。在所例示的实施例中,示出了对所接收到的查询进行评估的3个 可能的时段。在第一情况下,该查询可以由正在被更新的数据集合的 更新前的内容来满足。例如,管理器110连同操作数据库130—起可 以确定对该查询进行评估所必需的数据并不依赖于当前的更新。在此 情况下,在时刻T2之后可以由容纳了有关数据集合的任何可用数据 仓库120来评估该查询。即,在接收到该查询之后一旦可以实施就可 以对其进行评估,在某些情况下这可能会引起延时。例如,在某些实施例中,如以上指出的,可能不允许针对当前正在被更新的数据仓库
120,对查询进行评估。此外,在某些情况下,数据仓库120可能太繁 忙,以至于不能立即接受该查询。然而,在某些实施例中,在该查询 依赖于更新前的数据的情况下,不必对在时刻T2之后何时可以执行 该查询进行与任何更新有关的时间限制。
在第二和第三情况下,该查询可能依赖于正在被更新的数据集合 的更新后的内容。即,该查询可能要求对在时刻Tl时开始的数据集 合更新中反映的数据进行正确的评估。在所例示的实施例中,该更新 在时刻T3时在数据仓库120a处完成,而在时刻T4时在数据仓库120b 处完成。相对应的,可以在时刻T3之后的任何时刻由数据仓库120a 对该查询进行评估,而在时刻T4之后的任何时刻由数据仓库120b对 该查询进行评估。如先前指出的并且如图5A所例示的,在粗同步下, 可以在已更新了被一查询作为目标的数据集合的所有副本之前由特定 数据仓库120对该查询进行评估,而在某些情况下(例如,在该查询 依赖于更新前的数据的情况下)可以在已更新了该数据集合在该特定 数据仓库120上的副本之前对该查询进行评估。如以上指出的,在某 些实施例中,可以在由一个数据仓库120对以特定数据集合为目标的 查询进行评估的同时,将该特定数据集合存储到另一数据仓库120。 此外,在某些实施例中,在已将该特定数据集合存储到任意给定数据 仓库120之后,该给定数据仓库120可以对针对该特定数据集合的查 询进行评估。例如,在已将经复制的数据集合更新到某些或所有对应 的数据仓库120之后,任何更新后的数据仓库120都可能能够满足对 经复制的数据集合的查询。
而且,需要指出的是,在采用用于锁定数据集合的某些部分的细 粒度机制的某些实施例中,如上所述,容纳有正在被更新的数据集合 的一给定数据仓库120可能在该更新完成之前可用于对针对该数据集 合的查询进行评估。例如,在某些实施例中,可以将管理器110和操 作数据库130配置成跟踪数据集合的多个部分的状态(例如,表的各 行或多行的集合)。尽管针对给定数据仓库120正在更新特定数据集合的一个部分,但是管理器IIO可以确定一给定查询依赖于该特定数
据集合的当前没有被更新的部分,因此可以允许由该给定数据仓库
120对该查询进行评估。在这种实施例中,可以在功能上将针对数据 集合中的不在进行更新的部分的查询处理成好像该查询依赖于与正在 被更新的数据集合无关的数据集合一样,并且可以允许与该更新无关 地对其进行评估。在图5A的环境下,可以在不与时刻T3和T4处的 更新完成点同步的情况下允许在时刻T2时接收到该查询之后的任何 时间对这种查询进行评估。
图5B到5D与图5A所示的各种时间点相关地例示了利用粗同步 所复制的数据集合的一个实施例的具体示例。在图5B到5D所示的实 施例中,将客户定单数据集合配置成由数据仓库120a和120b来复制。 图5B例示了在更新开始之前的时刻(例如,在图5A所示的时刻Tl 之前的时刻)时该客户定单数据集合的副本。在图5B中,按更新前 的状态示出客户定单数据集合的两个副本。
图5C例示了在已更新了数据仓库120a的副本之后但是在更新了 数据仓库12b0的副本之前(例如,在图5A所示的时刻T3与T4之 间的时刻)时该客户定单数据集合的副本。如图5C所示,客户定单 数据集合的这两个副本处于不相似的状态。最后,图5D例示了在已 更新了所述两个副本之后的时刻(例如,在图5A所示的时刻T4之后 的时刻)时该客户定单数据集合的副本。如上所述,对客户定单数据 集合的查询可能在对该数据集合的更新开始之后的任何时刻发生。根 据其数据集合要求,可以允许在完成了对两个数据仓库120a和120b 的更新之前(包括在这两个数据集合副本具有不相似的内容(例如, 如图5C所示)时的时刻)针对数据仓库120a和120b中的任一个执 行特定查询。
需要指出的是,在某些实施例中,数据仓库系统100的组织可能 对于被配置成与系统100相交互的客户机140来说是完全透明的。即, 在某些实施例中,客户机140可能不具有数据仓库120内的给定数据 集合的位置或状态的直接知识。在某些这种实施例中,可以将管理器110配置成将多个数据仓库120呈现为当从客户机140的观点来看是 单个虚拟数据仓库(例如,可以将管理器110配置成对多个数据仓库 120进行虚拟化)。由此,在某些这种实施例中,管理器110可以在 任意程度上自由地复制数据集合,重新确定数据集合在多个数据仓库 120之中的位置,或者改变存储在系统100内的数据的组织结构,同 时将单个、稳定的界面(如查询界面)呈现给客户机140。
在一个实施例中,在任意给定时刻,由数据仓库120存储的多个 数据集合可供给定客户机140来进行查询,并且在任意给定的时刻所
存储的多个数据集合中的一个可能与所存储的多个数据集合中的另一 个不相似。例如,所存储的两个数据集合可能由于它们被定义成存储 不同类型的数据而不相似。作为另一种选择,可以将所存储的两个数 据集合配置成复制同一数据,但是可以在某个给定时刻由于如上所述 的粗同步的操作而不相似。在某些实施例中,在这些场景中的任一场 景下的多个数据集合都可供客户机140查询,并且可以将管理器110 配置成对如何按对于客户机140透明的方式在数据仓库系统100内安 排和操纵这种数据集合的详情进行管理。
对于客户机140来说,可以与是否复制存储在数据仓库120内的 数据集合无关地进行数据仓库120的虚拟化。图6例示了对于客户机 140将数据仓库120虚拟化成单个数据仓库的方法的一个实施例。共 同地参照图1到图6,操作始于块600,在该块中,管理器110存储与 数据仓库120中的数据集合有关的位置信息。例如,在一个实施例中, 管理器110可以将每个数据集合的位置信息连同对数据集合的状态、 数据集合是否被复制等进行标识的其他信息 一起存储在操作数据库 130。
随后,管理器IIO接收到以存储在数据仓库系统100内的特定数 据集合为目标的查询(块602)。作为响应,管理器110对能够评估 所接收到的查询的特定数据仓库120进行识别(块604)。例如,可 以将管理器110配置成对该查询进行分析以检测如上所述的数据集合 和状态依赖性,并查阅操作数据库130以识别出可以评估该查询的一个数据仓库120 (或者一个以上,如果复制了该数据集合的话)。诸 如正在进行的数据集合更新、数据仓库工作负荷等之类的其他因素也 会影响对用于进行查询评估的合适数据仓库120的识别。
一旦识别出用以评估所接收到的查询的数据仓库120,管理器110 就将该查询传送给所选择的数据仓库120以进行评估(块606)。接 着对该查询进行评估(块608),然后经由管理器110将结果返回给 进行请求的客户机140 (块610)。需要指出的是,在某些实施例中, 在提交查询与接收查询结果之间的所有步骤都可以是对客户机140透 明的。还要指出的是,在某些情况下,管理器IIO可以在不能立即识 别出用于进行评估的合适数据仓库120的情况下将该查询入队。此外, 在某些情况下,例如如果一查询有形式错误或者对数据仓库120的等 待超时了 ,管理器110可以将错误情况返回给进行请求的客户机140。
数据仓库计算基础设施
每个数据仓库120都可以包括计算硬件以及被配置成实现数据仓 储功能的操作系统软件和数据仓储软件(例如数据库软件)的相应集 合。在某些实施例中,所使用的计算硬件可以包括专用、高端多处理 器计算机系统,可以细致地将该计算机系统与专用于特定安装的定制 的操作系统和数据仓储软件集成起来。然而,对于购买、管理以及维 护来说这种配置可能是昂贵的。因此,在某些实施例中,任意或所有 数据仓库120均可以包括由运行广泛发布的或开放源码的操作系统和/ 或数据仓储软件的多个较不昂贵(例如商用)计算机系统所组装成的 相应计算集群。
图7例示了可以实现数据仓库120的计算集群的一个实施例。在 所例示的实施例中,数据仓库集群700 (或简称为集群700)包括多个 计算节点710 (或简称为节点710)。每个节点710都耦合到多个交换 机720中的每一个,并且每个交换机720都耦合到相应的多个存储器 阵列730。由此,在所例示的实施例中,每个节点710都可以通过合 适的交换机720来访问任一存储器阵列730。在一个实施例中,集群 700可以包括16个节点710、 8个交换机720以及64个存储器阵列730。然而,需要指出的是,在各种实施例中,可以釆用任意多个节点710、 交换机720以及存储器阵列730,以及用于将这些组成要素互连的各 种拓朴结构。
在一个实施例中,如以下结合图8的描述更详细地描述的,每个 节点710都可以包括单处理器或多处理器计算机系统。在某些实施例 中,节点710可以包括由包括Sun Microsystems、 Hewlett-Packard, IBM、戴尔或任何合适的系统制造商在内的多个厂商中的任何厂商提 供的通用服务器、个人计算机或工作站系统。此外,可以将节点710 配置成执行一个或更多个合适的操作系统,如与Linux、 Microsoft Windows、 Solaris、 HP-UX、 AIX或任何其他合适的通用或专用操作 系统的某个版本兼容的操作系统。
一般来讲,每个节点710都可以进行操作以针对可以经由存储器 阵列730存储的数据集合对经由管理器110接收到的查询以及其他数 据仓库操作进行评估,同时交换机730提供节点710与存储器阵列730 之间的互连性。由此,在所例示的实施例中,在特定节点710上被评 估的查询可以均匀地访问存储在任何存储器阵列730上的数据集合。 在其他实施例中,可以将数据集合不均匀地提供给节点710。例如, 可以将给定节点710映射到包括某些数据集合但是不包括其他数据集 合的特定一个或更多个存储器阵列730。在这种实施例中,根据特定 查询所依赖的数据集合如何分布在多个存储器阵列730上,多个节点 710可能需要参与对该特定查询的评估。
在某些实施例中,交换机720和存储器阵列730可以包括存储区 域网(SAN)。例如,可以利用光纤信道互连或其他合适的SAN互连 和管理技术将交换机720耦合到节点710和存储器阵列730。然而, 作出如下构思可以使用任何合适类型的网络来将集群700的多个设 备互连。例如,在一个实施例中,作为互连技术,可以采用吉比特以 太网或10吉比特以太网。
每个存储器阵列730都可以包括一个或更多个大容量存储装置, 如固定磁盘装置。例如,在一个实施例中,每个存储器阵列730都可以包括被配置成独立盘冗余阵列(RAID阵列)的相同数量个SCSI(小 型计算机系统接口 )硬盘驱动器。可以由存储器阵列730自身来管理 由存储器阵列730支持的各种存储特征,如盘分段(disk striping )、 镜像以及数据奇偶校验。例如,除了大容量存储装置以外,存储器阵 列730还可以包括被配置成对这些装置进行管理的附加硬件。作为另 一种选择,存储器阵列730可以是相对被动的,可以由智能交换机720 来管理其存储特征。作出如下构思除了磁盘以外或者作为磁盘的替 代物, 一给定存储器阵列730可以包括其他类型的存储装置,如光学 介质或磁带。此外,作出如下构思在某些实施例中,可以对各存储 器阵列730进行相同的配置,而在其他实施例中,存储器阵列730在 它们的配置和/或特征集合方面可以是不同种类的。
在某些实施例中,可以容易地对集群700进行扩缩以使其与给定 数据仓库120的预期工作负荷相匹配。例如,如果数据仓库120预期 要容纳接收不频繁或相对简单的查询的大量数据,那么可以将存储器 阵列730配备成存储所预期量的数据(包括如上所述的任何期望的数 据集合复制),同时可以基于所预期的工作负荷独立地配备节点710。 如果查询工作负荷或存储要求万一增加了,那么随后可以添加附加的 节点710、交换机720和/或存储器阵列730。
作出如下构思在某些实施例中,可以将上述任何方法或技术(例 如,管理器IIO或数据仓库120的功能,或图3、 4以及6所例示的方 法)实现为能够经由计算机可访问的介质来存储或传送的程序指令和 数据。可以执行这种程序指令以执行特定计算功能,如数据仓储和虚 拟化、存储管理、查询和数据集合分析、查询评估、操作系统功能、 应用、和/或任何其他合适的功能。在一个实施例中,节点710可以包 括计算机可访问介质。图8例示了可以作为给定节点710的例示的计 算机系统的一个实施例。在所例示的实施例中,计算机系统800包括 经由输入/输出(I/O)接口 830耦合到系统存储器820的一个或更多 个处理器810。节点710还包括均耦合到I/O接口 830的网络接口 840 和SAN接口 850。需要指出的是,在某些实施例中,可以将计算机系统800的实例 配置成与集群700分开,并将该实例配置成执行数据仓库系统100内 的其他应用或功能。例如,在一个实施例中,可以将计算机系统800 的一个或更多个实例配备在集群700的外部,并配置成执行可以经由 计算机可访问介质来存储或传送的程序指令和数据并配置成实现管理 器110。在某些这种实施例中,被配置成实现管理器110的计算机系 统800的实例的配置可以与图8所示的配置不同。例如,在某些实施 例中,计算机系统800的这种实例可以包括更多个或更少个处理器 810。此外,尽管在某些实施例中这种实例可以保留SAN接口 850, 但是也可以略去该接口 。
如以上指出的,在各种实施例中,计算机系统800可以是包括一 个处理器810的单处理器系统或包括若干个(如2、 4、 8或其他合适 的数量)处理器810的多处理器系统。处理器810可以是能够执行指 令的任何合适的处理器。例如,在各种实施例中,处理器810可以是 实现任何不同指令集架构(ISA )(如x86、 PowerPc、 SPARC或MIPS ISA或任何其他合适的ISA)的通用或嵌入式处理器。在多处理器系 统中,每个处理器810都可以共同地但非必要地实现同一 ISA,
可以将系统存储器820配置成存储可由处理器810访问的指令和 数据。在各种实施例中,可以采用任何合适的存储器技术,如静态随 机存取存储器(SRAM)、同步动态RAM (SDRAM)、非易失性/ 闪速型存储器或任何其他类型的存储器,来实现系统存储器820。在 所例示的实施例中,将实现期望功能(如上述那些功能)的程序指令 和数据示出为作为代码825存储在系统存储器820内。
在一个实施例中,可以将I/0接口 830配置成对处理器810、系 统存储器820以及设备内的任何外围设备(包括网络接口 840、 SAN 接口 850或其他外围接口 )之间的I/O业务量进行协调。在某些实施 例中,1/0接口 830可以执行任何必需的协议、定时或其他数据变换 以将来自一个组件(例如系统存储器820)的数据信号转换成适合于 由另一组件(例如处理器810)使用的格式。在某些实施例中,1/0接口 830可以包括对通过各种类型的外围总线连接的设备的支持,如外 围组件互连(PCI)总线标准或通用串行总线(USB)标准的变型。 在某些实施例中,可以将I/0接口 830的功能分成2个或更多个分开 的组件,如北桥和南桥。而且,在某些实施例中,可以将I/0接口 830 的某些或所有功能(如到系统存储器820的接口 )直接并入处理器810 中。
可以将网络接口 840配置成允许在计算机系统800与连接到网络 的其他设备之间交换数据。例如,可以将管理器110配置成在集群700 的外部的计算机系统800上执行,并且被配置成集群700内的节点710 的特定计算机系统800可以经由网络接口 840与位于外部系统上的管 理器110相通信。在各种实施例中,网络接口 840可以支持经由以下 网络进行通信有线或无线通用数据网络,如任何合适类型的以太网; 电信/电话网络,如模拟话音网络或数字光纤通信网络;存储器局域网, 如光纤通道SAN;或任何其他合适类型的网络和/或协议。
在一个实施例中,可以将SAN接口 850配置成允许经由交换机 720在计算机系统800与存储器阵列730之间交换数据。在某些实施 例中,如上所述,SAN接口 850可以包括光纤通道接口或另一合适的 接口。然而,作出如下构思在某些实施例中,可以通过标准的网络 接口来实现SAN连接性。在这种实施例中,计算机系统800可以提供 单个网络接口 (例如网络接口 840)以与存储装置和其他计算机系统 相通信,或者计算机系统800可以将存储装置和通用网络通信均匀地 散布在几个类似配置的网络接口上。
在某些实施例中,系统存储器820可以是被配置成存储如上所述 的程序指令和数据的计算机可访问介质的一个实施例。然而,在其他 实施例中,可以接收、发送或在不同类型的计算机可访问介质上存储 程序指令和/或数据。 一般来讲,计算机可访问介质可以包括诸如磁或 光介质之类的存储介质或存储器介质,例如,经由I/O接口 830耦合 到计算机系统800的盘、CD-ROM或DVD-ROM,或经由SAN接口 850耦合到计算机系统800的存储器阵列730。计算机可访问介质还可以包括可以作为系统存储器820或另 一类型的存储器而包括在某些实 施例的计算机系统800中的任何易失性或非易失性介质,如RAM(例 如SDRAM、 DDR SDRAM 、 RDRAM、 SRAM等)、ROM等。此夕卜, 计算机可访问介质可以包括传输介质或信号,该信号例如是经由诸如 网络和/或无线链接的通信介质而传送的诸如电、电磁或数字的信号, 使得可以经由网络接口 840或SAN接口 850来实现。
尽管详细地描述了以上实施例,但是本领域的技术人员一旦全面 理解了以上公开内容就将明了许多变型和修改。应当将以下权利要求 解释成包括所有这种变型和修改。
权利要求
1、一种系统,该系统包括多个数据仓库;和数据仓库管理器,其被配置成从一个或更多个数据源提取数据集合以存储在所述多个数据仓库中的一个或更多个中;其中包括所述多个数据仓库中的两个或更多个数据仓库的第一子集中的每个数据仓库都被配置成存储由所述数据仓库管理器提取的第一数据集合的相应副本;并且其中所述数据仓库管理器还被配置成在所述第一数据集合的每个相应副本已被存储到所述第一子集中的对应数据仓库之前允许由数据仓库的所述第一子集中的一个数据仓库对依赖于所述第一数据集合的查询进行评估。
2、 根据权利要求1所述的系统,其中,在所述第一子集中的第 一数据仓库对所述查询进行评估的同时,所述第一子集中的另一数据 仓库正在存储所述第一数据集合。
3、 根据权利要求1所述的系统,其中,所述数据仓库管理器还 被配置成在所述第一数据集合已被存储到任何给定数据仓库之后允许 由所述第 一子集中的任何给定数据仓库来评估所述查询。
4、 根据权利要求1所述的系统,至少部分同时地将所述第一数 据集合存储到数据仓库的所述第 一子集中的每个数据仓库。
5、 根据权利要求1所述的系统,其中所述多个数据仓库中的一 个给定数据仓库被配置成存储由所述数据仓库管理器提取的第二数据 集合,并且其中所述多个数据仓库中的至少另 一数据仓库不存储所述 第二数据集合的任何副本。
6、 根据权利要求1所述的系统,其中所述多个数据仓库中的每 一个都包括相应的关系数据库。
7、 根据权利要求1所述的系统,其中所述数据仓库管理器还被 配置成在操作数据库中存储与存储在所述多个数据仓库内的每个数据集合相对应的标识信息。
8、 根据权利要求7所述的系统,其中,对于所述第一数据集合, 所述标识信息包括数据仓库的所述第一子集中每个数据仓库的相应标 识符,以及表明是否已将所述第一数据集合存储到数据仓库的所述第 一子集中的一个对应数据仓库中的相应状态信息。
9、 根据权利要求8所述的系统,其中所述数据仓库管理器还被 配置成根据所述相应状态信息来确定数据仓库的所述第一子集中的 一个给定数据仓库具有足够的数据来对所述查询进行评估,并且被配 置成响应性地将所述查询传送给所述第一子集中的所述一个给定数据 仓库以进行评估。
10、 根据权利要求l所述的系统,其中所述多个数据仓库中的至 少两个位于不同的物理地点。
11、 根据权利要求l所述的系统,其中所述多个数据仓库中的每 一个都包括相应的计算集群,其中给定的相应计算集群包括经由存储 区域网耦合到多个存储装置的至少 一个计算节点。
12、 根据权利要求11所述的系统,其中所述至少一个计算节点 被配置成实施与一版本的Linux兼容的操作系统。
13、 根据权利要求l所述的系统,其中所述数据仓库管理器被配 置成经由web服务接口从进行请求的应用接收所述查询。
14、 一种方法,该方法包括以下步骤从一个或更多个数据源提取数据集合以存储在多个数据仓库中 的一个或更多个中;将第 一数据集合的相应副本存储在包括所述多个数据仓库中的两个或更多个数据仓库的第一子集中的每个数据仓库中;以及在所述第 一数据集合的每个相应副本被存储到所述第 一子集中 的对应数据仓库之前允许由数据仓库的所述第一子集中的一个数据仓 库对依赖于所述第 一数据集合的查询进行评估。
15、 根据权利要求14所述的方法,该方法还包括以下步骤在 所述第一子集中的第一数据仓库对所述查询进行评估的同时,所述第一子集中的另 一数据仓库正在存储所述第一数据集合。
16、 根据权利要求14所述的方法,该方法还包括以下步骤在 所述第 一数据集合已被存储到任何给定数据仓库之后,允许由所述第 一子集中的任何给定数据仓库来评估所述查询。
17、 根据权利要求14所述的方法,该方法还包括以下步骤至 少部分同时地将所述第一数据集合存储到数据仓库的所述第一子集中 的每个数据仓库。
18、 根据权利要求14所述的方法,其中所述多个数据仓库中的 一个给定数据仓库被配置成存储由所述数据仓库管理器提取的第二数 据集合,并且其中所述多个数据仓库中的至少另 一数据仓库不存储所 述第二数据集合的任何副本。
19、 根据权利要求14所述的方法,其中所述多个数据仓库中的 每一个都包括相应的关系数据库。
20、 根据权利要求14所述的方法,该方法还包括以下步骤在 操作数据库中存储与存储在所述多个数据仓库内的每个数据集合相对 应的标识信息。
21、 根据权利要求20所述的方法,其中,对于所述第一数据集 合,所述标识信息包括数据仓库的所述第一子集中每个数据仓库的相 应标识符,以及表明是否已将所述第一数据集合存储到数据仓库的所 述第一子集中的一个对应数据仓库中的相应状态信息。
22、 根据权利要求21所述的方法,该方法还包括以下步骤 根据所述相应状态信息来确定数据仓库的所述第一子集中的一个给定数据仓库具有足够的数据来对所述查询进行评估;以及响应于所述确定将所述查询传送给所述第一子集中的所述一个给定数据仓库以进行评估。
23、 根据权利要求14所述的方法,其中所述多个数据仓库中的 至少两个位于不同的物理地点。
24、 根据权利要求14所述的方法,其中所述多个数据仓库中的 每一个都包括相应的计算集群,其中给定的相应计算集群包括经由存储区域网耦合到多个存储装置的至少 一个计算节点。
25、 根据权利要求24所述的方法,其中所述至少一个计算节点 被配置成实施与一版本的Linux兼容的操作系统。
26、 根据权利要求14所述的方法,该方法还包括以下步骤经 由web服务接口从进行请求的应用接收所述查询。
27、 一种包括有程序指令的计算机可访问介质,其中可以由计算 机系统执行所述程序指令以从一个或更多个数据源提取数据集合以存储在多个数据仓库中 的一个或更多个中;将第一数据集合的相应副本存储在包括所述多个数据仓库中的两个或更多个数据仓库的第一子集中的每个数据仓库中;以及在所述第 一数据集合的每一个相应副本被存储到所述第 一子集 中的对应数据仓库之前允许由数据仓库的所述第一子集中的一个数据 仓库对依赖于所述第 一数据集合的查询进行评估。
28、 根据权利要求27所述的计算机可访问介质,其中,在所述 笫 一子集中的第一数据仓库对所述查询进行评估的同时,所述第 一子 集中的另 一数据仓库正在存储所述第 一数据集合。
29、 根据权利要求27所述的计算机可访问介质,其中所述程序 指令还可以执行以在所述第一数据集合已被存储到任何给定数据仓 库之后,允许由所述第一子集中的任何给定数据仓库来评估所述查询。
30、 根据权利要求27所述的计算机可访问介质,其中至少部分 同时地将所述第一数据集合存储到数据仓库的所述第一子集中的每个 数据仓库。
31、 根据权利要求27所述的计算机可访问介质,其中所述多个 数据仓库中的每一个都包括相应的关系数据库。
32、 根据权利要求27所述的计算机可访问介质,其中所述程序 指令还可以执行以在操作数据库中存储与存储在所述多个数据仓库 内的每一个数据集合相对应的标识信息。
33、 根据权利要求32所述的计算机可访问介质,其中,对于所述第一数据集合,所述标识信息包括数据仓库的所述第一子集中每一 个数据仓库的相应标识符,以及表明是否已将所述第一数据集合存储 到数据仓库的所述第一子集中的一个对应数据仓库中的相应状态信 息。
34、 根据权利要求33所述的计算机可访问介质,其中所述程序 指令还可以执行以根据所述相应状态信息来确定数据仓库的所述第一子集中的一 个给定数据仓库具有足够的数据来对所述查询进行评估;以及响应于所述确定将所述查询传送给所述第一子集中的所述一个 给定数据仓库以进行评估。
35、 根据权利要求27所述的计算机可访问介质,其中所述程序 指令还可以执行以实施与一版本的Linux兼容的操作系统。
36、 根据权利要求27所述的计算机可访问介质,其中所述程序 指令还可以执行以经由web服务接口从进行请求的应用接收所述查 询。
37、 一种系统,该系统包括多个数据仓库,其被配置成存储从一个或更多个数据源提取的数 据集合;以及数据仓库管理器,其被配置成将所述多个数据仓库作为单个数据 仓库呈现给客户机,其中所述多个数据仓库内的所述数据集合的位置 对于所述客户机是透明的;其中,在给定时刻,由所述多个数据仓库中的第一数据仓库存储 的并且在所述给定时刻可供所述客户机进行查询的第 一数据集合与由 所述多个数据仓库中的第二数据仓库存储的并且在所述给定时刻可供 所述客户机进行查询的第二数据集合不相似;并且其中,响应于接收到来自所述客户机的针对由所述多个数据仓库 中的一个或更多个数据仓库存储的数据集合的查询,所述数据仓库管 理器还被配置成识别所述多个数据仓库中的能够对所述查询进行评估 的一个特定数据仓库,并将所述查询传送给所述特定数据仓库以进行评估。
38、 根据权利要求37所述的系统,其中包括所述多个数据仓库 中的两个或更多个数据仓库的第一子集中的每个数据仓库都被配置成 存储给定数据集合的相应副本。
39、 根据权利要求38所述的系统,其中所述数据仓库管理器还 被配置成在所述给定数据集合的每个相应副本已被存储到所述第一 子集中的对应数据仓库之前,允许由数据仓库的所述第一子集中的一 个数据仓库对依赖于所述给定数据集合的查询进行评估。
40、 根据权利要求37所述的系统,其中所述多个数据仓库中的 一个给定数据仓库被配置成存储第二数据集合,并且其中所述多个数 据仓库中的至少另 一数据仓库不存储所述第二数据集合的任何副本。
41、 根据权利要求37所述的系统,其中所述多个数据仓库中的 每一个都包括相应的关系数据库。
42、 根据权利要求37所述的系统,其中所述数据仓库管理器还 被配置成在操作数据库中存储与存储在所述多个数据仓库内的每个 数据集合相对应的标识信息。
43、 根据权利要求42所述的系统,其中,对于给定数据集合, 所述标识信息包括存储有或要存储所述给定数据集合的所述一个或更 多个数据仓库中每一个的相应标识符,并且其中所述标识信息还包括 表明是否已将所述给定数据集合存储到对应数据仓库的相应状态信 息。
44、 根据权利要求43所述的系统,其中,所述数据仓库管理器 识别能够对所述查询进行评估的所述特定数据仓库的操作还包括根据所述查询进行评估。
45、 根据权利要求37所述的系统,其中所述数据仓库管理器还 被配置成经由web服务接口从进行请求的应用接收所述查询。
46、 一种方法,该方法包括以下步骤从一个或更多个数据源提取数据集合以存储在多个数据仓库中的一个或更多个中;将所述多个数据仓库作为单个数据仓库呈现给客户机,其中所述 多个数据仓库内的所述数据集合的位置对于所述客户机是透明的;以 及响应于接收到来自所述客户机的针对由所述多个数据仓库中的 一个或更多个数据仓库存储的数据集合的查询,识别所述多个数据仓 库中的能够对所述查询进行评估的一个特定数据仓库,并将所述查询 传送给所述特定数据仓库以进行评估,其中,在给定时刻,由所述多个数据仓库中的第一数据仓库存储 的并且在所述给定时刻可供所述客户机进行查询的第 一数据集合与由 所述多个数据仓库中的第二数据仓库存储的并且在所述给定时刻可供 所述客户机进行查询的第二数据集合不相似。
47、 根据权利要求46所述的方法,其中包括所述多个数据仓库 中的两个或更多个数据仓库的第一子集中的每个数据仓库都被配置成 存储给定数据集合的相应副本。
48、 根据权利要求47所述的方法,该方法还包括以下步骤在 所述给定数据集合的每个相应副本已被存储到所述第 一子集中的对应 数据仓库之前,允许由数据仓库的所述第一子集中的一个数据仓库对 依赖于所述给定数据集合的查询进行评估。
49、 根据权利要求46所述的方法,其中所述多个数据仓库中的 一个给定数据仓库被配置成存储第二数据集合,并且其中所述多个数 据仓库中的至少另 一数据仓库不存储所述第二数据集合的任何副本。
50、 根据权利要求46所述的方法,其中所述多个数据仓库中的 每一个都包括相应的关系数据库。
51、 根据权利要求46所述的方法,该方法还包括以下步骤在 操作数据库中存储与存储在所述多个数据仓库内的每个数据集合相对 应的标识信息。
52、 根据权利要求51所述的方法,其中,对于给定数据集合, 所述标识信息包括存储有或要存储所述给定数据集合的所述一个或更多个数据仓库中每一个的相应标识符,并且其中所述标识信息还包括 表明是否已将所述给定数据集合存储到对应数据仓库的相应状态信 息。
53、 根据权利要求52所述的方法,其中,识别能够对所述查询 进行评估的所述特定数据仓库的步骤还包括以下步骤根据所述相应 状态信息来确定所述特定数据仓库是否具有足够的数据来对所述查询 进行评估。
54、 根据权利要求46所述的方法,该方法还包括以下步骤经 由web服务接口从进行请求的应用接收所述查询,
55、 一种包括程序指令的计算机可访问介质,其中所述程序指令 可以执行以从一个或更多个数据源提取数据集合以存储在多个数据仓库中 的一个或更多个中;将所述多个数据仓库作为单个数据仓库呈现给客户机,其中所述多个数据仓库内的所述数据集合的位置对于所述客户机是透明的;以 及响应于接收到来自所述客户机的针对由所述多个数据仓库中的 一个或更多个数据仓库存储的数据集合的查询,识别所述多个数据仓 库中的能够对所述查询进行评估的一个特定数据仓库,并将所述查询 传送给所述特定数据仓库以进行评估,其中,在给定时刻,由所述多个数据仓库中的第一数据仓库存储 的并且在所述给定时刻可供所述客户机进行查询的第 一数据集合与由 所述多个数据仓库中的第二数据仓库存储的并且在所述给定时刻可供 所述客户机进行查询的第二数据集合不相似。
56、 根据权利要求55所述的计算机可访问介质,其中包括所述 多个数据仓库中的两个或更多个数据仓库的第一子集中的每个数据仓 库都被配置成存储给定数据集合的相应副本。
57、 根据权利要求56所述的计算机可访问介质,还包括在所 述给定数据集合的每个相应副本已被存储到所述第一子集中的对应数据仓库之前,允许由数据仓库的所述第一子集中的一个数据仓库对依 赖于所述给定数据集合的查询进行评估。
58、 根据权利要求55所述的计算机可访问介质,其中所述多个 数据仓库中的一个给定数据仓库被配置成存储第二数据集合,并且其 中所述多个数据仓库中的至少另 一数据仓库不存储所述第二数据集合 的任何副本。
59、 根据权利要求55所述的计算机可访问介质,其中所述多个 数据仓库中的每一个都包括相应的关系数据库。
60、 根据权利要求55所述的计算机可访问介质,还包括在操 作数据库中存储与存储在所述多个数据仓库内的每个数据集合相对应 的标识信息。
61、 根据权利要求60所述的计算机可访问介质,其中,对于给 定数据集合,所述标识信息包括存储有或要存储所述给定数据集合的 所述一个或更多个数据仓库中每一个的相应标识符,并且其中所述标 识信息还包括表明是否已将所述给定数据集合存储到对应数据仓库的 相应状态信息。
62、 根据权利要求61所述的计算机可访问介质,其中,识别能 够对所述查询进行评估的所述特定数据仓库的操作还包括根据所述 相应状态信息来确定所述特定数据仓库是否具有足够的数据来对所述 查询进行评估。
63、 根据权利要求55所述的计算机可访问介质,还包括经由web 服务接口从进行请求的应用接收所述查询。
64、 一种系统,该系统包括 多个数据仓库;和数据仓库管理器,其被配置成从一个或更多个数据源提取数据集 合以存储在所述多个数据仓库中的一个或更多个中;以及操作数据库,其被配置成与所述数据仓库管理器相交互并且存储 与所述数据集合相关联的数据仓库状态信息,其中,响应于接收到来自多个客户机中的一个给定客户机的针对由所述多个数据仓库中的一个或更多个数据仓库所存储的数据集合的 查询,所述数据仓库管理器还被配置成识别所述多个数据仓库中的能 够对所述查询进行评估的一个特定数据仓库,并将所述查询传送给所 述特定数据仓库以进行评估,其中所述识别操作依赖于所述数据仓库 状态信息。
65、 根据权利要求64所述的系统,其中,对于给定数据集合, 与所述给定数据集合相关联的所述数据仓库状态信息包括对被配置成 存储所述给定数据集合的所述多个数据仓库中的一个或更多个进行标 识的信息。
66、 根据权利要求64所述的系统,其中,对于给定数据集合, 与所述给定数据集合相关联的所述数据仓库状态信息包括针对修改所 述给定数据集合的内容的操作而标识所述给定数据集合的状态的信 息。
67、 根据权利要求64所述的系统,其中包括所述多个数据仓库 中的两个或更多个数据仓库的第一子集中的每个数据仓库都被配置成 存储由所述数据仓库管理器提取的第一数据集合的相应副本,并且其 中所述数据仓库管理器还被配置成在所述第一数据集合的每个相应 副本已被存储到所述第一子集中的对应数据仓库之前,允许由数据仓 库的所述第一子集中的一个数据仓库对依赖于所述第一数据集合的查 询进行评估。
68、 根据权利要求64所述的系统,其中所述数据仓库管理器还 被配置成将所述多个数据仓库作为单个数据仓库呈现给所述给定客户 机,其中所述多个数据仓库内的所述数据集合的位置对于所述给定客 户机是透明的。
69、 根据权利要求68所述的系统,其中,在给定时刻,由所述 多个数据仓库中的第一数据仓库存储的并且在所述给定时刻可供所述 给定客户机进行查询的第 一数据集合与由所述多个数据仓库中的第二 数据仓库存储的并且在所述给定时刻可供所述给定客户机进行查询的 第二数据集合不相似
全文摘要
一种用于实现数据仓储系统的设备和方法。根据第一实施例,一种系统可以包括多个数据仓库;和数据仓库管理器,其被配置成从一个或更多个数据源提取数据集合以存储在所述多个数据仓库中的一个或更多个中。包括所述多个数据仓库中的两个或更多个数据仓库的第一子集中的每个数据仓库都被配置成存储由所述数据仓库管理器提取的第一数据集合的相应副本。此外,所述数据仓库管理器还可以被配置成在所述第一数据集合的每个相应副本被存储到所述第一子集中的对应数据仓库之前允许由数据仓库的所述第一子集中的一个数据仓库对依赖于所述第一数据集合的查询进行评估。
文档编号G06F17/30GK101305365SQ200580047505
公开日2008年11月12日 申请日期2005年12月14日 优先权日2004年12月17日
发明者保罗·J·博得, 克里斯托弗·R·贝尔, 马克·E·邓拉普 申请人:亚马逊科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1