CN101208696A - 利用综合操作的聚合数据 - Google Patents

利用综合操作的聚合数据 Download PDF

Info

Publication number
CN101208696A
CN101208696A CNA2006800233823A CN200680023382A CN101208696A CN 101208696 A CN101208696 A CN 101208696A CN A2006800233823 A CNA2006800233823 A CN A2006800233823A CN 200680023382 A CN200680023382 A CN 200680023382A CN 101208696 A CN101208696 A CN 101208696A
Authority
CN
China
Prior art keywords
data set
polymerization
value
records
record
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.)
Granted
Application number
CNA2006800233823A
Other languages
English (en)
Other versions
CN100570606C (zh
Inventor
克雷格·W.·斯坦菲尔
马歇尔·A.·伊斯曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Archie Taco Ltd.
Ab Initio Technology LLC
Original Assignee
Ab Initio Software LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ab Initio Software LLC filed Critical Ab Initio Software LLC
Publication of CN101208696A publication Critical patent/CN101208696A/zh
Application granted granted Critical
Publication of CN100570606C publication Critical patent/CN100570606C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

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)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)

Abstract

聚合数据包括接受第一数据集,该第一数据集包括多个记录,每个记录保存多个字段中每一个字段的值。从该第一数据集产生第二数据集。该第二数据集包括一个或多个聚合记录,每个聚合记录对应于来自该第一数据集的一个或多个记录,来自该第一数据集的一个或多个记录匹配于字段子集中的值。从该第二数据集产生第三数据集。该第三数据集包括一个或多个聚合记录,每个聚合记录对应于该第一数据集的一个或多个聚合记录,该第一数据集的一个或多个聚合记录匹配于字段子集中的值。与该第三数据集中的聚合记录相关联的聚合值表示对与来自该第一数据集的多个记录相关联的值执行不可级联操作的结果。

Description

利用综合操作的聚合数据
技术领域
本发明涉及利用综合操作的聚合数据。
背景技术
存在多种联机分析处理(OLAP)技术,其允许用户分析存储在数据库中的多维数据。典型地,该数据库包括具有多个维度(或“关键字字段”)和多个属性(或“非关键字字段”)的“事实表”,其中维度存储用作进入多维数据的索引的值、属性存储其它值。用户可以执行涉及计算多维数据聚合的数据查询。为了增加此种查询的效率,典型的OLAP方案预先计算一些可能的聚合。
发明内容
在总的方面,本发明特征在于一种用于聚合数据的方法以及相应的软件和系统。该方法包括接受第一数据集,该第一数据集包括多个记录,每个记录保存(holding)多个字段中每一个字段的值。从该第一数据集产生第二数据集,该第二数据集包括一个或多个聚合记录。该第二数据集的每个聚合记录对应于来自该第一数据集的一个或多个记录,且上述被该第二数据集的每个聚合记录所对应的来自该第一数据集的一个或多个记录匹配于与该聚合记录相关联的字段子集中的值。从该第二数据集产生第三数据集,该第三数据集包括一个或多个聚合记录。该第三数据集的每个聚合记录对应于该第一数据集的一个或多个聚合记录,且上述被该第三数据集的每个聚合记录所对应的该第一数据集的一个或多个聚合记录匹配于与该第三数据集的聚合记录相关联的字段子集中的值。与第三数据集中的聚合记录相关联的聚合值表示对与来自该第一数据集的多个记录相关联的值执行不可级联操作的结果。
这个方面可包括一个或多个以下特征。
对与来自该第一数据集的多个记录相关联的值执行不可级联操作是由以下各项组成的群组中之一:确定所述值中不同值(distinct value)的个数确定所述值的中间值,确定所述值的多个极值的和,以及确定所述值的多个和的极值。
该不可级联操作是这样的,对一组操作数执行该不可级联操作的结果不能分解成以下的操作执行结果:对该操作数的第一子集执行该操作的第一结果,和对该操作数的第二子集执行该操作的第二结果;其中第一子集和第二子集是互斥的和穷举的。
所述多个字段中的至少一个字段至少部分地与所述多个字段中的另一个字段函数相关。
与所述多个字段中至少一个字段相关联的至少一些值依赖于与所述多个字段中另一个字段相关联的对应值。
从该第二数据集产生该第三数据集包括接收该第二数据集的聚合记录流。
在另一总的方面,本发明特征在于一种用于聚合包括多个记录的数据的方法,每个记录保存多个字段中每一个字段的值。该方法包括,在考虑所述字段之间的函数相关性的条件下,利用不可级联操作执行在所述记录内字段的多级聚合。
这个方面可包括一个或多个以下特征。
该不可级联操作是由以下各项组成的群组中之一:确定所述值中不同值的个数,确定所述值的中间值,确定所述值的多个极值的和,以及确定所述值的多个和的极值。
该不可级联操作是这样的,对一组操作数执行该不可级联操作的结果不能分解成以下的操作执行结果:对该操作数的第一子集执行该操作的第一结果,和对该操作数的第二子集执行该操作的第二个结果;其中第一子集和第二子集是互斥的和穷举的。
在另一总的方面,本发明特征在于一种用于聚合数据的方法以及相应的软件和系统。该方法包括接受第一数据集,该第一数据集包括多个记录,每个记录保存多个字段中每一个字段的值。该方法包括产生该第一数据集的记录与多个第一关键字集(key set)的笛卡尔积。每个关键字集表示该第一数据集的字段子集。该方法包括从所产生的笛卡尔积产生第二数据集,该第二数据集包括一个或多个聚合记录,每个聚合记录对应于来自该第一数据集的一个或多个记录,上述被每个聚合记录所对应的来自该第一数据集的一个或多个记录匹配于与该聚合记录相关联的字段子集中的值。该方法包括从该第二数据集产生第三数据集,该第三数据集包括一个或多个聚合记录,该第三数据集的每个聚合记录对应于该第一数据集的一个或多个聚合记录,上述被该第三数据集的每个聚合记录所对应的该第一数据集的一个或多个聚合记录匹配于与该第三数据集的聚合记录相关联的字段子集中的值。
这个方面可包括一个或多个以下特征。
产生该第三数据集包括对所产生的笛卡尔积和如下数据集执行连接操作,该数据集的记录包含表示所述多个第一关键字集中之一的第一值和表示多个第二关键字集中之一的第二值,所述多个第二关键字集中的每一个表示该第二数据集的字段子集;其中该连接操作通过匹配关键字集来连接记录。
产生该第三数据集包括,对于至少一些已连接的记录,以通配符值替换至少一个所述字段的值。
产生该第二数据集包括,对于所产生的笛卡尔积的至少一些记录,以通配符值替换至少一个所述字段的值。
本发明的上述方面可包括一个或多个以下优点。
通过利用数据集中字段之间(例如,在关键字字段和将对其操作的字段之间)的函数相关性,可将聚合计算分解成多级。基于不可级联操作,可将考虑函数相关性的多级聚合用于聚合数据。通过将聚合计算分解成多级,可降低聚合计算的量。
根据以下描述和权利要求书,本发明的其它特征和优点将变得更明显。
附图说明
图1是数据聚合系统;
图2A是表示多维数据的表;
图2B-2G是表示基于图2A中数据的聚合数据的表;
图3和5是关于单级聚合的数据流图;
图4、6和7是关于多级聚合的数据流图。
具体实施方式
1概述
参考图1,数据聚合系统10包括数据聚合器12,数据聚合器12处理数据存储器16中输入表14内的信息,以产生关于存储在聚合表18中的信息。在一些情形下,数据聚合器12基于用户20在用户界面22上提出的查询来产生聚合表18。在其它情形下,数据聚合器12根据预计算方案来产生聚合表18。这种聚合在输入表14中提供数据总结,这对用户20是有用的。
参考图2A,表100的行1-7表示多维数据集的记录,从该多维数据集可产生聚合数据。表100是4维数据集,其包括表示关键字字段产品、经销商、年份和地点的四列以及表示非关键字字段销售额和价格的两列。用户查询可询问由年份、产品和地点分开并在经销商上聚合的销售额总和。这种聚合被称为3维聚合是因为,相对于原始的4个关键字字段,聚合了一个关键字字段而保留下3个关键字字段。与被该聚合作为基础的操作相对应,具有相同的保留关键字字段值的记录的组合被称为“聚合操作”。在该情形下,聚合操作是对非关键字字段中的值求和。图2B显示了表示对此实例产生的3维聚合数据集的表110。
如另一个实例,用户可查询由产品分开并在年份、经销商和地点上聚合的销售额或价格的总和(1维聚合)。在该情形下,聚合涉及组合具有相同的单独保留关键字字段产品值的列。图2C显示了表示所产生的1维聚合数据集结果的表120。对所有四个关键字字段上聚合的销售额和/或价格的总和产生由图2D中表130表示的0维聚合(或单一“总聚合”值)。
向用户提供聚合数据的一种方式是预计算可用在查询多维数据中的一些或甚至所有的可能聚合。该预计算可包括会花费相当多时间的大量计算。例如,从具有14维的多维数据集进行所有具有4维或更少维的聚合的预计算包括14C4+14C3+14C2+14C1+14C0=1471次聚合。如果该数据集有107列数据,则该预计算可包括多达1.471×1010列数据的处理。
用于减少多维聚合的预计算所需的计算量的一种策略包括产生多级聚合、基于高维聚合来计算低维聚合。例如,通过对6维聚合的2维进行聚合6C2=15次,可从单一的6维聚合计算出15次的4维聚合14C4。例如,如果6维聚合具有104列数据,则这些15次4维聚合的预计算涉及处理107列数据以产生6维聚合,并随后处理15×104=150,000列数据以产生这些15次的4维聚合,总的涉及10,150,000列数据的处理。作为比较,从14维数据分别预计算这些15次4维聚合中的每一个将涉及处理15×10,000,000=150,000,000列数据。
用于处理多维数据以产生聚合数据(例如,预计算和/或响应用户查询)的系统10根据所涉及操作是否“可级联(cascadable)”,对多级聚合使用不同的方式。如果对一组操作数执行操作的结果可分解成以下结果,则该操作是可级联的:(a)对操作数的第一子集执行操作的第一结果,以及(b)对操作数的第二子集执行操作的第二结果(其中第一子集和第二子集是互斥的和穷举的)。例如,加法由于加法的结合性而是可级联的:(a+b+...+z)=(a+b+...+m)+(n+o+...+z)。
可级联操作的实例包括执行求和和确定数据列中的最大值或最小值(即“极值”)。在上述实例中,表130(图2D)内销售额和价格字段中的值总和可在从表100内原始数据集的单级中计算出,或可选地,在利用例如表110(图2B)或表120(图2C)内中间聚合数据集的多级中计算出。这样使用多级是可以的,因为所涉及的求和操作是可级联的,从而允许系统10利用分解字段以被聚合进中间维集的第一多级聚合过程,将在以下2.2节中详细描述。
可用来聚合多维数据集中记录的不可级联操作的实例包括:确定记录的字段不同值的个数,确定字段中值的中间值,确定值集的多个极值的和(例如每一个地点的最贵产品的总和),以及确定值的多个和的极值(例如最大的年总销售额)。因此即使单一的结合性操作(例如加法或查找最大值)是可级联的,但包括两个结合性操作的复合操作可能是不可级联的,如上述实例中的“极值的和”与“和的极值”。
图2E和2F显示了基于不可级联操作聚合数据的实例。图2E显示表140,其表示基于对产品字段的不同值进行计数的操作,由经销商分开的在产品、年份和地点上聚合表100记录的结果。图2F显示表150,其表示基于对产品字段的不同值进行计数的操作,由年份分开的在产品、经销商和地点的上聚合表100记录的结果。
图2G显示表160,其表示产品字段不同值个数的总聚合值。在此实例中,有3个不同的产品A、B和C,如通过聚合表100记录而确定的。由于此“计数不同”操作是不可级联的,因此总值不是必然地从例如表140或表150中数据的中间聚合数据获得。在此实例中,由于表100原始数据的函数相关性,因此表140中的中间“不同的产品”值的和给出了正确的3个不同产品的结果。然而,表150中的中间“不同的产品”值的和给出了错误的6个不同产品的结果。
通过使用第二个多级聚合过程,系统10可基于不可级联操作利用函数相关性来处理用于多级聚合的数据列,将在下文2.4节中详细描述。在此实例中,每个产品具有唯一的经销商,因此在经销商和产品之间存在函数相关性(即,经销商的值函数上依赖于产品的值)。此函数相关性使得对基于不可级联操作的此次聚合,可通过正确选择中间数据而从该中间数据获得正确结果。
2利用数据流图聚合数据
在系统10中,将关于多维数据的计算通过有向图表示成数据流,计算要素(component)与图的顶点相关以及各要素之间的数据流对应于图的链环(弧、边)。实现此种基于图计算的系统在名称为”EXECUTINGCOMPUTATIONS EXPRESSED AS GRAPHS”的美国专利5,966,072中有描述。关于多维数据集的聚合计算实例将在下文利用“数据流图”来描述,以实现系统10中的聚合器12。
2.1单级聚合
参考图3,用于计算单级聚合的数据流图200包括输入数据集202(例如输入表14)和输出数据集210(例如聚合表18)。输入数据集202是一系列记录的来源,每个记录包括一组字段的值。一些字段是输入数据集202中多维数据的关键字字段。准备组件206处理记录,为汇总(rollup)组件208的处理作准备。准备组件206基于指定用来聚合数据的一组或多组关键字的“关键字集”输入文件204来处理所述记录。汇总组件208基于所选择的操作来组合多个输入记录的信息,并产生单一输出记录以替换多个输入记录。来自汇总组件208的聚合记录流被存储在输出数据集210中。
在执行单级聚合的实例中,图200处理2维输入数据集202中的记录,2维输入数据集202在下表中表示成具有两个关键字字段关键字0和关键字1以及一个非关键字字段属性的整数值的行。
    关键字0     关键字1     属性
    1     1     1
    1     2     2
    2     1     3
    2     2     4
基于由一维(关键字字段)分开并对另一个关键字字段聚合的属性字段中的值求和,图200产生两个1维聚合数据集。“关键字集”输入文件204指定第一次聚合(通过单态集(singlet set){0}消除关键字1并保留关键字0)以及第二次聚合(通过单态集{1}消除关键字0并保留关键字1)。
为了在计算大量聚合(由大量关键字集指示的)时节省时间,准备组件206产生具有“合成关键字”值的记录流,其中合成关键字值可被用来执行所有待计算的聚合。例如,准备组件206基于输入文件204中关键字集与输入数据集202中记录的笛卡尔积产生具有合成关键字的记录(例如,利用对空值{}执行的“连接(join)”操作),该合成关键字由关键字0和关键字1的值组成。在下表中给出对此实例执行这种笛卡尔积的结果。
   关键字0    关键字1     属性     关键字集
   1    1     1     {0}
   1    2     2     {0}
   2    1     3     {0}
   2    2     4     {0}
   1    1     1     {1}
   1    2     2     {1}
   2    1     3     {1}
    2     2     4     {1}
准备组件206为不是对应关键字集部分的记录(行)的关键字字段中的值引入“通配符”值(例如“*”)。在下表中给出对此实例引入通配符值的结果。
   关键字0    关键字1     属性   关键字集
   1    *     1   {0}
   1    *     2   {0}
   2    *     3   {0}
   2    *     4   {0}
   *    1     1   {1}
   *    2     2   {1}
   *    1     3   {1}
   *    2     4   {1}
由准备组件206产生的记录流随后由汇总组件208处理。汇总组件208对记录进行属性字段中的值求和,其中所述记录的合成关键字值相匹配(在此通配符值仅匹配其它通配符值)。下表表示所产生的输出数据集,该输出数据集包括由图200产生的两个1维聚合数据集。
    关键字0     关键字1   求和(属性)
    1     *   3
    2     *   7
    *     1   4
    *     2   6
前两行表示由关键字0分开并在关键字1上聚合的属性字段中值的和。
后两行表示由关键字1分开并在关键字0上聚合的属性字段中值的和。
可用各种表示方式中的任何一个来存储与数据流中记录相关联的合成关键字。例如,代替用于此实例中的关键字字段值阵列(其中一些是通配符),每个记录可与非通配符值的关键字值对的阵列相关联(当数据集的维数比关键字集的维数大时,这可能是更有效的表示法)。
2.2可级联操作的多级聚合
参考图4,用于计算多级聚合的数据流图300包括输入数据集302和输出数据集318。基于指定用来聚合数据的一组或多组关键字的第一集的输入文件304,输入数据集302是将由准备组件306和汇总组件308处理的一系列记录的来源。汇总组件308的输出是表示聚合数据集的记录流310,其中该聚合数据集的维数介于输入数据集302的维数和输出数据集318的维数之间。该中间数据可存储在数据集中以用于后续查询或数据处理,或可选地,可保留记录流而非必然地存储在文件中。基于指定用来聚合数据的一组或多组关键字的第二集的输入文件314,由准备组件312和汇总组件316处理记录310。将来自汇总组件316的聚合记录流存储在输出数据集318中。
在执行可级联操作的多级聚合的实例中,图300处理4维输入数据集302中的记录并产生包括所有六个2维求和聚合的数据集,4维输入数据集302在下表中表示成具有四个关键字字段关键字0、关键字1、关键字2和关键字3以及一个非关键字字段属性的整数值的行。
 关键字0  关键字1  关键字2  关键字3     属性
 1  1  1  1     1
 1  1  1  2     2
 1  1  2  2     3
输入文件304和314指定“汇总方案(rollup plan)”,该汇总方案包括输入文件304中的六个第一级关键字集以及输入文件314中的六个第二级关键字集。特别地,在此实例中,基于由二维(关键字字段)分开并在另外两个上聚合的属性字段中值的和,图300产生六个2维聚合数据集。下面六个第一级关键字集中的每一个表示保留在三个3维中间聚合数据集中之一的三个关键字字段(在记录310内):
关键字集1-1:{0,1,2}
关键字集1-2:{0,1,2}
关键字集1-3:{0,1,2}
关键字集1-4:{0,1,3}
关键字集1-5:{0,1,3}
关键字集1-6:{0,2,3}
下面六个第二级关键字集中的每一个表示保留在六个2维输出聚合数据集中之一的两个关键字字段:
关键字集2-1:{0,1}
关键字集2-2:{0,2}
关键字集2-3:{1,2}
关键字集2-4:{0,3}
关键字集2-5:{1,3}
关键字集2-6:{2,3}
第二级关键字集中的每个关键字字段选自对应第一级关键字集中的关键字字段(其中关键字集2-n对应关键字集1-n)。选择第一级关键字集中的关键字字段,使得两个字段的六种可能组合中的每一种可表示在第二级关键字集中。为了在生成合成关键字集值中的应用,输入文件314在记录中存储每个第二级关键字集(例如关键字集2-1)以及与其相关的第一级关键字集(例如关键字集1-1),以下将详细描述。
根据在第一级和第二级中聚合的维数,在一些情况下,选择使用哪个第一级关键字集将影响需要产生多少中间聚合数据集,以计算给定数目的输出聚合数据集(这将影响总计算的效率)。在此实例中,不管四个可能中间聚合数据集中的哪三个被选择,都需要三个中间聚合数据集来计算六个输出聚合数据集。将在下面2.3节中描述用于选择第一级关键字集的程序,在某种程度上该程序减少一些情况下所需的中间聚合数据集的数量。准备组件306基于输入文件304中不同关键字集(在此例中为3个不同关键字集)与输入数据集302中记录的笛卡尔积来产生具有一级合成关键字的记录。准备组件306还为不是对应关键字集部分的记录(行)的关键字字段中的值引入通配符值。在下表中给出了对此实例执行笛卡尔积并引入通配符值的结果。
 关键字0  关键字1  关键字2  关键字3   属性     关键字集1
 1  1  1  *   1     {0,1,2}
 1  1  1  *   2     {0,1,2}
 1  1  2  *   3     {0,1,2}
 1  1  *  1   1     {0,1,3}
    1     1     *     2     2     {0,1,3}
    1     1     *     2     3     {0,1,3}
    1     *     1     1     1     {0,1,2}
    1     *     1     2     2     {0,2,3}
    1     *     2     2     3     {0,2,3}
由准备组件306产生的记录流随后由汇总组件308处理。汇总组件308对合成关键字值(包括通配符值)相匹配的记录进行属性字段中的值求和。下表表示所产生的中间记录310。
 关键字0  关键字1  关键字2  关键字3   属性     关键字集1
 1  1  1  *   3     {0,1,2}
 1  1  2  *   3     {0,1,2}
 1  1  *  1   1     {0,1,3}
 1  1  *  2   5     {0,1,3}
 1  *  1  1   1     {0,1,2}
 1  *  1  2   2     {0,2,3}
 1  *  2  2   3     {0,2,3}
前两行表示由关键字0、关键字1和关键字2分开并在关键字1上聚合的属性字段中的值的和。接下来的两行表示由关键字0、关键字1和关键字3分开并在关键字2上聚合的属性字段中的值的和。最后三行表示由关键字0、关键字2和关键字3分开并在关键字1上聚合的属性字段中的值的和。
通过对在上表中示出的中间记录310以及在下表中示出的输入文件314中的关键字集记录执行连接操作,准备组件312产生具有第二级合成关键字的记录。将关键字集1的值用作连接操作的关键字。
    关键字集1     关键字集2
    {0,1,2}     {0,1,}
    {0,1,2}     {0,2}
    {0,1,2}     {1,2}
    {0,1,3}     {0,3}
    {0,1,3}     {1,3}
    {0,2,3}     {2,3}
在下表中示出了所产生的从准备组件312发送至汇总组件316的连接记录(包括对于不在第二级关键字集中的关键字字段的通配符值)。
 关键字0  关键字1  关键字2  关键字3   属性     关键字集1    关键字集2
 1  1  *  *   3     {0,1,2}    {0,1}
 1  1  *  *   3     {0,1,2}    {0,1}
 1  *  1  *   3     {0,1,2}    {0,2}
 1  *  2  *   3     {0,1,2}    {0,2}
 *  1  1  *   3     {0,1,2}    {1,2}
 *  1  2  *   3     {0,1,2}    {1,2}
 1  *  *  1   1     {0,1,3}    {0,3}
 1  *  *  2   5     {0,1,3}    {0,3}
 *  1  *  1   1     {0,1,3}    {1,3}
 *  1  *  2   5     {0,1,3}    {1,3}
 *  *  1  1   1     {0,2,3}    {2,3}
 *  *  1  2   2     {0,2,3}    {2,3}
 *  *  2  2   3     {0,2,3}    {2,3}
汇总组件208对其合成关键字值(包括通配符值)相匹配的记录进行属性字段中的值求和。在下表中示出了包括通过图300产生的六个2维聚合数据集的所产生的输出数据集。
   关键字0    关键字1    关键字2    关键字3     属性
   1    1    *    *     6
   1    *    1    *     3
   1    *    2    *     3
   *    1    1    *     3
   *    1    2    *     3
   1    *    *    1     1
   1    *    *    2     5
    *     1     *     1     1
    *     1     *     2     5
    *     *     1     1     1
    *     *     1     2     2
    *     *     2     2     3
上表中的行表示由包含整数值的关键字字段分开并在包含通配符值的关键字字段上聚合的属性字段中的值的和。
2.3关键字集的选择
以下是由数据流图的准备组件用来选择表示中间聚合数据集的字段的第一级关键字集的示例性程序。根据选择影响所需的中间聚合数的实例来描述该程序。该实例经由3维的中间聚合从5维数据(具有关键字字段0、1、2、3、4)产生2维数据,其产生10个可能的2维输出聚合数据集(因为5C2=10)。
通过选择表示第一中间聚合数据集中字段的任何一个第一3维关键字集{4,3,2},该组件启动。该组件确定可从第一中间聚合数据集产生哪些输出聚合数据集:{4,3}、{4,2}、{3,2}。然后该组件搜索第二关键字集{4,1,0},从该第二关键字集中可产生剩下的输出聚合数据集的最大数,其可产生{4,1}、{4,0}、{1,0}。重复此步骤直到产生所有2维输出聚合数据集,这为总的四个第一级关键字集产生另外的关键字集{3,2,1}和{3,2,0}。
第一级关键字集的其它选择产生较高数,从该较高数可产生所有2维输出聚合数据集。例如,以下列顺序{4,3,2}、{4,3,1}、{4,3,0}、{4,2,1}、{4,2,0}、{3,2,0}选择第一级关键字集产生六个第一级关键字集。因此在存在数百或数千可能的中间关键字集的一些情况下,根据上述程序选择关键字集可减少需要产生的中间聚合数据集的数量。
2.4不可级联操作的聚合
在一些情形中,基于不可级联操作来计算多维数据的聚合涉及直接从原始数据集计算大部分的期望聚合,这是因为计算这些聚合所需的一些信息在中间维数的聚合中丢失了。然而,在其它情形中,中间维数的聚合包含计算这些聚合中某些的信息。这种情形之一是数据集中一个关键字字段的值依赖于另一个关键字字段的值。
2.4.1没有函数相关的单级聚合
在描述一种通过利用函数相关性将计算分解成多级来减少聚合计算大小的情形之前,描述基于对目标字段执行不可级联的“计数不同”操作来计算聚合的单级方式是有用的。
参考图5,用于计算单级聚合的数据流图400包括输入数据集402和输出数据集412。图400包括准备组件406,其基于输入文件404处理记录以产生包括对应于期望聚合的合成关键字的记录流。图400被设置成利用汇总组件408和汇总组件410执行“计数不同”的操作。汇总组件408基于目标字段值来组合记录,使得每个不同值对每个合成关键字值出现一次。此第一汇总操作使得汇总组件410可通过计数具有匹配合成关键字的记录来确定目标字段中不同值的个数。来自汇总组件410的聚合记录流被存储在输出数据集412中。
即使数据流图400包括多个汇总组件,其执行的聚合计算是单级聚合,这是因为其输出并不是基于中间维数的数据产生的。
在基于不可级联的“计数不同”操作来执行单级聚合的实例中,图400处理2维输入数据集402中的记录,2维输入数据集402在下表中表示成对两个关键字字段关键字0和关键字1以及一个非关键字字段目标具有整数值的行,其中非关键字字段目标是“计数不同”操作的目标。
    关键字0     关键字1     目标
    0     0     0
    0     1     0
    0     1     0
    1     0     0
    0     0     1
    2     0     1
基于在目标字段上执行的“计数不同”操作,图400产生两个1维聚合数据集和总聚合。输入文件404为1维聚合指定对应的关键字集为{0}和{1},为总聚合指定为{}。
准备组件406基于输入文件404中这些关键字集与输入数据集402中记录的笛卡尔积产生具有合成关键字值的记录流,输入数据集402中的记录具有对于不在该关键字集中的关键字字段的通配符值,如下表所示。
    关键字0     关键字1     目标     关键字集
    0     *     0     {0}
    0     *     0     {0}
    0     *     0     {0}
    1     *     0     {0}
    *     0     0     {1}
    *     1     0     {1}
    *     1     0     {1}
    *     0     0     {1}
    *     *     0     {}
    *     *     0     {}
    *     *     0     {}
    *     *     0     {}
    0     *     1     {0}
    2     *     1     {0}
    *     0     1     {1}
    *     0     1     {1}
    *     *     1     {}
    *     *     1     {}
汇总组件408基于合成关键字的匹配值以及移除复制记录的目标字段来组合记录。在下表中表示所产生的记录。
    关键字0     关键字1     目标     关键字集
    0     *     0     {0}
    1     *     0     {0}
    *     0     0     {1}
    *     1     0     {1}
    *     *     0     {}
    0     *     1     {0}
    2     *     1     {0}
    *     0     1     {1}
    *     *     1     {}
汇总组件410组合具有匹配合成关键字值(关键字0和关键字1)的记录,并对所组合记录的数目进行计数,以产生不同目标字段值的个数。通过图400产生的输出数据集包括两个1维聚合数据集和总聚合,如下表所示。
    关键字0     关键字1     计数不同(目标)
    0     *     2
    1     *     1
    2     *     1
    *     0     2
    *     1     1
    *     *     2
前三行表示由关键字0分开并在关键字1上聚合的目标字段中的不同值的个数。接下来的两行表示由关键字1分开并在关键字0上聚合的目标字段中不同值的个数。最后一行表示同时在二个关键字字段上聚合的目标字段中不同值的总数。
2.4.2基于函数相关的级
在不可级联操作的多级方法中,为了确保中间维数聚合包含基于这些中间维数聚合产生期望聚合所需的信息,至少一个关键字字段应至少部分地与另一关键字字段函数相关。字段值之间(例如,关键字字段和目标字段之间)的函数相关性可以各种数据类型出现。例如,如果一个字段值表示个体(例如,客户ID),则表示诸如性别、民族、或出生日期的属性的另一个字段值将与该字段值函数相关。当函数相关性中存在例外时,则一个字段“部分”或“近似”地与另一个字段函数相关,将在以下3.1节中详细描述。
图6显示包括第一级的数据流图500,该第一级产生相对于输入数据集502的降维聚合记录512。该第一级包括准备组件506以及两个汇总组件508和510,汇总组件508和510起到同上述图400中的作用。输入文件504包括关键字集,其中该关键字集包括与聚合操作的目标字段不相关的“非相关”关键字字段。图500还包括第二级,该第二级基于包括与目标字段相关的“相关”关键字字段的输入文件516中的关键字集进一步聚合记录512。也就是说,与目标字段相关的任何字段在最后一级被聚合。
在基于不可级联的“计数不同”操作来执行多级聚合的实例中,图500处理2维输入数据集502中的记录,2维输入数据集502在下表中表示成对两个关键字字段关键字0和关键字1以及为一个非关键字字段目标具有整数值的行,其中非关键字字段目标是“计数不同”操作的目标。关键字字段关键字0与目标字段函数相关。
    关键字0     关键字1     目标
    0     1     0
    0     1     0
    0     3     0
    1     2     1
    1     3     1
    0     1     2
    0     2     2
图500基于对目标字段执行的“计数不同”操作产生两个1维聚合数据集和总聚合。输入文件504和516指定“汇总方案”,该“汇总方案”包括输入文件504中的三个第一级关键字集和输入文件516中的三个第二级关键字集。第一级包括基于非相关关键字字段关键字1的值进行的汇总,关键字字段关键字1的值包括在第一级关键字集中:
关键字集1-1:{}
关键字集1-2:{}
关键字集1-3:{1}
在不可级联操作的多级方法中,第二级关键字集中的关键字字段不是必须仅从对应的第一级关键字集中的关键字字段选出。然而,第一级关键字集和第二级关键字集中的关键字字段被选择,以使得在第一级中聚合非相关维并在第二级中聚合相关维,正如在该实例中。在该实例中,第二级包括基于相关关键字字段关键字0的值进行的汇总,关键字字段关键字0的值包括在第二级关键字集中:
关键字集2-1:{0}
关键字集2-2:{}
关键字集2-3:{1}
准备组件506基于输入文件504中第一级关键字集与输入数据集502中记录的笛卡尔积产生具有合成关键字值的记录流,输入数据集502中的记录具有对于不在第一级关键字集中的任何非相关关键字字段的通配符值,如下表所示。
    关键字0     关键字1     目标    关键字集1
    0     *     0    {}
    0     *     0    {}
    0     *     0    {}
    0     1     0    {1}
    0     1     0    {1}
    0     3     0    {1}
    1     *     1    {}
    1     *     1    {}
    1     2     1    {1}
    1     3     1    {1}
    0     *     2    {}
    0     *     2    {}
    0     1     2    {1}
    0     2     2    {1}
汇总组件508基于合成关键字的匹配值以及移除复制记录的目标字段来组合记录。可选地,可从第一级合成关键字省去相关关键字字段关键字0(即在匹配中不考虑),这是因为关键字0的值与目标字段的值相关。所产生的记录如下表所示。
    关键字0     关键字1     目标    关键字集1
    0     *     0    {}
    0     1     0    {1}
    0     3     0    {1}
    1     *     1    {}
    1     2     1    {1}
    1     3     1    {1}
    0     *     2    {}
    0     1     2    {1}
    0     2     2    {1}
汇总组件510组合具有匹配合成关键字值(关键字0和关键字1)的记录,并对所组合记录的数目进行计数,以产生不同目标字段值的个数。在所产生的组合记录中不是必然地包括目标字段的值。所产生的中间记录512在下表中表示为包括1维聚合记录和2维聚合记录。
    关键字0     关键字1    关键字集1   计数不同(目标)
    0     *    {}   2
    1     *    {}   1
    0     1    {1}   2
    0     2    {1}   1
    0     3    {1}   1
    1     2    {1}   1
    1     3    {1}   1
通过对上表中示出的中间记录512以及下表中示出的输入文件516中的关键字集记录执行连接操作,准备组件514产生具有第二级合成关键字的记录。关键字集1的值被用作连接操作的关键字。
    关键字集1     关键字集2
    {}     {0}
    {}     {}
    {1}     {1}
下表示出了所产生的从准备组件514发送到汇总组件518的连接记录(包括对于不在第二级关键字集中的关键字字段的通配符值)如下表所示。
 关键字0    关键字1  关键字集1  关键字集2   计数不同(目标)
 *    *  {}  {}   2
 *    *  {}  {}   1
 0    *  {}  {0}   2
 1    *  {}  {0}   1
 *    1  {1}  {1}   2
 *    2  {1}  {1}   1
 *    3  {1}  {1}   1
 *    2  {1}  {1}   1
 *    3  {1}  {1}   1
汇总组件518组合具有匹配合成关键字值(关键字0和关键字1)的记录,并对“计数不同(目标)”字段中的对应值求和,以产生不同目标字段值的个数。在下表中示出的所产生的输出记录被存储在输出数据集520中。
    关键字0     关键字1     计数不同(目标)
    *     *     3
    0     *     2
    1     *     1
    *     1     2
    *     2     2
    *     3     2
上表中的行表示由包含整数值的关键字字段分开并在包含通配符值的关键字字段上聚合的目标字段的不同值的个数。
2.4.3增加补充级
上述通过多级聚合提供的节省计算时间可扩展到补充级聚合。应该在聚合的每一级适当处理相关和非相关关键字字段,正如在以下实例中一样。例如,为了减少数据集的维数,可将通配符值添加到要被移除的关键字字段。对于非相关关键字字段,一旦通过在合成关键字和目标字段上的初始汇总设定了非相关关键字字段中的通配符值和特定值的模式,则该模式不会改变。如果非相关关键字字段在初始汇总期间获得通配符值,则该关键字字段应仅用来为省略了该关键字字段的后续汇总操作匹配值。如果非相关关键字字段在初始汇总期间保留特定值,则该关键字字段应仅用来为包括该关键字字段的后续汇总操作匹配值。在上述实例中,如果对应的第一级和第二级关键字集仅是相关关键字字段不同,则在第二级处理期间将不把通配符值引入非相关关键字字段,从而产生正确的结果。
图7示出了实现3级聚合计算的示例性数据流图600。准备组件606基于包括非相关关键字字段的输入文件604中的关键字集来处理输入数据集602的记录。汇总组件608基于目标字段和合成关键字来组合记录,以及汇总组件609基于所有关键字字段来组合记录,从而使得中间记录610具有与输入数据集602相同的维数。输入文件614中的第二级关键字集包括非相关关键字字段以及可选地包括一些相关关键字字段,其中这些相关关键字字段适于得出具有某个指定维数的中间数据集618。输入文件622中的第三级关键字集包括用于产生具有被期望的较低维数的输出数据集626的最后关键字字段。
例如,输入数据集602具有4维,其中2维相关(关键字0和关键字1)而另外2维不相关(关键字2和关键字3)。输出数据集626包括基于3维中间数据集618的具有2维或更少维的聚合。对于该实例的适当3级汇总图如下表所示。
    关键字集1     关键字集2     关键字集3
    {}     {0,1,2}     {0,1}
    {2}     {0,1,2}     {0,2}
    {2}     {0,1,2}     {1,2}
    {}     {0,1,2}     {0}
    {}     {0,1,2}     {1}
    {2}     {0,1,2}     {2}
    {3}     {0,1,3}     {0,3}
    {3}     {0,1,3}     {1,3}
    {3}     {0,1,3}     {3}
    {2,3}     {0,2,3}     {2,3}
如上所述,存在或不存在非相关关键字字段在1级和3级之间没有变化。
在一些情形下,通过估计适当维数的所有可能的关键字集,根据可从它们产生的预期聚合的数目对它们分级,并选择具有最大级的关键字集,则可确定关键字集的选择,正如在2.3节中描述的程序。
3可选方式
3.1近似函数相关
利用函数相关减少聚合计算量的方法可应用到其中函数相关性由于存在例外而不严格的情形中。例如,在零售链中,可能在“客户ID”和“商店”之间存在微弱的函数相关性,这使得80%的客户只能在一家商店购物。还可能有在数据集中仅具有单一交易的“单个”客户,并因此关于该客户的所有字段均与该客户ID函数相关。通过确定单个客户的数量以及各种函数相关性的强度,输入数据集可分成能被适当处理的一些类。
3.2高阶函数相关
在一些情形中,可利用高阶函数相关性来减少计算量。一些关键字字段可与目标字段和另一个字段的组合函数相关。
例如,如果存在4个非相关维并且期望所有2维聚合,则可能存在对应10次汇总操作的10次聚合。然而,如果维数1-3与维数0和目标字段的组合相关,则涉及维数0的四次汇总操作可压缩成单一汇总操作,并且汇总操作集可以从10减少到7。
3.3实现
上述数据聚合方法可利用在计算机上执行的软件来实现。例如,该软件形成一个或多个计算机程序中的程序,所述一个或多个计算机程序在一个或多个已编程或可编程的计算机系统(其可以是诸如分布式、客户/服务器、或网格的各种结构)上执行,所述已编程或可编程的计算机系统均包括至少一个处理器、至少一个数据存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备或端口、以及至少一个输出设备或端口。该软件可形成较大程序的一个或多个模块,例如该软件提供与计算图形的设计和配置相关的其它服务。可将图形的节点和元素实现为存储在计算机可读取介质中的数据结构或者符合存储在数据库中的数据模型的其它有组织的数据。
该软件可提供在诸如CD-ROM的介质上或通过网络传送(被编码在所传送的信号中)到执行该软件的计算机,该介质可由通用或专用可编程的计算机进行读取。所有功能可在专用计算机上执行,或者利用诸如协处理器的专用硬件来执行。该软件可实现为分布式形式,其中该软件指定的不同的计算部分由不同的计算机执行。每个这样的计算机程序优选地存储在或下载到由通用或专用可编程的计算机可读取的存储介质或设备上(例如固体存储器或介质,或者磁介质或光学介质),用于在该计算机系统读取该存储介质或设备时进行配置并操作该计算机,以执行本文描述的程序。本发明的系统还可实现为计算机可读取的存储介质,配置有计算机程序,其中如此配置该存储介质使得计算机系统以特定和预定方式操作以执行本文描述的功能。
需要理解的是,前述描述意在说明而并非限制本发明的范围,本发明的范围由附加的权利要求书所限定。例如,上述的多个功能步骤可以不同的顺序来执行,实质上并不影响总体处理。其它实施例仍在所附权利要求书的范围内。

Claims (17)

1.一种用于聚合数据的方法,包括:
接受第一数据集(502),该第一数据集包括多个记录,每个记录保存多个字段中每一个字段的值;
从该第一数据集产生第二数据集(512),该第二数据集包括一个或多个聚合记录,该第二数据集的每个聚合记录对应于来自该第一数据集的一个或多个记录,上述被该第二数据集的每个聚合记录所对应的来自该第一数据集的一个或多个记录匹配于与该聚合记录相关联的字段子集中的值;以及
从该第二数据集产生第三数据集(520),该第三数据集包括一个或多个聚合记录,该第三数据集的每个聚合记录对应于该第一数据集的一个或多个聚合记录,上述被该第三数据集的每个聚合记录所对应的该第一数据集的一个或多个聚合记录匹配于与该第三数据集的聚合记录相关联的字段子集中的值;
其中与该第三数据集中聚合记录相关联的聚合值表示对与来自该第一数据集的多个记录相关联的值执行不可级联操作的结果。
2.如权利要求1所述的方法,其中对与来自该第一数据集的多个记录相关联的值执行不可级联操作是由以下各项组成的群组中之一:确定所述值中不同值的个数,确定所述值的中间值,确定所述值的多个极值的和,以及确定所述值的多个和的极值。
3.如权利要求1所述的方法,其中该不可级联操作是这样的,对一组操作数执行该不可级联操作的结果不能分解成以下的操作执行结果:对所述操作数的第一子集执行该操作的第一结果,和对所述操作数的第二子集执行该操作的第二结果;其中所述第一子集和第二子集是互斥的和穷举的。
4.如权利要求1所述的方法,其中所述多个字段中的至少一个字段至少部分地与所述多个字段中的另一个字段函数相关。
5.如权利要求4所述的方法,其中与所述多个字段中至少一个字段相关联的至少一些值依赖于与所述多个字段中另一个字段相关联的对应值。
6.如权利要求1所述的方法,其中从该第二数据集产生该第三数据集包括接收该第二数据集的聚合记录流。
7.一种存储在计算机可读取介质上的软件,包括用于使计算机系统执行以下操作的指令:
接受第一数据集(502),该第一数据集包括多个记录,每个记录保存多个字段中每一个字段的值;
从该第一数据集产生第二数据集(512),该第二数据集包括一个或多个聚合记录,该第二数据集的每个聚合记录对应于来自该第一数据集的一个或多个记录,上述被该第二数据集的每个聚合记录所对应的来自该第一数据集的一个或多个记录匹配于与该聚合记录相关联的字段子集中的值;以及
从该第二数据集产生第三数据集(520),该第三数据集包括一个或多个聚合记录,该第三数据集的每个聚合记录对应于该第一数据集的一个或多个聚合记录,上述被该第三数据集的每个聚合记录所对应的该第一数据集的一个或多个聚合记录匹配于与该第三数据集的聚合记录相关联的字段子集中的值;
其中与该第三数据集中聚合记录相关联的聚合值表示对与来自该第一数据集的多个记录相关联的值执行不可级联操作的结果。
8.一种用于聚合数据的系统,包括:
用于接受第一数据集(502)的装置,该第一数据集包括多个记录,每个记录保存多个字段中每一个字段的值;
用于从该第一数据集产生第二数据集(512)的装置,该第二数据集包括一个或多个聚合记录,该第二数据集的每个聚合记录对应于来自该第一数据集的一个或多个记录,上述被该第二数据集的每个聚合记录所对应的来自该第一数据集的一个或多个记录匹配于与该聚合记录相关联的字段子集中的值;以及
用于从该第二数据集产生第三数据集(520)的装置,该第三数据集包括一个或多个聚合记录,该第三数据集的每个聚合记录对应于该第一数据集的一个或多个聚合记录,上述被该第三数据集的每个聚合记录所对应的该第一数据集的一个或多个聚合记录匹配于与该第三数据集的聚合记录相关联的字段子集中的值;
其中与该第三数据集中聚合记录相关联的聚合值表示对与来自该第一数据集的多个记录相关联的值执行不可级联操作的结果。
9.一种用于聚合包括多个记录的数据的方法,每个记录保存多个字段中每一个字段的值,该方法包括:在考虑所述字段之间的函数相关性的条件下,利用不可级联操作执行在所述记录内字段的多级聚合。
10.如权利要求9所述的方法,其中所述不可级联操作是由以下各项组成的群组中之一:确定所述值中不同值的个数,确定所述值的中间值,确定所述值的多个极值的和,以及确定所述值的多个和的极值。
11.如权利要求9所述的方法,其中该不可级联操作是这样的,对一组操作数执行该不可级联操作的结果不能分解成以下的操作执行结果:对所述操作数的第一子集执行该操作的第一结果,和对所述操作数的第二子集执行该操作的第二结果;其中该第一子集和第二子集是互斥的和穷举的。
12.一种用于聚合数据的方法,包括:
接受第一数据集(302),该第一数据集包括多个记录,每个记录保存多个字段中每一个字段的值;
产生该第一数据集的记录与多个第一关键字集(304)的笛卡尔积(306),每个关键字集表示该第一数据集的字段子集;
从所产生的笛卡尔积产生第二数据集(310),该第二数据集包括一个或多个聚合记录,每个聚合记录对应于来自该第一数据集的一个或多个记录,上述被每个聚合记录所对应的来自该第一数据集的一个或多个记录匹配于与该聚合记录相关联的字段子集中的值;以及
从该第二数据集产生第三数据集(318),该第三数据集包括一个或多个聚合记录,该第三数据集的每个聚合记录对应于该第一数据集的一个或多个聚合记录,上述被该第三数据集的每个聚合记录所对应的该第一数据集的一个或多个聚合记录匹配于与该第三数据集的聚合记录相关联的字段子集中的值。
13.如权利要求12所述的方法,其中产生该第三数据集包括对所产生的笛卡尔积和如下数据集执行连接操作,该数据集的记录包含表示所述多个第一关键字集中之一的第一值和表示多个第二关键字集中之一的第二值,所述多个第二关键字集中的每一个表示所述第二数据集的字段子集;其中该连接操作通过匹配关键字集来连接记录。
14.如权利要求13所述的方法,其中产生该第三数据集包括,对于至少一些已连接的记录,以通配符值替换至少一个所述字段的值。
15.如权利要求12所述的方法,其中产生该第二数据集包括,对于所产生的笛卡尔积的至少一些记录,以通配符值替换至少一个所述字段的值。
16.一种存储在计算机可读取介质上的软件,包括用于使计算机系统执行以下操作的指令:
接受第一数据集(302),该第一数据集包括多个记录,每个记录保存多个字段中每一个字段的值;
产生该第一数据集的记录与多个第一关键字集(304)的笛卡尔积(306),每个关键字集表示该第一数据集的字段子集;
从所产生的笛卡尔积产生第二数据集(310),该第二数据集包括一个或多个聚合记录,每个聚合记录对应于来自该第一数据集的一个或多个记录,上述被每个聚合记录所对应的来自该第一数据集的一个或多个记录匹配于与该聚合记录相关联的字段子集中的值;以及
从该第二数据集产生第三数据集(318),该第三数据集包括一个或多个聚合记录,该第三数据集的每个聚合记录对应于该第一数据集的一个或多个聚合记录,上述被该第三数据集的每个聚合记录所对应的该第一数据集的一个或多个聚合记录匹配于与该第三数据集的聚合记录相关联的字段子集中的值。
17.一种用于聚合数据的系统,包括:
用于接受第一数据集的装置(302),该第一数据集包括多个记录,每个记录保存多个字段中每一个字段的值;
用于产生该第一数据集的记录与多个第一关键字集(304)的笛卡尔积(306)的装置,每个关键字集表示该第一数据集的字段子集;
用于从所产生的笛卡尔积产生第二数据集(310)的装置,该第二数据集包括一个或多个聚合记录,每个聚合记录对应于来自该第一数据集的一个或多个记录,上述被每个聚合记录所对应的来自该第一数据集的一个或多个记录匹配于与该聚合记录相关联的字段子集中的值;以及
用于从该第二数据集产生第三数据集(318)的装置,该第三数据集包括一个或多个聚合记录,该第三数据集的每个聚合记录对应于该第一数据集的一个或多个聚合记录,上述被该第三数据集的每个聚合记录所对应的该第一数据集的一个或多个聚合记录匹配于与该第三数据集的聚合记录相关联的字段子集中的值。
CNB2006800233823A 2005-06-27 2006-06-22 利用综合操作的聚合数据 Active CN100570606C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/169,073 2005-06-27
US11/169,073 US7584205B2 (en) 2005-06-27 2005-06-27 Aggregating data with complex operations

Publications (2)

Publication Number Publication Date
CN101208696A true CN101208696A (zh) 2008-06-25
CN100570606C CN100570606C (zh) 2009-12-16

Family

ID=37568848

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006800233823A Active CN100570606C (zh) 2005-06-27 2006-06-22 利用综合操作的聚合数据

Country Status (8)

Country Link
US (1) US7584205B2 (zh)
EP (2) EP2154618A3 (zh)
JP (1) JP5008662B2 (zh)
KR (1) KR101169295B1 (zh)
CN (1) CN100570606C (zh)
AU (1) AU2006262110B2 (zh)
CA (1) CA2613503C (zh)
WO (1) WO2007002281A2 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622354A (zh) * 2011-01-27 2012-08-01 北京世纪读秀技术有限公司 一种基于特征向量的聚合数据快速查找方法
CN103605651A (zh) * 2013-08-28 2014-02-26 杭州顺网科技股份有限公司 一种基于olap多维分析的数据处理展现方法
CN105373613A (zh) * 2009-04-16 2016-03-02 泰必高软件公司 基于策略的储存结构分布
CN105917336A (zh) * 2014-01-16 2016-08-31 起元技术有限责任公司 数据库键识别
CN108197162A (zh) * 2017-12-12 2018-06-22 上海天旦网络科技发展有限公司 呈现业务交易情况的系统和方法
CN111782661A (zh) * 2020-07-21 2020-10-16 杭州海康威视数字技术股份有限公司 一种数据存储方法、数据查询方法和装置
US11068540B2 (en) 2018-01-25 2021-07-20 Ab Initio Technology Llc Techniques for integrating validation results in data profiling and related systems and methods
US11163670B2 (en) 2013-02-01 2021-11-02 Ab Initio Technology Llc Data records selection

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099674B2 (en) 2005-09-09 2012-01-17 Tableau Software Llc Computer systems and methods for automatically viewing multidimensional databases
US7657503B1 (en) * 2005-11-29 2010-02-02 At&T Corp. System and method for generating statistical descriptors for a data stream
KR101572599B1 (ko) 2007-09-20 2015-11-27 아브 이니티오 테크놀로지 엘엘시 그래프에 기초한 연산에서 데이터 흐름을 관리하는 방법 및 시스템
US20090144307A1 (en) * 2007-11-29 2009-06-04 Robert Joseph Bestgen Performing Hierarchical Aggregate Compression
US8775441B2 (en) 2008-01-16 2014-07-08 Ab Initio Technology Llc Managing an archive for approximate string matching
US8037059B2 (en) * 2008-05-01 2011-10-11 International Business Machines Corporation Implementing aggregation combination using aggregate depth lists and cube aggregation conversion to rollup aggregation for optimizing query processing
CA3014839C (en) 2008-10-23 2019-01-08 Arlen Anderson Fuzzy data operations
AU2015249134B2 (en) * 2008-10-23 2017-06-22 Ab Initio Technology Llc Fuzzy data operations
US9665620B2 (en) * 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
US10614098B2 (en) 2010-12-23 2020-04-07 Mongodb, Inc. System and method for determining consensus within a distributed database
US10262050B2 (en) 2015-09-25 2019-04-16 Mongodb, Inc. Distributed database systems and methods with pluggable storage engines
US8996463B2 (en) 2012-07-26 2015-03-31 Mongodb, Inc. Aggregation framework system architecture and method
US10977277B2 (en) 2010-12-23 2021-04-13 Mongodb, Inc. Systems and methods for database zone sharding and API integration
US10740353B2 (en) 2010-12-23 2020-08-11 Mongodb, Inc. Systems and methods for managing distributed database deployments
US9805108B2 (en) 2010-12-23 2017-10-31 Mongodb, Inc. Large distributed database clustering systems and methods
US8572031B2 (en) 2010-12-23 2013-10-29 Mongodb, Inc. Method and apparatus for maintaining replica sets
US11615115B2 (en) 2010-12-23 2023-03-28 Mongodb, Inc. Systems and methods for managing distributed database deployments
US11544288B2 (en) 2010-12-23 2023-01-03 Mongodb, Inc. Systems and methods for managing distributed database deployments
US10698775B2 (en) 2016-05-31 2020-06-30 Mongodb, Inc. Method and apparatus for reading and writing committed data
US10346430B2 (en) 2010-12-23 2019-07-09 Mongodb, Inc. System and method for determining consensus within a distributed database
US9740762B2 (en) 2011-04-01 2017-08-22 Mongodb, Inc. System and method for optimizing data migration in a partitioned database
US10997211B2 (en) 2010-12-23 2021-05-04 Mongodb, Inc. Systems and methods for database zone sharding and API integration
US10713280B2 (en) 2010-12-23 2020-07-14 Mongodb, Inc. Systems and methods for managing distributed database deployments
AU2015221560C1 (en) * 2011-05-02 2017-07-27 Ab Initio Technology Llc Managing data queries
US9116955B2 (en) * 2011-05-02 2015-08-25 Ab Initio Technology Llc Managing data queries
CN104040544B (zh) 2011-11-15 2018-06-26 起元科技有限公司 基于变体标记网络的数据分群
US9430529B2 (en) * 2011-11-30 2016-08-30 Microsoft Technology Licensing, Llc Techniques for incrementally updating aggregation of states
US10235441B1 (en) * 2012-06-29 2019-03-19 Open Text Corporation Methods and systems for multi-dimensional aggregation using composition
US10169442B1 (en) * 2012-06-29 2019-01-01 Open Text Corporation Methods and systems for multi-dimensional aggregation using composition
US10872095B2 (en) 2012-07-26 2020-12-22 Mongodb, Inc. Aggregation framework system architecture and method
US11403317B2 (en) 2012-07-26 2022-08-02 Mongodb, Inc. Aggregation framework system architecture and method
US11544284B2 (en) * 2012-07-26 2023-01-03 Mongodb, Inc. Aggregation framework system architecture and method
US9633076B1 (en) * 2012-10-15 2017-04-25 Tableau Software Inc. Blending and visualizing data from multiple data sources
US9323748B2 (en) 2012-10-22 2016-04-26 Ab Initio Technology Llc Profiling data with location information
US9430453B1 (en) 2012-12-19 2016-08-30 Emc Corporation Multi-page document recognition in document capture
US9372603B2 (en) 2013-03-12 2016-06-21 Air Liquide Large Industries U.S. Lp Data sampling method for determining salient values in a large data stream
SG11201602296WA (en) 2013-09-27 2016-04-28 Ab Initio Technology Llc Evaluating rules applied to data
CA2929716C (en) 2013-12-06 2021-08-31 Ab Initio Technology Llc Source code translation
US9600342B2 (en) 2014-07-10 2017-03-21 Oracle International Corporation Managing parallel processes for application-level partitions
US10437819B2 (en) 2014-11-14 2019-10-08 Ab Initio Technology Llc Processing queries containing a union-type operation
US10176226B2 (en) * 2014-11-26 2019-01-08 Looker Data Sciences, Inc. Relation aware aggregation (RAA) on normalized datasets
US10417281B2 (en) 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network
US10496669B2 (en) 2015-07-02 2019-12-03 Mongodb, Inc. System and method for augmenting consensus election in a distributed database
US10673623B2 (en) 2015-09-25 2020-06-02 Mongodb, Inc. Systems and methods for hierarchical key management in encrypted distributed databases
US10846411B2 (en) 2015-09-25 2020-11-24 Mongodb, Inc. Distributed database systems and methods with encrypted storage engines
US10776220B2 (en) 2016-06-27 2020-09-15 Mongodb, Inc. Systems and methods for monitoring distributed database deployments
US10866868B2 (en) 2017-06-20 2020-12-15 Mongodb, Inc. Systems and methods for optimization of database operations
US11966568B2 (en) 2018-10-22 2024-04-23 Tableau Software, Inc. Generating data visualizations according to an object model of selected data sources
US11966406B2 (en) 2018-10-22 2024-04-23 Tableau Software, Inc. Utilizing appropriate measure aggregation for generating data visualizations of multi-fact datasets
US11216460B2 (en) * 2019-05-13 2022-01-04 Salesforce.Com, Inc. Updating of a denormalized database object after updating, deleting, or inserting a record in a source database object
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods
US10657018B1 (en) * 2019-08-26 2020-05-19 Coupang Corp. Systems and methods for dynamic aggregation of data and minimization of data loss
US11366858B2 (en) 2019-11-10 2022-06-21 Tableau Software, Inc. Data preparation using semantic roles
US11281668B1 (en) 2020-06-18 2022-03-22 Tableau Software, LLC Optimizing complex database queries using query fusion
US12067013B2 (en) * 2021-06-29 2024-08-20 Microsoft Technology Licensing, Llc. Data aggregation in a hierarchy for query execution

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4121566B2 (ja) * 1993-03-23 2008-07-23 株式会社野村総合研究所 データベースからのデータ抽出方法
US5713020A (en) * 1993-09-02 1998-01-27 Microsoft Corporation Method and system for generating database queries containing multiple levels of aggregation
NL9400727A (nl) 1994-05-03 1995-12-01 Gti Ind Automation Bv Beveiligingssysteem met magnetische logica-schakelingen.
US5537589A (en) * 1994-06-30 1996-07-16 Microsoft Corporation Method and system for efficiently performing database table aggregation using an aggregation index
JP3552339B2 (ja) * 1995-05-30 2004-08-11 富士通株式会社 データベースシステム
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
JPH1049544A (ja) * 1996-08-02 1998-02-20 Nippon Telegr & Teleph Corp <Ntt> 視覚的多次元データ分析支援方法及び装置
US5960435A (en) * 1997-03-11 1999-09-28 Silicon Graphics, Inc. Method, system, and computer program product for computing histogram aggregations
JPH113354A (ja) * 1997-06-13 1999-01-06 Nec Software Ltd データキューブ制御方式
AU761900B2 (en) * 1998-03-27 2003-06-12 International Business Machines Corporation Processing precomputed views
US6279149B1 (en) * 1998-09-24 2001-08-21 International Business Machines Corporation Aggregate structure identification and its application to program analysis
US6282544B1 (en) * 1999-05-24 2001-08-28 Computer Associates Think, Inc. Method and apparatus for populating multiple data marts in a single aggregation process
US6408292B1 (en) 1999-08-04 2002-06-18 Hyperroll, Israel, Ltd. Method of and system for managing multi-dimensional databases using modular-arithmetic based address data mapping processes on integer-encoded business dimensions
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
JP2001243244A (ja) * 2000-02-28 2001-09-07 Hitachi Ltd 多次元データベースの検索方法、検索装置、および多次元データベース検索プログラムを記録したコンピュータ読み取り可能な記録媒体。
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
JP2002024286A (ja) * 2000-06-30 2002-01-25 Hitachi Ltd データ表示方法および装置並びにその処理プログラムを記録した記録媒体
JP3897976B2 (ja) * 2000-12-15 2007-03-28 株式会社日立製作所 多次元データ分析支援方法及びその実施装置並びにその処理プログラムを記録した記録媒体
JP2003141133A (ja) * 2001-11-07 2003-05-16 Hitachi Ltd 多次元データベース処理方法及びその実施システム
JP2004021628A (ja) * 2002-06-17 2004-01-22 Hitachi Ltd 多次元データベース管理方法及びその実施装置並びにその処理プログラム
US7953694B2 (en) * 2003-01-13 2011-05-31 International Business Machines Corporation Method, system, and program for specifying multidimensional calculations for a relational OLAP engine
US20070043627A1 (en) * 2005-08-18 2007-02-22 Cooperman Denise H Interface and method of connecting sellers with consumers seeking home furnishings

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105373613A (zh) * 2009-04-16 2016-03-02 泰必高软件公司 基于策略的储存结构分布
CN105373613B (zh) * 2009-04-16 2019-05-14 泰必高软件公司 基于策略的储存结构分布
CN102622354A (zh) * 2011-01-27 2012-08-01 北京世纪读秀技术有限公司 一种基于特征向量的聚合数据快速查找方法
CN102622354B (zh) * 2011-01-27 2014-08-13 北京世纪读秀技术有限公司 一种基于特征向量的聚合数据快速查找方法
US11163670B2 (en) 2013-02-01 2021-11-02 Ab Initio Technology Llc Data records selection
CN103605651A (zh) * 2013-08-28 2014-02-26 杭州顺网科技股份有限公司 一种基于olap多维分析的数据处理展现方法
CN105917336A (zh) * 2014-01-16 2016-08-31 起元技术有限责任公司 数据库键识别
US11487732B2 (en) 2014-01-16 2022-11-01 Ab Initio Technology Llc Database key identification
CN108197162A (zh) * 2017-12-12 2018-06-22 上海天旦网络科技发展有限公司 呈现业务交易情况的系统和方法
CN108197162B (zh) * 2017-12-12 2020-10-16 上海天旦网络科技发展有限公司 呈现业务交易情况的系统和方法
US11068540B2 (en) 2018-01-25 2021-07-20 Ab Initio Technology Llc Techniques for integrating validation results in data profiling and related systems and methods
CN111782661A (zh) * 2020-07-21 2020-10-16 杭州海康威视数字技术股份有限公司 一种数据存储方法、数据查询方法和装置

Also Published As

Publication number Publication date
KR20080024151A (ko) 2008-03-17
JP2008547131A (ja) 2008-12-25
US7584205B2 (en) 2009-09-01
AU2006262110A2 (en) 2007-01-04
AU2006262110A1 (en) 2007-01-04
US20060294129A1 (en) 2006-12-28
AU2006262110B2 (en) 2010-11-18
WO2007002281A2 (en) 2007-01-04
CA2613503C (en) 2012-10-09
EP2154618A3 (en) 2010-03-03
EP2154618A2 (en) 2010-02-17
WO2007002281A3 (en) 2007-07-26
KR101169295B1 (ko) 2012-07-30
CA2613503A1 (en) 2007-01-04
EP1910942A4 (en) 2009-10-21
CN100570606C (zh) 2009-12-16
EP1910942A2 (en) 2008-04-16
JP5008662B2 (ja) 2012-08-22

Similar Documents

Publication Publication Date Title
CN100570606C (zh) 利用综合操作的聚合数据
CN104737167B (zh) 使用源跟踪剖析数据
JP5372851B2 (ja) データプロファイリング
Jampani et al. Mcdb: a monte carlo approach to managing uncertain data
Gonzalez et al. FlowCube: constructing RFID flowcubes for multi-dimensional analysis of commodity flows
US6775682B1 (en) Evaluation of rollups with distinct aggregates by using sequence of sorts and partitioning by measures
US20080222634A1 (en) Parallel processing for etl processes
US7698314B2 (en) Computer-implemented systems and methods for providing a counting measure
CN106933893B (zh) 多维度数据的查询方法及装置
CN111897804A (zh) 计算机实现的方法、计算系统和计算机可读介质
EP1697866A2 (en) Optimization for aggregate navigation for distinct count metrics
AU2013200067B2 (en) Data profiling
CN106933909B (zh) 多维度数据的查询方法及装置
Adedayo et al. Schema reconstruction in database forensics
Zimmermann Objectively evaluating condensed representations and interestingness measures for frequent itemset mining
Dhamdhere Jyoti et al. A novel methodology of frequent itemset mining on hadoop
CN117785662A (zh) 替换软件的确定方法、装置、电子设备及存储介质
CN116136998A (zh) 一种商品数据分析方法及ai系统
Nayak et al. A Pragmatic Approach on Association Rule Mining and its Effective Utilization in Large Databases
CN106095879A (zh) 一种大数据分析方法和系统
JPH03271840A (ja) スケジュール生成装置

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
ASS Succession or assignment of patent right

Owner name: AB INITIO SOFTWARE CORP.

Free format text: FORMER OWNER: ARCHITEKTEN CO., LTD.

Effective date: 20100407

Owner name: ARCHITEKTEN CO., LTD.

Free format text: FORMER OWNER: AB INITIO SOFTWARE CORP.

Effective date: 20100407

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20100407

Address after: Massachusetts, USA

Patentee after: AB INITIO TECHNOLOGY LLC

Address before: Massachusetts, USA

Patentee before: Archie Taco Ltd.

Effective date of registration: 20100407

Address after: Massachusetts, USA

Patentee after: Archie Taco Ltd.

Address before: Massachusetts, USA

Patentee before: Qiyuan Software Co.,Ltd.