CN101727478B - 动态建立并用储存库中的数据填充数据集市的方法和系统 - Google Patents
动态建立并用储存库中的数据填充数据集市的方法和系统 Download PDFInfo
- Publication number
- CN101727478B CN101727478B CN2009101800376A CN200910180037A CN101727478B CN 101727478 B CN101727478 B CN 101727478B CN 2009101800376 A CN2009101800376 A CN 2009101800376A CN 200910180037 A CN200910180037 A CN 200910180037A CN 101727478 B CN101727478 B CN 101727478B
- Authority
- CN
- China
- Prior art keywords
- data
- resource
- type
- chart
- measurement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了用于动态建立并用储存库中的数据填充数据集市的方法和系统,即,用于构建数据集市、并利用来自于包含关于相关资源集的实际和关联信息的数据储存库集的维度数据模型来填充数据集市的方法、系统和产品。生成中间数据仓库以处理对于每个资源的事实和关联。使用该中间数据仓库,用事实表、维度和层级结构来生成一个或多个数据集市,以充分建模对于每个资源可用的信息。
Description
技术领域
本发明的实施例通常涉及数据库。更具体地,本发明的实施例涉及用于建立数据集市(data mart)、并用来自数据储存库的数据填充(populate)该数据集市的技术。
背景技术
在过去二十年,数据仓库已经作为向企业提供决策支持系统以识别趋势并执行战略计划的部件而变得普遍。由事实表(fact table)和维度(dimensional)数据模型构建的数据集市位于这样的系统的中心,这是因为,这样的数据集市提供灵活的和高性能的方式来进行商业分析。
构建这样的数据集市的显著成本在于利用图表(schema)并利用来自不同的操作系统的、对总体数据仓库内容有贡献的数据来构建事实和维度表。在典型的方法中,IT员工使用某种建模工具(如DB2 Warehouse Edition、Cognos Framework Manager、或Hyperion Essbase)来建立维度数据模型。此模型通常由事实、层级结构(hierarchy)和维度的固定集合组成。例如,零售商店可建立包含关于其交易的数据的事实表,其具有基于商店、时间和产品的维度。
一旦设计了该模型,其便可以被用于建立数据集市、并利用数据填充该数据集市,使得维度和层级结构可以被用于高效地查询所述数据。然而,通常,维度模型自身在层级结构的定义、层级结构中的层级数量以及维度数量方面是固定的。这使得当企业对填充仓库的操作系统的结构作出改变时、难以改变维度模型。此外,一旦将数据移植到新的模型,则旧模型经常丢失,使得难以维持对仓库数据的历史视角。
发明内容
本发明的一个实施例包括用于动态建立数据集市、并利用来自于数据储存库的数据填充该数据集市的计算机实施的方法。该方法通常可以包括:接收指定数据储存库和该数据储存库中的资源(asset)类型的用户配置;生成对于用于存储与该资源类型相关的数据的中间数据仓库的图表,其中,所述与该资源类型相关的数据包括对于具有该资源类型的所有资源的所有测量(measure);通过向该数据储存库查询所述与该资源类型相关的数据,来填充该中间数据仓库;生成对于对应于该资源类型的数据集市的图表;以及通过向该中间数据仓库查询所述与该资源类型相关的数据,来填充该数据集市。
本发明的另一实施例包括包含程序的计算机可读存储介质,其中,该程序当被执行时进行用于动态建立数据集市、并利用来自于数据储存库的数据填充该数据集市的操作。该操作通常可以包括:接收指定数据储存库和该数据储存库中的资源类型的用户配置;生成对于用于存储与该资源类型相关的数据的中间数据仓库的图表,其中,所述与该资源类型相关的数据包括对于具有该资源类型的所有资源的所有测量;通过向该数据储存库查询所述与该资源类型相关的数据,来填充该中间数据仓库;生成对于对应于该资源类型的数据集市的图表;以及通过向该中间数据仓库查询所述与该资源类型相关的数据,来填充该数据集市。
本发明的又一实施例包括具有处理器和包含程序的存储器的系统,其中,当该处理器执行该程序时,该程序被配置为进行用于动态建立数据集市、并利用来自于数据储存库的数据填充该数据集市的操作。该操作通常应当包括:接收指定数据储存库和该数据储存库中的资源类型的用户配置;生成对于用于存储与该资源类型相关的数据的中间数据仓库的图表,其中,所述与该资源类型相关的数据包括对于具有该资源类型的所有资源的所有测量;通过向该数据储存库查询所述与该资源类型相关的数据,来填充该中间数据仓库;生成对于对应于该资源类型的数据集市的图表;以及通过向该中间数据仓库查询所述与该资源类型相关的数据,来填充该数据集市。
本发明的另一实施例包括用于动态建立数据集市、并利用来自于数据储存库的数据填充该数据集市的、计算机实施的方法。该方法通常可以包括:接收指定所述多个数据储存库和所述多个数据储存库中的多个资源类型的用户配置输入,其中,所指定的多个数据储存库包含:(i)所指定的多个资源类型的多个资源;(ii)在两个资源类型的资源之间的至少一个关联;(iii)基于所述在两个资源类型之间的至少一个关联而对资源分组的至少一个资源组;以及(iv)至少一个测量类型的多个测量,其中,所述多个测量包含描述所述多个资源的值;生成对于用于存储与所指定的多个资源类型相关的数据的中间数据仓库的图表,其中,所述与所指定的多个资源类型相关的数据包括:(i)对于所指定的多个资源类型的资源的测量类型的测量;(ii)在所指定的多个资源类型之中的一个资源类型的资源、与所指定的多个资源类型中的另一资源类型的资源之间的至少一个关联;以及(iii)将所指定的多个资源类型的资源分组的至少一个资源组;并且其中,该中间数据仓库的图表包括时间戳,以允许对该中间数据仓库中的记录分配版本;通过向所指定的多个数据储存库查询所述与所指定的多个资源类型相关的数据,来填充该中间数据仓库;对于所指定的多个资源类型的每个资源类型,生成对应于相应资源类型的数据集市的图表;其中,该数据集市的图表包括:(i)表示测量类型的静态维度、以及(ii)表示用以允许对该数据集市中的记录分配版本的时间的静态维度;其中,静态维度是存在于该多个数据集市的每个中的维度;以及对于所指定的多个资源类型的每个资源类型,通过向该中间数据仓库查询与相应资源类型相关的数据,来填充对应于相应资源类型的数据集市。
本发明的另一实施例包括包含程序的计算机可读存储介质,其中,该程序当被执行时进行用于动态建立数据集市、并利用来自于数据储存库的数据填充该数据集市的操作。该操作通常可以包括:接收指定多个数据储存库和所述多个数据储存库中的多个资源类型的用户配置输入,其中,所指定的多个数据储存库包含:(i)所指定的多个资源类型的多个资源;(ii)在两个资源类型的资源之间的至少一个关联;(iii)基于所述在两个资源类型之间的至少一个关联而对资源分组的至少一个资源组;以及(iv)至少一个测量类型的多个测量,其中,所述多个测量包含描述所述多个资源的值;生成对于用于存储与所指定的多个资源类型相关的数据的中间数据仓库的图表,其中,所述与所指定的多个资源类型相关的数据包括:(i)对于所指定的多个资源类型的资源的测量类型的测量;(ii)在所指定的多个资源类型之中的一个资源类型的资源、与所指定的多个资源类型中的另一资源类型的资源之间的至少一个关联;以及(iii)将所指定的多个资源类型的资源分组的至少一个资源组;并且其中,该中间数据仓库的图表包括时间戳,以允许对该中间数据仓库中的记录分配版本;通过向所指定的多个数据储存库查询所述与所指定的多个资源类型相关的数据,来填充该中间数据仓库;对于所指定的多个资源类型的每个资源类型,生成对应于相应资源类型的数据集市的图表;其中,该数据集市的图表包括:(i)表示测量类型的静态维度、以及(ii)表示用以允许对该数据集市中的记录分配版本的时间的静态维度;其中,静态维度是存在于该多个数据集市的每个中的维度;以及对于所指定的多个资源类型的每个资源类型,通过向该中间数据仓库查询与相应资源类型相关的数据,来填充对应于相应资源类型的数据集市。
附图说明
因此,可以详细理解实现上面陈述的本发明的特征、优势和目标的方式,通过参照在附图中图示的本发明的实施例,可以对上面简要概括的本发明进行更加具体的描述。
然而,要注意,附图仅图示此发明的典型实施例,并且因此不被考虑为其范围的限制,因为本发明可以承认其它同等效果的实施例。
图1是图示根据本发明的一个实施例的、存储在数据储存库中的资源的示例的框图。
图2是图示根据本发明的一个实施例的、在数据储存库中存储的资源之间的关联的示例的框图。
图3是图示根据本发明的一个实施例的、对于存储在数据储存库中的资源的可能的数据集市图表的示例的框图。
图4是图示根据本发明的一个实施例的、用于建立数据集市、并使用来自于数据储存库的数据来填充该数据集市的高级概览(overview)的结构图。
图5是图示根据本发明的一个实施例的、用于建立数据集市、并使用来自于数据储存库的数据来填充该数据集市的高级流程的流程图。
图6是图示根据本发明的一个实施例的、中间数据仓库的垂直图表的示例的框图。
图7是图示根据本发明的一个实施例的、用于填充中间数据仓库的架构的框图。
图8是图示根据本发明的一个实施例的、用于填充中间数据仓库的流程的流程图。
图9是图示根据本发明的一个实施例的、用于创建和填充数据集市的架构的框图。
图10是图示根据本发明的一个实施例的、对创建和填充数据集市的高级概览的流程图。
图11是图示根据本发明的一个实施例的、用于创建数据集市的雪花(snowflake)图表的流程的流程图。
图12是图示根据本发明的一个实施例的、用于填充数据集市的流程图。
图13是图示根据本发明的一个实施例的、示例数据集市图表的框图。
图14是图示根据本发明的一个实施例的、数据储存库中的数据样本的框图。
图15是图示根据本发明的一个实施例的、中间数据仓库图表的局部示例的框图。
图16是图示根据本发明的一个实施例的、数据集市图表的局部示例的框图。
具体实施方式
本发明的实施例提供用于建立数据集市、并利用来自于数据储存库的数据来填充该数据集市的技术。具体地,本发明的实施例提供动态建立数据集市、并利用来自于数据储存库集的维度数据模型来填充该数据集市的技术,其中,所示数据储存库包含关于相关信息资源集的、实际的和关联信息。在一个实施例中,信息资源(或者简单地,资源)是由事实和与其它资源的关联的集合而描述的实体。根据本发明的一个实施例,事实可以是属性(字符串)、简单的测量(观测数值;也可以是字符串)、以及复杂的测量(也称为评分(计算的数值))。在一个实施例中,数据集市是填充有数据的一个或多个雪花图表的实例。不失一般性地,可以假设数据集市由一个雪花图表组成;将多个雪花图表组成数据集市是直接扩展。在一个实施例中,从数据储存库的资源数据和关联而动态地导出数据集市的维度、层级结构和事实表。此外,维度、层级结构和事实表可以随时间改变。根据一个实施例,数据集市准确地反映在任何给定时间点处的结构。
在一个实施例中,生成中间数据仓库来处理关于每个资源的事实和关联。在一个实施例中,仓库是包含在不同时间点从各种数据储存库收集的资源数据(事实和关联)的数据库。中间数据仓库从存储关于资源的信息的数据储存库捕捉所有相关数据。关于资源的信息包括关于资源的事实、以及资源如何彼此相关。可以随时间而将新事实添加到该数据储存库,并且,资源之间的关联可以随时间改变。
在一个实施例中,提供用于基于中间数据仓库而自动生成一个或多个数据集市的技术。所生成的数据集市允许用户进行对在任何给定时间点的资源、以及它们彼此的关联的分析。在特定实施例中,通过生成对于资源的雪花图表(或者星型图表)来建立数据集市,使得:(i)使用事实来填充事实表;以及(ii)使用关联来填充维度并创建层级结构。在一个实施例中,雪花图表是数据库图表定义,使得集中的事实表连接至多个维度。在一个实施例中,星型图表是雪花图表的特殊化(specialization),其中,在单个表中表示维度。
在一个实施例中,自动定义和填充数据集市,而非通过由仓库开发者承担的一组手动步骤。可以从多个不同的储存库提取由数据集市描述的关于资源的信息。例如,关于资源的一些信息可以被存储在一个或多个关系数据库中,而其它信息可以来自于资源储存库或文件系统。数据集市的图表是从数据储存库中的资源和关联自动导出的。每个雪花图表或星型图表是动态建立的,并且包括事实、维度和层级结构。层级结构是为每个导出的维度定义的,并且基于在资源中检测的关联,可以是平衡的、非平衡的或不规则的(ragged)。
一个实施例保留(preserve)从下层(underlying)的数据储存库检索(retrieve)的数据的历史视图。因此,虽然数据储存库中的一些可以仅保持数据的单个状态(例如,最当前的状态),但是中间数据仓库图表可以显示资源状态随时间、以及跨越不同储存库的进展。这样,用户可以访问从下层的数据储存库检索的数据的在先版本。
下面,参考本发明的实施例。然而,应当理解本发明不限于具体描述的实施例。相反,下列特征和元素的任何组合(不论是否涉及不同实施例)被预期为实施并实践本发明。另外,在不同实施例中,本发明提供胜于现有技术的多个优势。然而,虽然本发明的实施例可以实现胜于其它可能的解决方案和/或胜于现有技术的优势,但是是否有给定实施例实现特定优势并非对本发明的限制。因此,下列方面、特征、实施例和优势仅仅是说明性的,并且不被考虑为所附权利要求书的元素或限制,除非在(多个)权利要求中明确阐明之外。同样,对“本发明”的引用不应被解释为这里公开的任何创造性主题的概括,并且不应被看作为所附权利要求书的元素或限制,除非在(多个)权利要求中明确阐明之外。
本发明的一个实施例被实施为用于计算机系统的程序产品。程序产品的(多个)程序定义实施例(包括这里描述的方法)的功能,并且可以包含在多种计算机可读存储介质上。举例说明的计算机可读存储介质包括、但不限于:(i)信息在其上永久存储的不可写入存储介质(例如,计算机内的只读存储设备,诸如由CD-ROM驱动器可读的CD-ROM盘);(ii)在其上存储可变的信息的可写入存储介质(例如,软驱中的软盘或硬盘驱动器)。当携带指示本发明的功能的计算机可读指令时,这样的计算机可读存储介质是本发明的实施例。其它介质包括通信介质,通过该通信介质而将信息传递到计算机,例如,通过计算机或电话网络(包括无线通信网络)。后面的实施例具体地包括将信息传送至因特网和其它网络/从因特网和其它网络传送信息。当携带指示本发明的功能的计算机可读指令时,这样的通信介质是本发明的实施例。广义上,计算机可读存储介质和通信介质可以在这里称为计算机可读介质。
一般而言,被执行用以实施本发明的实施例的例程可以是操作系统或具体应用软件的一部分、组件、程序、模块、对象或指令序列。本发明的计算机程序典型地由大量指令组成,所述指令将被本地计算机解译为机器可读格式并且此后为可执行指令。此外,程序由或者本地地驻留于程序中、或者在内存中或存储设备上出现的变量和数据结构组成。另外,可以基于在本发明的具体实施例中实施下文中描述的各种程序所针对的应用软件,来识别所述程序。然而,应当理解,接着的任何特定程序术语仅仅为了方便而使用,并且因此,不应将本发明限制为仅仅用在由这样的术语识别的和/或暗示的任何具体应用软件。
图1是图示根据本发明的一个实施例的、包含资源的数据储存库的示例100的框图。如图1中所示,多个储存库101、102、103、104存储包含关于金融机构(例如,银行)的信息的数据。储存库C 103描述对于保存银行业数据的表的关系数据库图表。说明性地,在主机、数据库图表、表和列信息方面描述对于这些表的关系数据库图表。这里,“主机”是指拥有特定数据库的服务器。例如,如储存库C 103中所示,主机“BROADWAY”是拥有数据库“EXPRESS”的服务器。储存库D 104包含在保存银行业数据的表的列上的剖析(profiling)结果。剖析结果报告诸如列中的重复或空值的数量、列所包含的不同格式的数量等的信息。储存库B 102经由定义银行业数据的商业类别和商业术语的分级术语表,描述银行业数据的商业含义。例如,类别“位置”依据数据的物理位置而分类数据。还可以进一步将类别细分为子类别。例如,“银行业”被细分为两个子类别“客户(Customers)”和“账户(Accounts)”,它们分别提供客户和账户数据的商业定义。最后,储存库A 101描述数据管理员(即,用户),其被分配为支配描述储存库C 103中的不同的数据区域的、储存库B 102中的商业类别和术语的使用和定义。
资源可以进一步通过与其它资源的关联来描述。图2是图示根据本发明的一个实施例的、在存储在数据储存库中的资源之间的关联的示例200的框图。储存库D 104中的剖析结果与储存库C 103中的各个列定义反向相关(202)。此外,由储存库B 102中的商业术语和类别来分类(201)储存库C103中的列、表和数据库。最后,储存库A 101中的管理员被分配(203)为管理储存库B 102中的商业类别和术语。
可以使用存储在数据储存库中的资源来建立数据集市图表。图3是图示根据本发明的一个实施例的、对于存储在数据储存库中的资源的数据集市图表300的示例的框图。具体地,图3示出对于使用存储在图1和2的数据储存库中的资源而建立的数据集市的两个可能的雪花图表的示例。上面的图表是对于“列”资源类型的数据集市的雪花图表301。此图表包括对于列的事实表。一般而言,事实表包含信息资源的测量、度量、或事实。说明性地,存储在事实表中的事实是从关于列的物理元数据(如数据类型和长度)、以及从剖析信息导出的事实(如值的数量、空(null)的数量、数据格式数量、重复的数量等)得到的。除了时间维度之外,还可以从图2中所示的关联(包括物理数据库图表、商业类别和管理员)导出事实表的维度。
下面的图表是对于“商业术语”资源类型的数据集市的雪花图表302。此图表302包括商业术语的事实表。存储在事实表中的事实包括关于商业术语的事实(如其名称、描述、同义词和缩写词)。再次,此事实表的维度是从此资源类型对其它资源类型的关联导出的,如图2中所示。在两个图表300中,由测量维度限定(qualify)事实,使得可以添加新的测量类型的事实,而不需要修改雪花图表。具体地,测量维度捕捉关于测量类型的信息,并且可以支持新的测量类型,而不需要将事实表图表更新为包含新的字段。
在一个实施例中,为存储在各种数据储存库中的相关的资源组动态建立数据集市。图4是图示根据本发明的一个实施例的、建立数据集市并使用来自数据储存库的数据来填充数据集市的处理的结构图。具体地,图4示出根据下面描述的图5的方法500进行的、从数据储存库401至中间仓库402以及至数据集市403的资源的数据流。图4还示出数据至数据集市中的初始加载404、以及增量加载405。
如图4中所示,根据本发明的一个实施例,在建立数据集市时,资源从数据储存库401流至数据集市403。最初在数据储存库401中找到资源,在所述数据储存库401中,资源以它们自然的(native)格式(关系、对象、文件系统等)被存储。接下来,资源从数据储存库401流至中间数据仓库402。在中间数据仓库402中,资源(包括它们的事实和关联)被存储在垂直图表中。在一个实施例中,垂直图表是由一个或多个垂直表组成的图表。垂直表T’是这样的表:其中,对于具有列<行ID,C1...Cn>的常规表T,T’是T的主元(pivot),使得T’具有至少3列,<行ID,列ID,C>,并且,行ID限定行,列ID限定列,并且C保存实际的值。用于每个这样的记录的标识符可以作为外键被其它表引用(reference),并且,该图表变为3NF图表。一旦利用资源事实和关联而加载中间数据仓库402,则可以查询中间数据仓库402,以定义数据集市的特定图表。基于在中间数据仓库402中发现的数据,将数据集市403构建为星型或雪花图表。最后,资源从中间数据仓库402流至数据集市403,在其中,将资源存储在构建的特定星型或雪花图表中。
图4中也示出了初始加载404的概览。初始加载是由下列事件构成的事件序列:用特定资源类型的资源对中间数据仓库的首个填充、用于特定资源类型的资源的数据集市的构建、以及用特定资源类型的资源数据对所构建的数据集市的首个填充。在一个实施例中,可以如下实现事件序列。首先,要求用户识别包含要被包括在数据集市中的资源的数据储存库401,并且选择要包括这些数据储存库401中的哪些资源。经由由数据储存库401提供的API而从数据储存库401提取(406)所选择的资源,并且将它们存储在中间仓库402中。存储在中间仓库402中的数据将被处理中的下个步骤使用(consume)。在特定实施例中,使用标准垂直图表技术,使得数据值为(名称、值)对。这样做提供了不考虑储存库类型、资源类型或格式、表示对于不同的资源类型的事实和关联数据的灵活性。然而,这里描述的技术不预先假设垂直图表,并且,其它图表类型被广泛考虑,并且,使用这样的图表被看作为本发明的实施例。
接下来,导出(408)一组雪花图表来表示资源。其它图表(如星型图表)被广泛考虑,并且使用这样的图表被看作为本发明的实施例。基于中间仓库402中存储的数据,构建包括事实、维度和层级结构的图表元素。在一个实施例中,事实可以是属性、简单测量和复杂测量,如上文表述的。维度是从数据储存库401中的资源的特定关联导出的。另外,在一个实施例中,中间仓库图表402包括允许对数据分配版本(versioning)的时间戳。随后,可以使用该时间戳来创建每个数据集市403中的时间维度。一旦已经创建了雪花图表,则执行初始加载,以用来自于中间数据仓库402的数据来填充数据集市403。
在初始加载完成之后,可以使用本发明的实施例,以用从数据储存库401提取的资源事实和关联的新版本,来增量地加载中间仓库402和数据集市403。例如,可以通过用户动作、通过事件(例如,监测数据储存库的刷新数据,以发现需要增量加载)、或根据预定义的时间表,来触发增量加载。在图4中也示出了增量加载的概览。例如,在步骤405,事件触发增量更新。在步骤406,提取资源事实和关系数据,并在中间仓库中填充它们。在步骤407,在必要时校验并修改该图表。例如,数据储存库中的变化(如与新资源类型的关联)可能会需要数据集市图表中的变化,例如,在数据集市图表中创建新维度。在步骤409,将事实和维度的新实例加载到数据集市中。在步骤409之后,增量加载结束。
图5是图示用于建立数据集市、并使用来自于数据储存库的数据填充数据集市(如上面关于图4而描述的储存库和数据集市)的方法500的一个实施例的流程图。下面关于随后的图而更加详细地分别描述建立和填充中间数据仓库和数据集市的机制。具体地,图7-8描述建立和填充中间仓库的机制,而图9-12描述建立和填充数据集市的机制。
如图5中所示,方法500在步骤510开始,其中,接收用户配置以提供必要的输入。例如,用户配置可以包括数据储存库的位置URI、数据储存库的认证信息、以及要针对其提取事实和关联信息的资源的描述。用户配置可为任何格式的,例如,XML文件或一组关系表。在步骤520,创建中间数据仓库,并且用来自于数据储存库的相关信息来填充该中间数据库。用户配置确定什么数据被看作为相关的、以及如何检索用于存储在中间数据仓库中的数据。可以在下面描述的图8中发现图示填充数据仓库的机制的详细流程。
在步骤530,方法500在初始加载与增量加载情形之间进行区分。初始加载是将储存库中的数据的单个第一状态捕捉到数据仓库中。增量加载是以储存库中的数据的第二(即,新的)状态来更新数据仓库。例如,当在接着初始加载之后的随后的时间点、已经改变或已经新增加了数据储存库中的一些数据时,数据储存库进入第二状态。
在初始加载的情况下,方法500从步骤530进行至步骤540,在步骤540,基于中间仓库中的数据,建立数据集市组。仓库中的所有数据描述一些资源,并且所有资源可以通过它们的资源类型而被分组。方法500建立资源类型的数据集市。换一种说法,为每个单独的资源类型建立数据集市,使得每个数据集市将描述相同类型的资源。数据集市的列表可以是穷举的,并且包括对于数据储存库中的每个资源类型的一个数据集市。或者,数据集市的列表可以通过用户配置而仅限于资源类型的子集。基于对于特定资源类型的中间数据仓库中发现的关联,构建对于每个资源类型的雪花图表。对于不同资源类型的雪花图表可以具有非常不同的定义。可以在此公开的图11中发现图示建立数据集市的机制的详细流程。最后,在步骤550,方法500最初填充数据集市组来表示所捕捉的数据储存库的第一状态。在步骤550,方法500结束。
然而,如果发生增量加载,则方法500从步骤530直接进行至步骤550,在步骤550,将新的或修改的数据添加至现有的数据集市。在步骤550,对于每个现有数据集市,执行一组步骤来填充它。在一个实施例中,不考虑初始或增量加载情形,填充机制是相同的。在另一实施例中,用于增量加载的填充机制不同于用于初始加载的填充机制,使得仅添加的或修改的数据被填充有时间戳。填充机制依赖于各个数据集市的数据集市定义。可以在下面描述的图12中发现图示填充数据集市的机制的详细流程。在步骤550之后,方法500结束。
在本发明的一个实施例中,将来自于数据储存库的资源存储到实施为垂直图表的中间数据仓库中。图6是图示根据本发明的一个实施例的、用于中间数据仓库的垂直图表600的示例的框图。中间数据仓库将来自于各种数据储存库的信息捕捉为同类格式,其可以被用于有助于数据集市的建立。
中间数据仓库图表展示确定的特性。根据一个实施例,指定了中间数据仓库的三个特性。首先,可以在数据仓库中唯一地识别资源。可以使用资源的特征(identity)来得到关于该资源的事实,并且得到该资源与其它资源的关联。事实可以是简单测量,其是资源的基本数据,如名称。事实还可以是经由关于资源的基本数据的计算而得到的复杂测量。第二,在资源之间的关联可以是直接的(资源(a)→资源(b))或传递性的(transitive)(资源(a)→资源(b)→资源(c))。将从资源的直接关联导出用于雪花图表的维度集。将从传递性关联导出用于维度的层级结构。第三,如果期望资源的历史视图,则中间数据仓库将把时间戳与资源的事实和关联相关联。
如图6中所示,用于中间数据仓库的垂直图表满足上文提到的中间数据仓库的三个特性。使用该垂直图表,中间数据仓库还可以表示新资源类型,而不需要修改垂直图表。如所示的,该图中的每个框表示关系数据库中的表。表之间的连接(connector)表示主键/外键关联。关联的方向是从具有锚点的端(外键列)至不具有锚点的端(主键列)。外键被标记为[FK],而主键被标注为小键符号(small key symbol)。
如所示的,ASSET_TYPE表601用于基于用户配置而监测来自于数据储存库的相关资源类型。该表中的每个资源类型可以被用于建立新的数据集市,在其中,将捕捉相关于该资源类型的所有事实和维度。ASSET_TYPE表601的NAME字段被用作数据集市的名称。
ASSETS表602用于存储实际信息资源。信息资源具有特定类型,并且从而由ASSET_TYPE表601中的类型标识符限定。表示信息资源所需的属性列表不是固定的。即,ASSETS表602可以包括如NAME(名称)、SHORT_DESC等等的字段。
信息资源可以是通过ASSET_GROUP_MEMBERS表603而表示的层级结构的一部分。由资源的ASSET_ID识别的每个资源可以是由PARENT_ASSET_ID识别的另一资源的子类(child)。两个外键均是对ASSETS表602中的同一ASSET_ID主键的引用。每个这样的父-子关联可以由其它属性(例如,ASSET_GROUP_MEMBERS表603中的GROUP_DESC和HIER_LVL_ID)描述。HIER_LVL_ID用于识别父-子关联所存在的树级(即,该子类位于树中的根级之下多远)。
信息资源还可以具有与其它信息资源的非父-子关联的关联。经由ASSET_REFERENCES表604来表示这些关联。再次,两个外键反向引用至ASSETS表602。可选地,可以再次向这些关联分配其它属性,例如,用以描述或用以命名该关联。
MEAS_RUN表605用于允许对中间数据仓库中的记录分配版本。每个信息资源以及所有其属性、测量和关联将被分配由唯一MEAS_ID识别的时间戳。将实际时间戳存储在例如MEAS_RUN_TMS或MEAS_EXE_TMS的属性中。此外,该实际时间戳可以表示诸如创建时间、更新时间或我们观察资源的最后时间的时间。MEAS_ID被引用作为包括ASSET_GROUP_MEMBERS表603和ASSET_REFERENCES表604的表的外键。这允许相关于资源的所有数据的完整历史的保留。例如,将保留曾经存在的父-子关联和其它关联。
除了捕捉信息资源之间的关联之外,还捕捉关于信息资源的事实。这些事实(或测量)再次具有类型和值。将该类型存储在MEAS_TYPE表606中,并且该类型可以具有用以描述或命名该类型的可选属性列表。具体测量类型仅相关于具体信息资源类型。如所示的,MEAS_TYPE表606具有与ASSET_TYPE表601的外键关联。
实际事实(或测量)被表示为MEASURES表607中的记录,并且使用三个引用。测量具有具体类型(至MEAS_TYPE_ID的引用),用于具体信息资源(至ASSET_ID的引用),并且在给定时间有效(至MEAS_ID的引用)。可以以各种格式(例如,字符串、布尔的、数值的等)表示该事实自身。可选地,可以创建更加精细粒度的格式表示。例如,可以在整数和双精度的类数值型之间区别。
在本发明的一个实施例中,一旦定义用于中间数据仓库的图表,则提供用于填充该中间数据仓库的架构。图7是图示根据本发明的实施例的、用于填充中间数据仓库的架构700的框图。在图7中,箭头表示控制流,并且图示组件如何彼此交互。
在图中,仓库引擎701接收用户配置703,并且使用来自于数据储存库702的数据来填充中间数据仓库707。说明性地,仓库引擎701包括内容选择器704、内容提供器705和评分计算引擎706。
存在从用户配置703至内容选择器704的控制流751。说明性地,用户配置703被提供至内容选择器704,其确定该用户配置703的可接受格式。内容选择器704接收该配置,并且可选地,解析其以检索相关元素。在本发明的一个实施例中,该配置最少包括储存库、资源类型、关联和测量元素的列表。每个元素具有名称和多个属性。例如,在包含查询属性的元素的情况下,必须以适用于数据储存库API的语法提供查询属性的相应值,使得可以将该查询直接传递至数据储存库用于处理。
存在从内容选择器704至内容提供器705的控制流752。内容提供器705接收来自于内容选择器704的元素,并且向评分计算引擎706和中间数据仓库755提供数据。根据一个实施例,内容提供器705以三种方式来控制数据。下面结合图8,更详细地描述这些机制。首先,内容提供器705控制如何从数据储存库702检索该数据。第二,控制提供器705控制如何在评分计算引擎706中计算数据。第三,内容提供器705控制如何将数据写入中间数据仓库707。
存在从数据储存库702至内容提供器705的控制流753。对于具有查询属性的元素,内容提供器705直接向数据储存库702发出查询。用户配置703指定数据储存库的类型、以及至数据储存库702的必要连接信息。
在说明性实施例中,在内容提供器705和评分计算引擎706之间存在双向控制流754。可选地,可以在用户配置中存在要求处理(即,要求多于仅仅查询数据储存库的处理)的元素。一个示例是评分计算。评分可以是基本评分或复合评分。从通过内容提供器705而检索的测量、并且使用评分计算引擎706中实施的算法,来直接计算基本评分的值。使用评分计算引擎706中实施的算法,从基本评分列表计算复合评分的值。例如,本领域中的技术人员将认识到,架构700可以容易地被扩展为包括除了评分计算引擎706之外的其它处理引擎。
在内容提供器705与中间数据仓库707之间也存在控制流755。说明性地,由内容提供器705将从数据储存库702检索的或在评分计算引擎706中计算的数据写入数据仓库707。当已经处理了由内容选择器704指定的所有元素时,内容提供器705结束。
现在参考图8,示出了图示根据本发明的一个实施例的、用于使用架构700来填充中间数据仓库的方法800的流程图。如所示出的,方法800在步骤810开始,在其中,将用户配置用作至仓库引擎流的输入。在步骤820,处理用户配置,以检索具有所有相关属性的元素。依赖于用户配置的格式,该处理步骤可能需要用于XML格式的配置的XML解析器、用于关系表配置的查询引擎、或适于用户配置的格式的任何其它处理。
在步骤830,在用户配置中提供资源类型,并且利用ASSET_TYPE表601中的名称和唯一生成的ASSET_TYPE_ID,将资源类型插入到仓库中。可选地,还可以将其它属性插入到该表中。示例包括检索给定类型的资源的所有属性的查询(XQUERY_ATTRIBUTE)、以及检索至其它资源类型的资源的关联的查询(XQUERY_ASSOCIATION)。
在步骤840,处理资源类型的列表,并且,对于每个资源类型,执行查询,以将资源检索到ASSETS表602中。每个资源通过其ASSET_TYPE_ID和生成的ASSET_ID而被唯一标识。在优选实施例中,所插入的资源的属性被限于其名称(NAME)和简短说明(SHORT_DESC)。随后,将附加属性处理作为步骤890中的测量。
在步骤850,在处理其余表之前,生成唯一标识符,以识别当前执行运行(run)。此标识符被称作MEAS_ID,并且被写入中间数据仓库中的MEAS_RUN表605中。MEAS_ID随后被中间数据仓库图表中的所有其余表引用。MEAS_ID提供当前执行运行的时间戳,作为MEAS_RUN_TMS。MEAS_ID可以简单地具有至[max(MEAS_ID)+1]的计数集,或者可以以特定的方式编码当前系统时间。对于MEAS_ID的唯一要求是:MEAS_ID为唯一的,并且被以升序排序。
构建MEAS_RUN表使得能够对中间数据仓库中的记录分配版本,从而允许捕捉数据储存库中的数据改变。这样的数据包括资源的事实(属性、测量、复杂测量)、以及资源的关联。说明性地,可以创建资源,并且此后该资源在一个时间点存在于数据储存库中,但是在随后的时间点可以再次移除该资源。可以经由MEAS_ID来捕捉这样的改变,MEAS_ID用于当从数据储存库提取数据时识别时间戳。
在步骤860,在用户配置中提供资源之间的关联,作为资源类型的元素。关联元素具有查询属性,其中,该查询返回该资源的标识符和引用的资源的标识符。关联是单向关联,其中,一种资源类型的资源引用另一种资源类型的资源。以用户配置中的两个查询来表示双向关联:一个用于资源类型A引用资源类型B,而一个用于资源类型B引用资源类型A。此外,资源引用还可以存在于相同类型的资源之间。
在步骤870,资源和引用的资源已经存在于数据仓库中。将资源与引用的资源之间的关联存储为由ASSET_REFERENCES表604中的ASSET_ID和ASSET_REF组成的元组(tuple)。两个标识符是对于ASSETS表602的外键。换言之,ASSET_ID和ASSET_REF必须引用现有资源。所有发现的关联关于当前的测量运行是有效的,并且,ASSET_REFERENCES表604中的唯一键被形成为三个一组(triplet):(MEAS_ID,ASSET_ID,ASSET_REF)。
在步骤875,使用对ASSET_REFERENCES表604的一组递归查询来建立资源层级结构。对于由ASSET_ID引用的每个资源,算法返回ASSET_REF,并且分配ASSET_REF为新ASSET_ID。当不再有元组返回时,递归停止。随后,方法800递归地回溯(retrace)所发现的ASSET_REF和ASSET_ID元组,并且将它们写入ASSET_GROUP_MEMBERS表603。ASSET_REF将被存储为ASSET_GROUP_MEMBERS表603的PARENT_ASSET_ID。此外,ASSET_ID将被存储为ASSET_GROUP_MEMBERS表603的ASSET_ID。以0起始而生成HIER_LVL_ID,并且其对于每个元组而递增。这样发现的每个层级结构关于当前测量运行是有效的。此外,将ASSET_GROUP_MEMBERS表603中的唯一键形成为三个一组:(MEAS_ID,ASSET_ID,PARENT_ASSET_ID)。
在步骤880,利用名称、唯一标识符、以及对于特定测量类型而预期的实际数据值的类型信息,将在用户配置中对于每个资源类型指定的测量类型插入到仓库中。MEAS_TYPE表606用于存储对于每个ASSET_TYPE_ID的测量集,并且通过ASSET_TYPE_ID和所生成的MEAS_TYPE_ID来唯一地识别每个测量。强制TYPE(类型)属性被用于识别应当作为字符串、数值还是任何其它数据类型而使用该数据。可选地,也可以将其它属性插入到表中。示例包括表示每个数据值的最大长度的属性(LENGTH)、以及表示用于检索数据值的查询的属性(XQUERY)。
在步骤885,对于被插入到MEAS_TYPE表606中的每个简单测量类型,方法800随后从数据储存库查询实际数据,并且将其存储为MEASURES表607中的元组。基于为特定测量类型指定的数据类型,实际值可以是STRING_VALUE(字符串值)、NUMERIC_VLUE(数值)或BOOLEAN_VALUE(布尔值)。对于特定测量运行、特定资源和特定测量类型,唯一地识别实际值。此外,用于MEASURES表607的主键被形成为三个一组:(MEAS_ID,ASSET_ID,MEAS_TYPE_ID)。
在步骤890,对于被插入到MEAS_TYPE表606中的每个复杂测量类型,方法800使用在用户配置中提供的属性来计算测量值。一个属性识别输入测量,而另一个属性识别用于计算复杂测量的算法。在此步骤,输入测量和算法应当均已经存在,用于计算进行。换言之,在评分计算引擎706中实施算法,并且,输入测量值在MEASURES表607中可用,在MEASURES表607中,该输入测量值具有当前MEAS_ID。对于复合复杂测量,方法800使用包括简单测量、复杂测量、复合复杂测量或它们的某种组合的输入测量的列表,来计算测量值。再次,可以使用现有算法和现有输入值集合来再次计算测量值。利用由三个一组(MEAS_TYPE_ID、MEAS_ID和ASSET_ID)组成的唯一键,将每个计算的结果存储在MEASURES表607中。在步骤890之后,方法800结束。
在本发明的一个实施例中,一旦填充中间数据仓库,则提供用于创建和填充数据集市的架构。图9是图示根据本发明的一个实施例的、用于创建和填充数据集市的架构900的框图。在图9中,箭头表示控制流,并且图示组件如何彼此交互。
在图9中,图表引擎902通过查询中间数据仓库901,生成用于数据集市909的图表。数据引擎通过查询中间数据仓库901来填充数据集市909。图表引擎902包括集市生成器903、维度生成器904、以及层级结构生成器905。数据引擎906包括维度提供器907和事实提供器908。
架构900在中间数据仓库901中查询数据,以生成并填充一个或多个数据集市909。每个数据集市将具有动态生成的图表,但是将具有共同(common)结构。可以在下面描述的图11中发现数据集市图表的示例。下面还提供数据集市的共同结构的说明。
存在从中间数据仓库901到图表引擎902的控制流951。图表引擎902用于定义用于数据集市的雪花图表。图表引擎902在中间数据仓库901中查询数据,以确定要生成的数据集市的数量、类型和名称。随后,使用集市生成器903,利用单个主事实表来生成每个数据集市909。在集市生成器903中实施主事实表的定义、以及用以创建主事实表的逻辑。
存在从集市生成器903到维度生成器904的控制流952。在此流中,使用维度生成器904,为每个数据集市909建立维度集。通过在数据仓库901中查询数据,生成维度的数量、类型和名称,并且它们可以按照数据集市而改变。三个共同维度被添加到每个数据集市,以捕捉关于时间、测量和属性的信息。然而,在本发明的另一实施例中,属性的共同维度是可选的,并且可以不被包括在数据集市中。
存在从维度生成器904到层级结构生成器905的控制流953。在此流中,将使用层级结构生成器905来对由维度生成器904构建的每个维度分配层级结构。也通过在中间数据仓库901中查询数据来生成每个维度的层级结构。每个层级结构由通过引用约束而链接在一起的一组表组成。表的数量和名称按照维度而改变,并且按照数据集市而改变。最后,层级结构中的底端表被链接到主事实表。在层级结构生成器905中实施每个表的定义、用于创建每个表的逻辑、以及用于将表链接在一起的逻辑。
存在从图表引擎902到数据集市909的控制流954。在此流中,将由图表引擎902定义和构建的雪花图表集合被保持到(persist into)一个或多个数据库中。如果被保持到单个数据库,则可以将数据集市909存储在不同图表或命名空间中,以避免在多个雪花图表中具有共同名称的表的重复名称冲突。
存在从图表引擎902到数据引擎906的控制流955。在此流中,使用数据引擎906来填充数据集市909的集合。不失一般性,可以假设数据集市909还未被填充,且全部插入是必要的。然而,如果数据集市已经被填充,则可以使用数据引擎906来重新填充或更新数据集市,从而还省略上面的流954。
存在从中间数据仓库901到数据引擎906的控制流956。在此流中,数据引擎906用于填充数据集市909。数据引擎906在中间数据仓库901中查询数据,并且尝试将该数据插入到数据集市909中的所有表(包括主事实表和对于各个数据集市的每个维度的每个层级结构中的每个表)中。
存在从维度提供器907到事实提供器908的控制流957。在此流中,从中间数据仓库901获得填充每个维度所需的数据,并且在维度提供器907中查询所述数据。通过循环访问(iterate through)维度列表和每个维度中的表集合,维度提供器907填充各个数据集市的每个维度的层级结构中的每个表。
存在从数据引擎906到数据集市909的控制流958。在此流中,事实提供器908查询中间数据仓库901,以获得用于每个数据集市909的数据,并且用所述数据来填充每个数据集市909的主事实表。对于每个数据集市909,事实提供器908还填充外键列,该外键列用于将事实表与维度提供器907中填充的维度链接。由维度提供器907并且由事实提供器908构建的所有数据被插入并确认到由图表引擎902生成的数据集市909中。
图10是图示根据本发明的一个实施例的、用以使用架构900来创建并填充数据集市的方法1000的流程图。为了说明的目的,使用图6中的中间数据仓库图表作为输入。
如所示的,方法1000在步骤1010开始,在其中,用户通过资源类型识别数据集市列表。每个数据集市的资源类型应当匹配ASSET_TYPE表601中列出的类型。在步骤1020,对于具有ASSET_TYPE表601中的现有类型的数据集市列表,方法1000循环访问主循环,利用资源类型标识符识别数据集市。在主循环的步骤1030,为通过数据集市的资源类型标识符所识别的数据集市创建数据集市图表。在一个实施例中,由上面关于图9而描述的图表引擎902执行步骤1030。此外,将为数据集市创建的所有表保持到数据库中。
在主循环的步骤1040,使用步骤1030中定义的图表以及步骤1030中创建的表,来用数据填充表。在一个实施例中,由上面关于图9而描述的数据引擎906执行步骤1040。在主循环的步骤1050,如果更多数据集市存在于数据集市的列表中,则方法1000循环回至步骤1020以处理由资源类型标识符识别的下个数据集市。在步骤1050之后,当已经处理了数据集市列表的所有数据集市时,方法1000结束。
为了帮助理解图11-12,将首先描述图13。图13是图示根据本发明的一个实施例的、生成的数据集市图表1300的示例的框图。特别地,数据集市图表1300是说明性的、可以根据上面关于图10描述的方法1000而生成的图表。说明性地,生成的数据集市图表可以在至少下列方面变化:(i)图表中的分支(arm)的数量(维度);(ii)分支中的表数量(层级结构);(iii)表的名称(维度类型);以及(iv)表中的列的列表(属性)。
FACT表1301是数据集市的主事实表。每个数据集市图表包括单个主事实表。FACT表1301中的每个记录由包括ASSET_ID(资源标识符)、TIME_ID(时间标识符)、以及MEAS_TYPE_ID(测量类型标识符)的三个一组来唯一识别。将值存储在不同数据类型的列的列表中。例如,NUMERIC_VALUE可以是用于存储双精度、整数和小数测量的列,并且STRING_VALUE可以是用于存储char和varchar测量的varchar列。此外,列的列表可以被扩展为存储其它类型的测量,如datetime(时期时间)或blob。
数据集市的动态维度1302被命名为USER_DEFINED_TERM。一个数据集市的动态维度可以不同于另一数据集市的动态维度。数据集市的名称USER_DEFINED_TERM被用于对动态维度1302的层级结构中的每个表加前缀。数据集市的其它动态维度是QUALITY_RULESET和PHYSICAL_LAYOUT_TABLE。动态维度的数量和名称在不同类型的数据集市之间变化。
表1303的层级结构对于数据集市的USER_DEFINED_TERM维度1302是唯一的。动态生成层级结构中的表的数量和名称。表1303的层级结构的表根据它们在层级结构中的层级而被链接。虽然在图中示出每维度一个层级结构,但是在本发明的其它实施例中,可以由单个维度支持多个层级结构。
表USER_DEFINED_TERM_LVL_0_CATEGORY 1304已经被动态生成,并且在USER_DEFINED_TERM层级结构1303中是唯一的。然而,表的定义是受限的,并且其它定义是考虑到的。每个表具有下列三个键:ASSET_ID,用以存储唯一资源标识符;TIME_ID,用以存储时间标识符;以及PARENT_ASSET_ID,用以存储父资源标识符。两个属性NAME和SHORT_DESC用于分别存储资源的名称的简短说明,并且可以被容易地扩展。表1304的名称包括维度的名称、层级标识符、和表的类型。
FACT_TERM表1305是用于USER_DEFINED_TERM维度1302的多事实表。每个动态维度具有多事实表。示例的多事实表包括FACT_TERM、FACT_RULESET、以及FACT_TABLE。每个多事实表具有固定定义,并且包含键ASSET_ID、TIME_ID和MEAS_TYPE_ID以唯一地识别主事实表中的每个事实。此外,每个多事实表包含字段REF_ID和TIME_ID,以唯一地识别层级结构中引用的资源。
在每个数据集市中存在三个静态维度1306。然而,在本发明的其它实施例中,属性的静态维度是可选的。如所示的,所有三个静态维度均具有平坦(flat)层级结构,其在每个层级结构中仅有一个表。在该示例中,对于时间和测量类型层级结构的表定义是固定的。对于属性层级结构的表定义是可变的,并且被动态生成。使用TIME_ID字段,将TIME_LVL_0_TIMESTAMP表与FACT表1301链接。使用MEAS_TYPE_ID字段,将MEASURE_TYPE_LVL_0_NAME表与FACT表1301链接。
已经动态生成了ATTRIBUTES_LVL_0_NAME表1307,使得其定义对数据集市是唯一的。该表使用固定复合键ASSET_ID和TIME_ID字段,以引用FACT表1301中的记录。然而,属性列表是可变的。属性列表依赖于数据集市的类型。如所示的,ISVIEW是属性列表中的属性示例。
现在参考图11,示出了图示用于创建数据集市的雪花图表的方法1100的流程图的实施例。特别地,方法1100图示了由图表引擎902执行的、图10的步骤1030的一个实施例。如所示的,方法1100在步骤1110开始,其中,从雪花图表的主实施表开始,创建该雪花图表。事实表的表定义是固定的,并且在所有数据集市之中相同,使得可以容易地由下游应用使用该事实表。可以基于应用需要而生成该事实表的属性列表,但是该属性列表应当包含至少四个外键。需要所述外键中的三个来引用在步骤1180中创建的用于时间、测量和属性的静态维度。需要一个外键来引用在步骤1130到1170中创建的所有动态维度。这里创建的事实表被称作主事实表,以将其与要在步骤1150中创建的其它事实表(即,多事实表)区分。
在步骤1120,维度的数量和类型在数据集市之间变化。区分具有可变定义的动态维度与具有固定定义的静态维度。在步骤1120到1170中生成动态维度。在步骤1180和1190中生成静态维度。为了识别对于此特定数据集市的动态维度列表,方法1100在中间数据仓库中查询ASSET_TYPE 601、ASSETS 602、ASSET_GROUP_MEMBERS 603、以及ASSET_REFERENCES604表。首先,方法1100列出与资源类型t1相关的、或由资源类型t1引用的所有资源,其中,t1是用以识别此特定数据集市的资源类型。随后,方法1100提取关联于这些资源的所有资源类型的区别的列表。最后,t1自身被添加到资源类型的清晰列表。
在步骤1130,对于在步骤1120中列出的每个动态维度,方法1100:(i)生成层级结构,(ii)将事实表添加至该层级结构;以及(iii)将该事实表与主事实表链接。由于事实表的特性,专用维度事实表被称作多事实表。
在步骤1140,在两个步骤中自下而上构建层级结构。在第一个步骤中,识别层级结构的底端(叶级)。在第二个步骤中,生成较高层级(直至根级)。可替换地,还可以使用自上而下的方法来生成该层级结构。任一方法均需要递归算法以在层级结构的叶级与根级之间生成可变数量的层级。
为了生成该层级结构的叶级,方法1100查询ASSET_GROUP_MEMBERS表603,以找到作为层级结构的最低层级的候选的资源。该资源具有与该维度相同的类型,并且具有对于其层级标识符的最高的可能值。使用所选择的候选,生成叶级表,其由维度的类型和候选的层级来识别。此表的属性的列表再次为固定的,并且在层级结构的所有层级之中是相同的,使得可以由下游应用更加容易地使用该层级结构。该表至少包括用以唯一地识别该资源的一个主键、以及用以识别下个层级表中的父资源的一个外键。
在已经创建了叶级表之后,递归算法生成其余表,直至层级的根级。从候选资源开始直到具有层级标识符0且没有进一步的父类的父资源,遍历(traverse)在ASSET_GROUP_MEMBERS表603中捕捉的父-子关联。对于递归中的每个步骤,生成再次由维度的名称和层级标识符识别的表。使用在资源id列与父资源id列之间的主键/外键引用,将该表链接至层级结构中的下层的表。
在步骤1150,通过添加作为层级结构与主事实表之间的链接的多事实表,完成该层级结构。该多事实表具有属性的固定列表,但是应当至少包含:(i)至层级结构的叶级表中的唯一资源标识符的一个外键、以及(ii)至主事实表中的唯一资源标识符的一个外键。仅通过维度的名称来识别该多事实表自身。
在步骤1160,通过使用该多事实表中创建的两个外键,将该多事实表与(i)主事实表、以及(ii)层级结构的叶级表链接。
在步骤1170,如果存在如在1120中创建的列表中识别的、要被处理的更多动态维度,则方法1100循环回至步骤1130。
在步骤1180,在已经处理了所有动态维度之后,生成三个静态维度。这三个静态维度捕捉关于时间、测量类型和属性的信息。每个静态维度具有仅由一个表组成的简单层级结构。此外,每个静态维度不需要多事实表。时间和测量维度表具有固定的(但不必须相同的)属性列表。可以使用主键来将静态维度与主事实表链接。
然而,在本发明的其它实施例中,表示属性的静态维度是可选的。资源的属性是可以不被聚集的类型字符串、布尔或时间戳的值。依赖于使用的下游应用,以要通过查询反正规化的表的列而被直接使用的所述反正规化的表的形式,可能需要或不需要所述值。属性维度是提供具有对于非数值类型的每个属性的列的平坦表的维度。如果使用的应用能够以与测量相同的方式来处理属性,则不需要表示属性的静态维度。
如果需要表示属性的静态维度,则生成属性维度表,其具有动态构建的属性的列表。为了生成属性维度表,方法1100在中间数据仓库中查询MEAS_TYPE表606,并且提取不是数值的所有测量类型,为每个创建一列。添加唯一键列,以链接属性维度与主事实表。
在步骤1190,使用在主事实表中创建的外键和在静态维度表中创建的主键,将两个(或三个)静态维度与主事实表链接。在步骤1190之后,在已经生成所有表之后,方法1100结束。
现在参考图12,示出了图示根据本发明的一个实施例的、用以填充数据集市的方法1200的流程图。特别地,方法1200图示了由数据引擎906执行的、图10的步骤1040的一个实施例。如所示出的,方法1200在步骤1210开始,其中,填充数据集市的主事实表。对于在中间数据仓库中的ASSET_TYPE表601中表示的具体资源类型而创建每个数据集市。使用主事实表来存储在具有与数据集市相同类型的ASSETS表602中发现的每个资源的所有相关事实。如上面说明的,事实自身的值是测量。将测量与用以识别测量类型的标识符一起存储在主事实表中,所示标识符称作测量类型标识符。使用静态维度来列出在步骤1290中填充的所有测量类型标识符。对于主事实表,方法1200检索测量、测量类型标识符和时间标识符。在步骤1290中,与时间标识符关联的时间戳被填充到静态维度中。
为了填充主事实表,方法1200查询ASSET_TYPE 601、ASSETS 602、MEASURE_RUN 605、MEASURE_TYPE 606和MEASURES 607表,以检索对于具有匹配特定数据集市的资源类型的每个资源、对于每个测量类型的每个测量值。可选地,方法1200可以仅检索对于具体时间戳的这些值以更新数据集市,或者检索整个数据集以填充新数据集市。
在步骤1220,识别动态维度的列表。根据在图9的图表引擎902中创建的数据集市结构,存在动态维度和三个静态维度的列表。从右图表引擎902生成的模型提取动态维度列表。此模型用作至数据引擎906的输入。可替换地,可以使用在图表引擎902中找到的逻辑来再次计算动态维度列表。
在步骤1230,主循环在每个循环访问中填充动态维度。随后,在步骤1290中填充静态维度。每个动态维度具有与其关联的正确的一个动态生成的层级结构。该层级结构包括表集。每个表具有将表与维度相关联的标识符。在步骤1240,识别该层级结构的表的列表。该层级结构的表的列表可以从图表引擎模型提取、或者用在维度生成器904中找到的逻辑来计算。
在步骤1250,从根级表开始,自上而下地处理动态维度层级结构中的表的列表。在步骤1260,使用相同逻辑来填充动态维度层级表内的所有表。方法1200查询ASSET_TYPES 601、ASSETS 602和ASSET_GROUP_MEMBERS603表来提取如下的每个资源的所有资源标识符和父资源标识符,其中,所述每个资源:(i)具有与维度相同的类型;(ii)是与表相同的层级;并且(iii)具有已经被填充到层级结构中的上面的表中的父资源标识符。对于根级表,仅仅维度的类型应当匹配,并且该层级应当为零。从中间数据仓库查询数据,并且,通过插入-选择语句、或数据提取和加载的任何其它方法,将所述数据直接插入到数据集市表中。除了资源标识符和父资源标识符之外,方法1200提取描述ASSETS表601中的资源、并且可以被填充到集市表中的所有这些属性,例如,资源名称、资源说明等。
使用层级结构来存储可以被表示为树的数据集。存在三种形式的树、以及层级结构的三种匹配形式。树可以是平衡的(所有叶节点处于相同层级)、非平衡的(叶节点不全处于相同层级,但是在节点之间不存在孔(hole))或不规则的(所有叶节点处于相同层级,但是在节点之间存在孔)。然而,层级生成器905在数据集市图表中仅链接叶级节点表与多事实表。这样的链接机制仅支持平衡的层级结构。为了支持非平衡的和不规则的树表示,必须以下列方式将非平衡的和不规则的树表示转换为平衡的层级结构。
对于平衡的树表示,仅应当提取具有与层级结构中的表确切相同的层级的这些资源(如上所述的)。对于非平衡的树表示,提取具有与层级结构中的当前表相同层级、或较低层级的标识符的所有资源;需求是父资源标识符存在于层级结构中的上述表中。另外,树中的每个叶节点必须被向前传递至层级结构中的叶级表。这可以通过将不具有更多子类的资源从较高层级表复制到较低层级表直到到达叶级表为止来完成。对于不规则的树表示,使用类似于用于非平衡的树的逻辑的逻辑。将自动移除树表示中的孔,这是因为,在层级结构中,允许将较低层级资源存储在较高层级表中。这些孔实质上在树中的叶下面位移。通过复制无子类的节点,孔在层级结构中关闭。
在步骤1270,方法1200重复步骤1250和1260,直到无更多表存在于层级结构、并且达到叶表为止。在步骤1280,为了将存储在主事实表中的事实关联于存储在层级结构中的数据,使用将在主事实表中找到的标识符与在维度中发现的标识符链接的表。这样的表被称作多事实表。多事实表仅引用具有适当维度并且不包含任何数据自身的事实。为了使得关联时间敏感,添加时间标识符。用于填充每个多事实表的查询从ASSET_TYPE 601、ASSETS602和ASSET_REFERENCES 604表读取,以获得用在事实表中的所有资源标识符、并将它们映射到维度中使用的资源标识符。事实表中的资源标识符具有与数据集市相同的类型,而在维度中使用的资源标识符将匹配维度的类型。不考虑资源类型,ASSET_REFERENCES表604包含所有关联。使用关于资源类型的过滤器来构建查询。此外,检索表示关联有效的时间的时间戳。或许存在如下情况:其中,在维度中发现的资源标识符不具有与事实表中发现的任何资源标识符的关联。这样的“孤立的(orphaned)”资源可以忽略,或者被分组并关联于伪事实组。
在步骤1285,方法1200重复步骤1230至1280,直到已经处理了所有动态维度为止。在步骤1290,其余三个要被填充的维度是用于存储关于时间、测量类型和字符串属性的信息的静态维度。
为了填充用于时间的静态维度,方法1200如下进行。首先,在MEAS_RUN表605中可得到对于每个类型的每个资源的每个测量的时间戳。方法1200查询此表,并且将其与ASSET_TYPE 601和ASSETS 602表联合,以仅过滤出对于具有与数据集市相同类型的任何资源的任何测量所需的这些时间戳。如果不同标识符用于不同时间戳,则表示不同事件(例如,资源创建、填充、更新)的不同时间戳还可以被填充到相同时间维度中。
为了填充用于测量类型的静态维度,方法1200如下进行。首先,存储在主事实表中的值是不同类型的测量。测量类型维度识别这些测量的类型。每个资源类型具有相关测量类型的列表。方法1200在中间数据仓库中查询ASSET_TYPE 601和MEASURE_TYPE 602表,以获得相关于数据集市的我们的类型的测量类型。
为了填充用于属性的可选静态维度,方法1200如下进行。首先,如果图表引擎902在步骤1180中生成用于属性的静态维度,则在此步骤,填充用于属性的静态维度。仅在使用的下游应用需要用于属性的静态维度的情况下才需要该静态维度。代替作为具体类型的测量的事实的标准化的表示(如上面对于测量类型维度所做的),替代地使用属性的反正规化的表示。属性维度对于每个属性类型具有一列。此外,将所述列的值直接存储在所述列的单元中。使用嵌套循环来填充所述单元。在外循环中,方法1200以与步骤885中相同方式查询ASSET_TYPE 601、ASSETS 602、MEASURE_RUN 605、MEASURE_TYPE 606和MEASURES 607表。在内循环中,方法1200处理查询的结果,并且将数据插入到由测量类型识别的适当列中。或者,方法1200可以直接查询主事实表,并且将数据插入到属性表中。在步骤1290之后,一旦已经填充了所有表,则方法1200结束。
为了演示集市、维度和层级结构的动态构建,从图1中所示的示例提取小数据样本。图14是图示根据本发明的一个实施例的数据样本的框图。该数据样本包括主机系统和数据库、商业类别和管理员的列表。存在定义的关联的两个类型:管理员被分配至商业类别,并且商业类别分类主系统和数据库。
为了进一步演示集市、维度和层级结构的动态构建,图15图示了如何可以在具有图6中定义的图表的中间数据仓库中表示图14中所示的数据样本。仅示出了图6中定义的图表中的七个表中的四个,即,ASSETS 602、ASSET_TYPE 601、ASSET_REFERENCES 604、以及ASSET_GROUP_MEMBERS 603表。这些是表示关联并且生成数据集市、层级结构和维度所需的四个表。然而,它们不足以生成事实和测量。通过仅示出对于所述四个表的每一个的列的子集而进一步简化该示例。用加下划线的主键列来在大括号中表示列名称。
用粗体突出ASSET_TYPE“Category(类别)”,并且其应当是用于生成图16中的数据集市的资源类型。
为了基于图15中所示的样本数据仓库图表而进一步演示集市、维度和层级结构的动态构建,可以使用图7和8中描述的过程生成并填充数据集市。图16图示了类型“Category”的资源的数据集市。数据集市包含被命名为“USER_DEFINED(用户定义)”1650、“PHYSICAL_LAYOUT(物理布局)”1640、和“USER(用户)”1630的三个动态维度,并且具有静态维度1620以表示测量、时间、以及可选的属性。
动态维度具有这样的层级结构,其中,分别地,一个层级用于“USER”维度,并且,两个层级用于“USER_DEFINED”和“PHYSICAL_LAYOUT”维度。数据项(i)被填充到正确维度内的适当层级中,并且(ii)使用唯一标识符而被链接在一起。
存在一个主事实表1611,其包含用于在样本数据中发现的四个类别的全部四个唯一标识符。另外,生成并填充三个多事实表1615-1617,以将动态维度中的层级结构与主事实表链接。
当然,这里描述的实施例意在说明性的,并且不是对本发明的限制,并且其它实施例被广泛考虑。例如,本领域的技术人员将认识到除了雪花图表之外的数据集市图表(例如,星型图表)可以得到本发明的实施例支持。此外,可以在数据储存库中发现资源之间的关联信息、在用户配置中指定资源之间的关联信息,或者上述两种方式均有。此外,在本发明的一些实施例中,属性的静态维度可以是可选的,其中,下游应用不需要属性的静态维度。此外,在本发明的一些实施例中,时间的静态维度可以是可选的,其中,不需要数据的历史视图。另外,数据储存库可以是任何类型,例如,关系、对象、或对象关系。
虽然上文针对于本发明的实施例,但是,在不违背本发明的其它的和进一步的实施例的基本范围的情况下,可以设计本发明的其它的和进一步的实施例,并且,本发明的其它的和进一步的实施例的范围由所附权利要求书确定。
Claims (19)
1.一种用于动态建立数据集市、并利用来自于数据储存库的数据填充该数据集市的计算机实施的方法,包括:
接收指定数据储存库和该数据储存库中的资源类型的用户配置;
生成用于中间数据仓库的图表,所述中间数据仓库用于存储与该资源类型相关的数据,其中,所述与该资源类型相关的数据包括对于具有该资源类型的所有资源的所有测量;
通过向该数据储存库查询所述与该资源类型相关的数据,来填充该中间数据仓库;
生成用于对应于该资源类型的数据集市的图表;以及
通过向该中间数据仓库查询所述与该资源类型相关的数据,来填充该数据集市。
2.如权利要求1所述的方法,其中,用于该数据集市的图表包括事实、维度和层级结构。
3.如权利要求1所述的方法,其中,用于该数据集市的图表包括主事实表、多事实表、表示测量的静态维度、以及表示资源组的动态维度;以及其中,该多事实表将该动态维度链接至该主事实表。
4.如权利要求2所述的方法,其中,该用户配置还指定测量类型和资源类型之间的关联,其中,所述与该资源类型相关的数据还包括资源类型之间的关联,以及其中,从资源类型之间的关联动态地导出所述维度。
5.如权利要求1所述的方法,其中,用于该中间数据仓库的图表是垂直图表,以及其中,从至少雪花图表和星型图表选择用于该数据集市的图表。
6.如权利要求4所述的方法,其中,该资源类型的测量包括简单测量和复杂测量;其中,该用户配置还指定用于每个复杂测量类型的输入测量和算法;其中,使用由该用户配置指定的该输入测量和该算法,来计算每个复杂测量;以及其中,利用时间戳来存储所述与该资源类型相关的数据,以允许对所述与该资源类型相关的数据分配版本。
7.一种用于动态建立数据集市、并利用来自于数据储存库的数据填充该数据集市的系统,包括:
用于接收指定数据储存库和该数据储存库中的资源类型的用户配置的装置;
用于生成用于中间数据仓库的图表的装置,所述中间数据仓库用于存储与该资源类型相关的数据,其中,所述与该资源类型相关的数据包括对于具有该资源类型的所有资源的所有测量;
用于通过向该数据储存库查询所述与该资源类型相关的数据,来填充该中间数据仓库的装置;
用于生成用于对应于该资源类型的数据集市的图表的装置;以及
用于通过向该中间数据仓库查询所述与该资源类型相关的数据,来填充该数据集市的装置。
8.如权利要求7所述的系统,其中,用于该数据集市的图表包括事实、维度和层级结构。
9.如权利要求7所述的系统,其中,用于该数据集市的图表包括主事实表、多事实表、表示测量的静态维度、以及表示资源组的动态维度;以及其中,该多事实表将该动态维度链接至该主事实表。
10.如权利要求8所述的系统,其中,该用户配置还指定测量类型和资源类型之间的关联,其中,所述与该资源类型相关的数据还包括资源类型之间的关联,以及其中,从资源类型之间的关联动态地导出所述维度。
11.如权利要求7所述的系统,其中,用于该中间数据仓库的图表是垂直图表,以及其中,从至少雪花图表和星型图表选择用于该数据集市的图表。
12.如权利要求10所述的系统,其中,该资源类型的测量包括简单测量和复杂测量;其中,该用户配置还指定用于每个复杂测量类型的输入测量和算法;其中,使用由该用户配置指定的该输入测量和该算法来计算每个复杂测量;以及其中,利用时间戳来存储所述与该资源类型相关的数据,以允许对所述与该资源类型相关的数据分配版本。
13.一种用于动态建立多个数据集市、并利用来自于多个数据储存库的数据填充该多个数据集市的计算机实施的方法,包括:
接收指定所述多个数据储存库和所述多个数据储存库中的多个资源类型的用户配置输入,其中,所指定的多个数据储存库包含:(i)所指定的多个资源类型的多个资源;(ii)在两个资源类型的资源之间的至少一个关联;(iii)基于所述在两个资源类型之间的至少一个关联而对资源分组的至少一个资源组;以及(iv)至少一个测量类型的多个测量,其中,所述多个测量包含描述所述多个资源的值;
生成用于中间数据仓库的图表,所述中间数据仓库用于存储与所指定的多个资源类型相关的数据,其中,所述与所指定的多个资源类型相关的数据包括:(i)对于所指定的多个资源类型的资源的测量类型的测量;(ii)在所指定的多个资源类型之中的一个资源类型的资源、与所指定的多个资源类型中的另一资源类型的资源之间的至少一个关联;以及(iii)将所指定的多个资源类型的资源分组的至少一个资源组;并且其中,该中间数据仓库的图表包括时间戳,以允许对该中间数据仓库中的记录分配版本;
通过向所指定的多个数据储存库查询所述与所指定的多个资源类型相关的数据,来填充该中间数据仓库;
对于所指定的多个资源类型的每个资源类型,生成对应于相应资源类型的数据集市的图表;其中,该数据集市的图表包括:(i)表示测量类型的静态维度、以及(ii)表示用以允许对该数据集市中的记录分配版本的时间的静态维度;其中,静态维度是存在于该多个数据集市的每个中的维度;以及
对于所指定的多个资源类型的每个资源类型,通过向该中间数据仓库查询与相应资源类型相关的数据,来填充对应于相应资源类型的数据集市。
14.如权利要求13所述的方法,其中,用于该数据集市的图表还包括主事实表、多事实表、以及表示资源组的动态维度;其中,动态维度专用于各个数据集市,并且表示资源组;以及其中,该多事实表将该动态维度链接至该主事实表。
15.如权利要求13所述的方法,其中,该用户配置输入还指定测量类型和不同资源类型的资源之间的关联;其中,用于该中间数据仓库的图表是垂直图表;其中,从至少雪花图表和星型图表选择用于每个数据集市的图表;其中,该资源类型的测量包括简单测量和复杂测量;其中,简单测量包含在所述多个数据储存库中找到的值;其中,复杂测量包含依据在所述多个数据储存库中找到的值而计算的值;其中,该用户配置输入还为每个复杂测量类型指定输入测量和算法:以及其中,使用由该用户配置输入指定的输入测量和算法,计算每个复杂测量。
16.如权利要求13所述的方法,从至少关系储存库、对象储存库、以及对象关系储存库选择每个数据储存库。
17.一种用于动态建立多个数据集市、并利用来自于多个数据储存库的数据填充该多个数据集市的系统,包括:
用于接收指定所述多个数据储存库和所述多个数据储存库中的多个资源类型的用户配置输入的装置,其中,所指定的多个数据储存库包含:(i)所指定的多个资源类型的多个资源;(ii)在两个资源类型的资源之间的至少一个关联;(iii)基于所述在两个资源类型之间的至少一个关联而对资源分组的至少一个资源组;以及(iv)至少一个测量类型的多个测量,其中,所述多个测量包含描述所述多个资源的值;
用于生成用于中间数据仓库的图表的装置,所述中间数据仓库用于存储与所指定的多个资源类型相关的数据,其中,所述与所指定的多个资源类型相关的数据包括:(i)对于所指定的多个资源类型的资源的测量类型的测量;(ii)在所指定的多个资源类型之中的一个资源类型的资源、与所指定的多个资源类型中的另一资源类型的资源之间的至少一个关联;以及(iii)将所指定的多个资源类型的资源分组的至少一个资源组;并且其中,该中间数据仓库的图表包括时间戳,以允许对该中间数据仓库中的记录分配版本;
用于通过向所指定的多个数据储存库查询所述与所指定的多个资源类型相关的数据,来填充该中间数据仓库的装置;
用于对于所指定的多个资源类型的每个资源类型,生成对应于相应资源类型的数据集市的图表的装置;其中,该数据集市的图表包括:(i)表示测量类型的静态维度、以及(ii)表示用以允许对该数据集市中的记录分配版本的时间的静态维度;其中,静态维度是存在于该多个数据集市的每个中的维度;以及
用于对于所指定的多个资源类型的每个资源类型,通过向该中间数据仓库查询与相应资源类型相关的数据,来填充对应于相应资源类型的数据集市的装置。
18.如权利要求17所述的系统,其中,用于该数据集市的图表还包括主事实表、多事实表、表示资源组的动态维度;其中,动态维度专用于各个数据集市,并且表示资源组;以及其中,该多事实表将该动态维度链接至该主事实表。
19.如权利要求17所述的系统,其中,该用户配置输入还指定测量类型和不同资源类型的资源之间的关联;其中,用于该中间数据仓库的图表是垂直图表;其中,从至少雪花图表和星型图表选择用于每个数据集市的图表;其中,该资源类型的测量包括简单测量和复杂测量;其中,简单测量包含在所述多个数据储存库中找到的值;其中,复杂测量包含依据在所述多个数据储存库中找到的值而计算的值;其中,该用户配置输入还为每个复杂测量类型指定输入测量和算法;以及其中,使用由该用户配置输入指定的输入测量和算法,计算每个复杂测量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/256,635 | 2008-10-23 | ||
US12/256,635 US7970728B2 (en) | 2008-10-23 | 2008-10-23 | Dynamically building and populating data marts with data stored in repositories |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101727478A CN101727478A (zh) | 2010-06-09 |
CN101727478B true CN101727478B (zh) | 2013-06-05 |
Family
ID=42118509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101800376A Expired - Fee Related CN101727478B (zh) | 2008-10-23 | 2009-10-23 | 动态建立并用储存库中的数据填充数据集市的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7970728B2 (zh) |
CN (1) | CN101727478B (zh) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110145005A1 (en) * | 2009-12-10 | 2011-06-16 | Wu Cao | Method and system for automatic business content discovery |
US9218408B2 (en) * | 2010-05-27 | 2015-12-22 | Oracle International Corporation | Method for automatically creating a data mart by aggregated data extracted from a business intelligence server |
US8793268B1 (en) * | 2010-07-01 | 2014-07-29 | Allan Michael Gonsalves | Smart key access and utilization to optimize data warehouse performance |
US10235439B2 (en) * | 2010-07-09 | 2019-03-19 | State Street Corporation | Systems and methods for data warehousing in private cloud environment |
US10671628B2 (en) * | 2010-07-09 | 2020-06-02 | State Street Bank And Trust Company | Systems and methods for data warehousing |
US8682936B2 (en) * | 2010-12-15 | 2014-03-25 | Microsoft Corporation | Inherited entity storage model |
CN102314518B (zh) * | 2011-09-27 | 2013-08-28 | 华为技术有限公司 | 一种构建事实表的方法和装置 |
JP5884515B2 (ja) * | 2012-01-27 | 2016-03-15 | 富士通株式会社 | 図表生成プログラム、図表生成方法及び図表生成装置 |
US20140164033A1 (en) * | 2012-12-11 | 2014-06-12 | Axslogic Pte Ltd | Business management system with predefined alerts |
US20140214753A1 (en) * | 2012-12-28 | 2014-07-31 | Joseph Guerra | Systems and methods for multi-source data-warehousing |
US9715538B2 (en) * | 2013-03-12 | 2017-07-25 | International Business Machines Corporation | Floating time dimension design |
US9836519B2 (en) * | 2013-09-20 | 2017-12-05 | Oracle International Corporation | Densely grouping dimensional data |
US9779368B2 (en) * | 2013-12-02 | 2017-10-03 | Business Objects Software Ltd. | Dynamic inheritance of metadata concepts from project resources into a semantic model |
US9817851B2 (en) | 2014-01-09 | 2017-11-14 | Business Objects Software Ltd. | Dyanmic data-driven generation and modification of input schemas for data analysis |
CN105224546B (zh) * | 2014-06-04 | 2020-10-30 | 创新先进技术有限公司 | 数据存储和查询方法及设备 |
US10585892B2 (en) * | 2014-07-10 | 2020-03-10 | Oracle International Corporation | Hierarchical dimension analysis in multi-dimensional pivot grids |
US10606855B2 (en) | 2014-07-10 | 2020-03-31 | Oracle International Corporation | Embedding analytics within transaction search |
US9767176B2 (en) * | 2014-08-07 | 2017-09-19 | Bank Of America Corporation | Denormalize recursive, unbalanced, and ragged hierarchies |
US10733155B2 (en) * | 2015-10-23 | 2020-08-04 | Oracle International Corporation | System and method for extracting a star schema from tabular data for use in a multidimensional database environment |
WO2017070533A1 (en) | 2015-10-23 | 2017-04-27 | Oracle International Corporation | System and method for automatic inference of a cube schema from a tabular data for use in a multidimensional database environment |
US10331899B2 (en) | 2015-10-24 | 2019-06-25 | Oracle International Corporation | Display of dynamic contextual pivot grid analytics |
US10628456B2 (en) * | 2015-10-30 | 2020-04-21 | Hartford Fire Insurance Company | Universal analytical data mart and data structure for same |
US10942929B2 (en) | 2015-10-30 | 2021-03-09 | Hartford Fire Insurance Company | Universal repository for holding repeatedly accessible information |
EP3403200A4 (en) * | 2016-02-26 | 2019-12-25 | Crysp Intelligence Pty Ltd | DATA SOURCE CATEGORY OF AGNOSTIC FACTS OF DATA SOURCE SYSTEM AND METHODS FOR INSERTING AND RETRIEVING DATA USING THE INFORMATION REFERENTIAL |
US10140319B2 (en) | 2016-07-26 | 2018-11-27 | Bank Of America | System for identifying anomalies by automatically generating and analyzing a structure |
US10585916B1 (en) * | 2016-10-07 | 2020-03-10 | Health Catalyst, Inc. | Systems and methods for improved efficiency |
EP3605363A4 (en) | 2017-03-30 | 2020-02-26 | Nec Corporation | INFORMATION PROCESSING SYSTEM, CHARACTERISTICS, AND CHARACTERISTICS PROGRAM |
US20180373781A1 (en) * | 2017-06-21 | 2018-12-27 | Yogesh PALRECHA | Data handling methods and system for data lakes |
JP7006077B2 (ja) * | 2017-09-22 | 2022-01-24 | 日本電気株式会社 | 管理システム、管理方法、及び管理プログラム |
WO2019069507A1 (ja) | 2017-10-05 | 2019-04-11 | 日本電気株式会社 | 特徴量生成装置、特徴量生成方法および特徴量生成プログラム |
CN110019462B (zh) * | 2017-11-14 | 2021-09-03 | 南方电网科学研究院有限责任公司 | 电力科研生产数据分析方法、装置、系统及存储介质 |
CN108984303B (zh) * | 2018-07-09 | 2024-08-13 | 湖南卓茂电子科技有限公司 | 一种增量式的数据集加速生成方法及系统 |
CN109214906A (zh) * | 2018-11-01 | 2019-01-15 | 山东浪潮商用系统有限公司 | 基于大数据仓库分层的税务数据资产分类管理方法及系统 |
CN113168323B (zh) * | 2019-05-05 | 2024-06-14 | Oppo广东移动通信有限公司 | 资源添加方法、管理设备及计算机存储介质 |
CN111680506A (zh) * | 2020-04-28 | 2020-09-18 | 北京三快在线科技有限公司 | 数据库表的外键映射方法、装置、电子设备和存储介质 |
US12056143B2 (en) | 2022-03-31 | 2024-08-06 | Insight Direct Usa, Inc. | Data processing with integrated metadata generation and storage |
US12056159B2 (en) * | 2022-03-31 | 2024-08-06 | Insight Direct Usa, Inc. | Dimension and fact table creation using templates |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1262958C (zh) * | 2002-12-18 | 2006-07-05 | 国际商业机器公司 | 使用元数据在关系数据库中创建多维数据集的方法和系统 |
CN1856783A (zh) * | 2002-07-26 | 2006-11-01 | 罗恩·埃弗里特 | 使用参考与一般数据项关联的数据管理结构 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6167405A (en) * | 1998-04-27 | 2000-12-26 | Bull Hn Information Systems Inc. | Method and apparatus for automatically populating a data warehouse system |
US6212524B1 (en) | 1998-05-06 | 2001-04-03 | E.Piphany, Inc. | Method and apparatus for creating and populating a datamart |
WO2000013112A1 (en) * | 1998-08-31 | 2000-03-09 | Cabletron Systems, Inc. | Method and apparatus for managing data for use by data applications |
US6377934B1 (en) | 1999-01-15 | 2002-04-23 | Metaedge Corporation | Method for providing a reverse star schema data model |
US6385604B1 (en) * | 1999-08-04 | 2002-05-07 | Hyperroll, Israel Limited | Relational database management system having integrated non-relational multi-dimensional data store of aggregated data elements |
US20020029207A1 (en) * | 2000-02-28 | 2002-03-07 | Hyperroll, Inc. | Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein |
US7117215B1 (en) | 2001-06-07 | 2006-10-03 | Informatica Corporation | Method and apparatus for transporting data for data warehousing applications that incorporates analytic data interface |
US6721749B1 (en) | 2000-07-06 | 2004-04-13 | Microsoft Corporation | Populating a data warehouse using a pipeline approach |
US7313561B2 (en) | 2003-03-12 | 2007-12-25 | Microsoft Corporation | Model definition schema |
US7275024B2 (en) | 2003-03-12 | 2007-09-25 | Microsoft Corporation | Automatic generation of a dimensional model for business analytics from an object model for online transaction processing |
US7426520B2 (en) * | 2003-09-10 | 2008-09-16 | Exeros, Inc. | Method and apparatus for semantic discovery and mapping between data sources |
US7840607B2 (en) | 2004-08-06 | 2010-11-23 | Siemens Aktiengesellschaft | Data mart generation and use in association with an operations intelligence platform |
US7610300B2 (en) | 2004-11-30 | 2009-10-27 | International Business Machines Corporation | Automated relational schema generation within a multidimensional enterprise software system |
JP4159099B2 (ja) | 2005-05-16 | 2008-10-01 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 次元テーブル処理装置、次元階層抽出装置、次元テーブル処理方法、次元階層抽出方法及びプログラム |
US8510329B2 (en) * | 2005-05-25 | 2013-08-13 | Experian Marketing Solutions, Inc. | Distributed and interactive database architecture for parallel and asynchronous data processing of complex data and for real-time query processing |
US7730057B2 (en) * | 2005-06-06 | 2010-06-01 | International Business Machines Corporation | Computer data systems implemented using a virtual solution architecture |
US20070185867A1 (en) | 2006-02-03 | 2007-08-09 | Matteo Maga | Statistical modeling methods for determining customer distribution by churn probability within a customer population |
US20070250524A1 (en) | 2006-04-19 | 2007-10-25 | Jian Le | Method and apparatus for workload and model based materialized query table or view recommendation technique |
US7418453B2 (en) | 2006-06-15 | 2008-08-26 | International Business Machines Corporation | Updating a data warehouse schema based on changes in an observation model |
US7580944B2 (en) | 2006-07-27 | 2009-08-25 | Yahoo! Inc. | Business intelligent architecture system and method |
US9747349B2 (en) | 2006-10-30 | 2017-08-29 | Execue, Inc. | System and method for distributing queries to a group of databases and expediting data access |
US20090012816A1 (en) * | 2007-07-06 | 2009-01-08 | General Electric Company | Systems and methods for clinical analysis integration services |
-
2008
- 2008-10-23 US US12/256,635 patent/US7970728B2/en not_active Expired - Fee Related
-
2009
- 2009-10-23 CN CN2009101800376A patent/CN101727478B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1856783A (zh) * | 2002-07-26 | 2006-11-01 | 罗恩·埃弗里特 | 使用参考与一般数据项关联的数据管理结构 |
CN1262958C (zh) * | 2002-12-18 | 2006-07-05 | 国际商业机器公司 | 使用元数据在关系数据库中创建多维数据集的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
US20100106747A1 (en) | 2010-04-29 |
US7970728B2 (en) | 2011-06-28 |
CN101727478A (zh) | 2010-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101727478B (zh) | 动态建立并用储存库中的数据填充数据集市的方法和系统 | |
CN101167048B (zh) | 多维企业软件系统内的可聚集维度信息的生成 | |
CN101111835B (zh) | 多维企业软件系统中的自动默认维度选择方法 | |
CN104205039B (zh) | 使用兴趣驱动数据管线进行数据分析的兴趣驱动商业智能系统和方法 | |
US20110231359A1 (en) | Synchronization of relational databases with olap cubes | |
Pardillo et al. | Using ontologies for the design of data warehouses | |
CN101111839A (zh) | 多维企业软件系统中的报表模板生成 | |
US20040139045A1 (en) | Static drill-through modelling | |
Hassan et al. | A New Framework to Adopt Multidimensional Databases for Organizational Information System Strategies | |
Sreemathy et al. | Data validation in ETL using TALEND | |
Wrembel | A survey of managing the evolution of data warehouses | |
GB2479654A (en) | Subscription based retrieval from oil field database | |
Khalil et al. | New approach for implementing big datamart using NoSQL key-value stores | |
Kalna et al. | A meta-model for diverse data sources in business intelligence | |
Fong et al. | Continuous and incremental data mining association rules using frame metadata model | |
Albano | Decision support databases essentials | |
Moukhi et al. | Towards a new method for designing multidimensional models | |
Atzeni et al. | Data modeling across the evolution of database technology | |
Altın et al. | Analyzing The Encountered Problems and Possible Solutions of Converting Relational Databases to Graph Databases | |
Wu et al. | Data storage and management | |
Favre et al. | DIMENSION HIERARCHIES UPDATES IN DATA WAREHOUSES-A User-driven Approach | |
Hansen et al. | DWStar-automated star schema generation | |
Gupta et al. | Demystifying Databases: Exploring their Use Cases | |
Nimmagadda et al. | Applicability of data warehousing and data mining technologies in the Australian resources industry | |
Chang et al. | Dynamic Data Mart for Business Intelligence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130605 Termination date: 20151023 |
|
EXPY | Termination of patent right or utility model |