掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明总体上涉及管理和更新缓存的数据,并且更具体地涉及在线分析处理(OLAP)数据立方体的动态增量更新。

背景技术

商业情报(BI)是一种用于分析和聚合来自交易数据库的数据的技术驱动的过程,其中定期地(通常是是每晚一次)准备或刷新数据立方体。在线分析处理(OLAP)是许多BI应用背后的技术,其中一个或多个计算机处理器执行数据的多维分析。在OLAP期间收集的所有数据都被收集到事实表中。大多数生成大量数据的客户系统不能得到“交易地”分析或评估。因而,通常将OLAP数据聚合成OLAP数据立方体。在此过程期间生成的OLAP数据立方体可作为仪表板或报告展示给产品经理或客户群,以便他们收集业务见解。可以通过OLAP分析的数据的示例,包括来自在线门户和搜索引擎的web日志的点击流数据、银行业务、商店物流、销售点数据等,这些数据然后作为报告被提供给用户。通常,一个或多个处理器执行批处理作业以读取交易数据、挖掘数据日志、执行计算、求和、聚合等,并且每晚、每周、每月或每年将结果加载到OLAP数据立方体中。

发明内容

本发明提供了如权利要求1所述的方法,以及相应的系统和计算机程序。

附图说明

在下文的详细描述中,参照所提及的多个附图,通过本发明的示例性实施例的非限制性示例来描述本发明。

图1示出根据本发明实施例的计算基础设施。

图2示出根据本发明各方面的示例性环境。

图3A和3B示出根据本发明各方面的方法的步骤的流程图。

图4示出根据本发明各方面的示例性方法的流程图。

图5是根据本发明实施例的计算机功能的增量聚合的说明性示例。

图6是动态增量可刷新数据立方体高速缓存子集的框图。

具体实施方式

本发明总体上涉及管理和更新缓存的数据,并且更具体地涉及在线分析处理(OLAP)数据立方体的动态增量更新。如上所述,通常,一个或多个在线分析处理(OLAP)计算机处理器执行批处理作业以读取交易数据、挖掘数据记录、执行计算、求和、聚合等,并且每晚、每周、每月或每年将结果加载到OLAP数据立方体中。这样的批处理作业是高度资源密集的,因为有时总计达数百兆兆(terabytes)字节的数据的巨大数据集被从盘中读取、加载到存储器结构上、在数据计算中利用、以及加载到目标数据立方体中。通常,批量OLAP更新是在非高峰时间期间执行的,使得数据库性能在高峰营业时间期间不受影响。然而,随着待分析的数据量的增加,处理这些大数据集所需的时间也增加,并且可能运行到正常或高峰营业时间,从而导致处理中断,可能导致重大业务问题。结果,批处理作业的调度通常不断缩小,因此OLAP计算系统总是试图赶上批处理作业的处理。

针对大数据集的问题的一种替代解决方案是,使OLAP计算系统将数据转移到另一服务器以进行处理。这种方法需要额外的硬件、软件和维护工作,并且增加了总的OLAP成本。一些实施例已经尝试通过增加计算机功能并将聚合作业委派给大数据平台(例如,Apache Hadoop

目前,没有基于交易馈送(传入的交易数据)递增地且准确地保持OLAP数据立方体最新的机制。有利地,本发明的实施例用具有创造性编程的专用计算设备来向OLAP计算系统添加功能,以基于实时交易事件数据执行增量式OLAP数据立方体更新。实时交易事件数据可以随数据的生成而被连续获取。在各方面,本发明的实施例提供了一种可扩展的方法来解决资源密集型OLAP批处理作业和OLAP数据立方体生成的技术问题。本发明的实施例利用新类型的数据(例如,识别用于更新的目标OLAP数据立方体),利用新过程(例如,将聚合的实时传入字段数据(field data))与聚合的字段数据进行比较以产生更新的OLAP数据立方体)。在实施例中,OLAP计算系统使得能够从连续更新的聚合数据立方体直接生成报告和/或仪表板。此外,本发明的实施例构成了对OLAP计算机系统的改进,因为根据本发明各方面的OLAP计算系统与传统批处理型OLAP计算系统相比需要更少的处理资源。即,本发明的实施例消除了每次作业运行时都要执行从头开始构建大量OLAP数据立方体的大批作业的需要。

本发明可以是任何可能的集成技术细节水平的系统、方法和/或计算机程序产品。所述计算机程序产品可包含上面具有计算机可读程序指令的计算机可读存储介质(或介质),所述计算机可读程序指令用于致使处理器执行本发明的各方面。

计算机可读存储介质可以是可以保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适的组合。计算机可读存储介质的更具体例子的非穷举列表包括以下:便携式计算机盘,硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存),静态随机存取存储器(SRAM)、便携式致密盘只读存储器(CD-ROM),数字通用盘(DVD)、记忆棒、软盘、机械编码设备(诸如穿孔卡片)或具有记录在其上的指令的凹槽中的凸起结构,以及上述的任意合适的组合。如本文中所使用的计算机可读存储介质不应被解释为瞬态信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过导线传输的电信号。

本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理设备,或通过网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。

用于执行本发明的操作的计算机可读程序指令可以是汇编指令,指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,集成电路的配置数据,或以一种或多种编程语言的任何组合编写的源代码或目标代码,包括面向对象的Smalltalk、C++等编程语言,以及过程式编程语言,例如“C”编程语言或类似的编程语言。计算机可读程序指令可完全在用户的计算机上执行、部分在用户的计算机上执行、作为独立软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA))可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的方面。

本文中参考根据本发明的实施例的方法、设备(系统)和计算机程序产品的流程图说明和/或框图描述本发明的方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令来实现。

这些计算机可读程序指令可以被提供给通用计算机的处理器,专用计算机或其他可编程数据处理装置,以产生机器,其通过计算机或其他可编程数据处理装置的处理器执行,创建用于实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的装置。这些计算机可读程序指令还可存储在可指导计算机的计算机可读存储介质中,可编程数据处理装置,和/或以特定方式起作用的其他设备,使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各方面的指令。

计算机可读程序指令还可以加载到计算机、其他可编程数据处理装置上,或使得在计算机上执行一系列操作步骤的其他装置,其他可编程装置或其他设备,以产生计算机实现的过程,使得在计算机上执行的指令,其他可编程装置或其他设备实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图图示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。对此,流程图或框图中的每个方框可以代表模块、段或指令的一部分,其包括用于实现规定的逻辑功能的一个或多个可执行指令。在一些替代实施例中,框中所标注的功能可以不以图中所标注的次序发生。例如,取决于所涉及的功能,连续示出的两个块可以基本上同时执行,或者这些块有时可以以相反的顺序执行。还将注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合可以由基于专用硬件的系统来实现,所述基于专用硬件的系统执行指定的功能或动作或执行专用硬件与计算机指令的组合。

现在参见图1,示出了计算基础设施的示例的示意图。计算基础结构10仅是合适的计算基础结构的一个实例,并且不旨在对在此描述的本发明的实施例的使用范围或功能提出任何限制。无论如何,计算基础设施10能够被实现和/或执行上文阐述的功能中的任何功能。

在计算基础结构10中存在计算机系统(或服务器)12,其可与许多其他通用或专用计算系统环境或配置一起操作。可适合于与计算机系统12一起使用的众所周知的计算系统、环境和/或配置的实例包含但不限于个人计算机系统、服务器计算机系统、瘦客户机、厚客户机,手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品,网络PC、小型计算机系统、大型计算机系统和包括任何上述系统或设备的分布式云计算环境,等等。

计算机系统12可在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般上下文中描述。一般而言,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统12可在其中任务由通过通信网络链接的远程处理设备执行的分布式云计算环境中实践。在分布式云计算环境中,程序模块可位于包括存储器存储设备的本地和远程计算机系统存储介质两者中。

如图1所示,计算基础设施10中的计算机系统12以通用计算设备的形式示出。计算机系统12的组件可包含(但不限于)一个或一个以上处理器或处理单元(例如,CPU)16、系统存储器28和将包含系统存储器28的不同系统组件耦合到处理器16的总线18。

总线18代表若干类型的总线结构中的任一种总线结构中的一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任一种的处理器或局部总线。作为示例而非限制,此类架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线。

计算机系统12通常包括各种计算机系统可读介质。这样的介质可以是可由计算机系统12访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质两者。

系统存储器28可包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统12还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅通过举例,存储系统34可以被提供用于从不可移动、非易失性磁介质(未示出,并且通常被称为“硬盘驱动器”)读取和向其写入。尽管未示出,可以提供用于读写可移动非易失性磁盘(例如,“软盘”)的磁盘驱动器以及用于读写诸如CD-ROM、DVD-ROM或其他光学介质之类的可移动非易失性光盘的光盘驱动器。在这样的实例中,每一个都可以通过一个或多个数据介质接口连接到总线18。如下面将进一步描绘和描述的,存储器28可以包括至少一个程序产品,该程序产品具有被配置为执行本发明的实施例的功能的程序模块的集合(例如,至少一个)。

具有一组(至少一个)程序模块42的程序/实用工具40以及操作系统、一个或多个应用程序、其他程序模块和程序数据可以通过示例而非限制的方式存储在存储器28中。操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一者或其某一组合可包含联网环境的实施例。程序模块42通常执行本发明所描述的实施例的功能和/或方法。

计算机系统12还可以与诸如键盘、定点设备、显示器24等的一个或多个外部设备14,使得用户能够与计算机系统12交互的一个或多个设备,和/或使得计算机系统12能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以通过输入/输出(I/O)接口22发生。此外,计算机系统12可通过网络适配器20与诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网)之类的一个或多个网络通信。如图所示,网络适配器20通过总线18与计算机系统12的其他部件通信。应当理解,虽然未示出,但是其他硬件和/或软件组件可以与计算机系统12结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据归档存储系统等。

图2示出了根据本发明的方面的示例性在线分析处理(OLAP)环境50。OLAP环境50包括与一个或多个参与者计算设备60、一个或多个交易计算设备62和OLAP计算系统64(由虚线示为与参与者计算设备60和交易计算设备62分离)通信的网络55。所示的示范性OLAP计算系统64包括事件处理器66、数据存储器缓冲区高速缓存68、聚合计算引擎70和聚合立方体定义提取器72。OLAP计算系统64可包括图1的至少一个计算机系统12,且所述至少一个计算机系统12可通过图1的网络适配器20连接到网络55。OLAP计算系统64可以被配置为作为商业情报系统基础设施的一部分的一个或多个专用计算设备。例如,OLAP计算系统64可被配置为分析来自远程交易计算设备62的交易事件数据库74的实时交易事件数据,以产生增量OLAP数据立方体更新,以存储在数据存储器缓冲区高速缓存68的聚合OLAP数据立方体高速缓存76中。OLAP计算系统64可被配置为同时与多个不同参与者计算设备60和交易计算设备62通信,以向相应参与者计算设备60的报告模块78提供客户特定的更新的OLAP数据立方体。

网络55可以是任何合适的通信网络或网络的组合,诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网)。参与者计算设备60可以是图1的计算设备12的形式,并且可以是台式计算机、膝上型计算机、平板计算机、智能电话等。在实施例中,参与者计算设备60通过报告模块78运行应用程序以便以报告和/或仪表板的形式向用户提供商业情报数据。

仍参见图2,事件处理器66可包括被配置为执行本文描述的一个或多个功能的多个计算模块,其中计算模块可包括由事件处理器66执行的一个或多个程序模块(例如,图1的程序模块42)。在实施例中,事件处理器66的事件存储模块80被配置为从一个或多个交易计算设备62接收实时交易事件数据,并将交易事件数据存储在事实表数据库82中的一个或多个事实表中。来自事实表数据库82的数据可用于更新数据存储器缓冲区高速缓存68的数据块高速缓存84。在各方面,事件处理器66的解析器和提取模块86解析传入的交易事件数据并提取数据字段(data fields)以供传送给聚合计算引擎70。

继续参见图2,聚合计算引擎70可包括被配置为执行本文描述的一个或多个功能的聚合模块88,其中聚合模块88可包括由聚合计算引擎70执行的一个或多个程序模块(例如,图1的程序模块42)。在各实施例中,聚合模块88被配置为通过标准查询语言(SQL)查询(SQL代码)获得数据立方体的列表,识别要针对每个SQL查询执行的聚合计算函数(例如,SUM、MIN、MAX、AVERAGE、MEDIAN、VARIANCE等),以及使用更新的聚合字段数据库90中的当前聚合值和(来自传入交易事件数据的)传入字段的值来递增地计算聚合(执行聚合计算函数)。在各方面,聚合模块88基于增量计算来更新更新的聚合字段数据库90中的聚合字段。在各实施例中,聚合模块88从聚合立方体定义提取器72获得SQL查询。

仍参见图2,聚合立方体定义提取器72可包括定义提取模块92,该定义提取模块被配置为执行本文描述的功能中的一个或多个,其中定义提取模块92可包括由聚合立方体定义提取器72执行的一个或多个程序模块(例如,图1的程序模块42)。在实施例中,定义提取模块92从更新的聚合字段数据库90提取OLAP数据立方体定义,并将OLAP数据立方体定义提供给聚合计算引擎70。

在实施例中,OLAP计算系统64可包括比图2中所示的那些组件更多或更少的组件。在实施例中,可以将单独的组件集成到单个计算组件或模块中。附加地或可替代地,单个组件可以被实现为多个计算组件或模块。

此外,OLAP环境50中的设备和/或网络的数量不限于图2中所示的数量。实际上,OLAP环境50可以包括额外的设备和/或网络;更少的设备和/或网络;不同的设备和/或网络;或与图2中所示不同地安排的设备和/或网络。另外,在一些实施例中,OLAP环境50的一个或多个设备可执行被描述为由OLAP环境50的另一个或多个设备执行的一个或多个功能。OLAP环境50的设备可通过有线连接、无线连接或有线和无线连接的组合而互连。

图3A和3B示出了根据本发明的各方面的方法的流程图。图3的方法的步骤可以在图2中示出的OLAP环境50中执行,并且参考图2中示出的元件进行描述。

首先参见图3A,在步骤300,事件处理器66从一个或多个交易计算设备62接收实时交易事件数据。在实施例中,事件处理器66的事件存储模块80接收实时交易事件数据。交易事件数据可包括例如来自在线门户或搜索引擎的web日志的点击流数据、银行交易、商店物流、销售点数据等。在各方面,交易事件数据包括实时事件数据,而不是随时间推移所收集的聚合数据。步骤300可包括从多个源(例如,远程交易计算设备)接收实时交易事件数据。在实施例中,步骤300是在连续的而非周期性的基础上执行的。

在步骤301,事件处理器66从传入的交易事件数据中提取各个字段数据,并将交易事件数据存储在事实表数据库82的一个或多个事实表中。在实施例中,事件处理器66的事件存储模块80执行步骤301。在各方面,事件存储模块80基于预定目标OLAP数据立方体(下文称为“数据立方体”)及其组成的SQL查询的列表,将交易事件数据存储在事实表数据库82中。如本文所使用的,术语数据立方体(OLAP数据立方体或目标数据立方体)指的是出于报告目的以多维形式存储数据的方法,其中数据立方体包含表示用户感兴趣的事实的数字值,其被组织在数据字段(感兴趣的数据字段)中。事件处理器66感兴趣的数据字段可构成交易事件数据中的所有可用数据字段,或可构成少于交易事件数据中的所有可用数据字段。出于说明性目的,在下面的表1中示出了示范性事实表。

表1:事实表

在步骤302,可以将来自事实表数据库82的最近使用的(MRU)数据存储在数据存储器缓冲区高速缓存68的数据块高速缓存84中。在实施例中,数据存储器缓冲区高速缓存68从事实表数据库82确定MRU数据,并且将其存储在数据块高速缓存84中。在步骤302的执行中可以利用常规的MRU数据存储技术。

在步骤303,聚合计算引擎70获得要计算的目标数据立方体的列表,每个目标数据立方体与至少一个SQL查询相关联。例如,聚合计算引擎70可以确定要计算一个数据立方体,其中该数据立方体具有与其相关联的10个SQL查询。聚合计算引擎70可从存储在聚合计算引擎70中的预定的数据立方体列表或从远程计算设备(例如,交易计算设备62)接收的数据立方体列表确定数据立方体列表。

在步骤304,聚合立方体定义提取器72基于在步骤303获得的目标数据立方体的列表来从更新的聚合字段数据库90提取SQL查询及其定义的列表。即,对于需要被计算的每个目标数据立方体,聚合立方体定义提取器72提取标识所需计算类型的相关联的SQL查询定义的列表。在实施例中,聚合立方体定义提取器72标识更新的聚合字段数据库90与聚合数据立方体定义之间的关系。如果在更新的聚合字段数据库90与数据立方体定义之间存在一个或多个关系,则聚合计算引擎70执行在线计算/增量聚合以更新聚合OLAP数据立方体高速缓存76,如以下步骤305-307中详述的。

在步骤305,聚合计算引擎70基于在步骤304提取的定义识别在步骤304提取的每个SQL查询的聚合计算函数的列表。即,在步骤305,聚合计算引擎70从聚合立方体定义提取器72接收SQL查询定义,并基于此标识目标数据立方体的每个SQL查询的聚合计算函数的列表。聚合计算函数的数量和类型可以变化,并且可以包括通常在商业情报分析期间执行的计算函数,诸如SUM、MINIMUM(MIN)、MAXIMUM(MAX)、AVERAGE(AVG)、MEDIAN、VARIANCE等。

在步骤306,对于SQL查询中的每个字段,聚合计算引擎70使用来自更新的聚合字段数据库90的当前聚合值和传入的单个字段的值来递增地计算聚合计算函数(在步骤305识别)。聚合计算引擎70可以从更新的聚合字段数据库90获得当前聚合值,并且将当前聚合值与在步骤300接收的相关联的传入的单个字段值进行比较。例如,对于MIN的聚合计算函数(即,计算最小值),聚合计算引擎70可以检查传入的单个字段值是否小于更新的聚合字段数据库90中的当前MIN值。在另一示例中,为了计算MAX(即,计算最大值),聚合计算引擎70可以检查传入的单个字段值是否大于更新的聚合字段数据库90中的当前MAX值。在又一示例中,为了计算AVG,聚合计算引擎70可以用(当前AVG+传入的单个字段值)÷(当前行计数+1)来重新计算平均值。

在步骤307,聚合计算引擎70基于在步骤306执行的增量计算来更新更新的聚合字段数据库90中的聚合字段。在实施例中,聚合模块88执行步骤307。

在步骤308,对于在步骤303获得的每个目标数据立方体重复步骤303-307。应当理解,步骤303-307可针对多个感兴趣的目标数据立方体(将由OLAP计算系统64计算的目标数据立方体)同时执行。

转到图3B,图3A的方法在步骤309继续。在步骤309,基于MRU算法将更新的聚合字段数据库90的MRU数据立方体上传到数据存储器缓冲区高速缓存68的聚合OLAP数据立方体高速缓存76。步骤309可以持续地由数据存储器缓冲区高速缓存68实现。在各方面,聚合OLAP数据立方体高速缓存76可由一个或多个第三方(例如,参与者计算设备60)访问。

在步骤310,数据存储缓冲器高速缓冲存储器68确定可用存储器不足,并基于最近最少使用(LRU)算法清除数据存储器缓冲区高速缓存68中的存储空间。在步骤310的实施中,数据存储器缓冲区高速缓存68可利用现有的存储器清除方法和工具。

在步骤311,聚合OLAP数据立方体高速缓存76将更新的数据立方体的形式的报告数据提供给一个或多个参与者计算设备60。在实施例中,一个或多个参与者计算设备60周期性地访问聚合OLAP数据立方体高速缓存76,以获得参与者感兴趣的更新的数据立方体。在实施例中,聚合OLAP数据立方体高速缓存76周期性地向一个或多个参与者计算设备60发送报告数据。

在步骤312,参与者计算设备60的报告模块78利用程序应用基于在步骤311获得的报告数据生成并向用户显示报告和/或仪表板。在步骤312的实施中可以使用多种现有的商业情报报告技术。

在步骤313,连续地重复步骤300-312。因此,图3A和3B的方法允许OLAP数据立方体的连续增量更新以提供最新的商业情报,而没有与商业情报数据的大批量处理相关联的延迟。虽然图3A和3B的步骤被描述为由事件处理器66、聚合计算引擎70和聚合立方体定义提取器72执行,但是应当理解,OLAP环境50的各种元件都可以执行本发明的多个方法步骤。

图4示出了根据本发明的方面的示例性方法的流程图。在图3A和3B中阐述了图4中所表示的步骤。如图4所示,实时交易事件数据被连续馈送至事件处理器66,事件处理器66解析数据并提取单个字段数据以由聚合计算引擎70使用,例如,如图3A的步骤300和301所述。根据图3A的步骤301,从实时交易事件数据提取的字段数据可以被存储在事实表数据库82中,并且根据图3A的步骤302,来自事实表数据库82的MRU事实数据被高速缓存在数据块高速缓存84中。聚合立方体定义提取器72读取聚合OLAP数据立方体高速缓存76中的目标数据立方体定义,并将SQL查询和定义馈送到聚合计算引擎70,例如如图3A的步骤304处所描述的。聚合计算引擎70利用与目标数据立方体相关联的SQL查询和定义来计算对目标数据立方体的更新。具体地,对于每个目标数据立方体,聚合计算引擎70获得相关联的SQL查询,识别用于每个SQL查询的聚合计算函数,并且计算每个聚合函数(例如,MIN、MAX、AVG)以获得更新的字段数据,例如,如图3A的步骤305-306所述。更新的字段数据随后与适当的数据立方体400一起高速缓存在聚合OLAP数据立方体高速缓存76中,其中它可在任何时间由一个或多个参与者计算设备60访问,例如如图3A的步骤311所述。有利地,通过本发明的实施例,不需要执行巨大的批处理作业,所述批处理作业将在每次OLAP作业运行时从头开始构造整个数据立方体。本发明的实施例使得OLAP数据立方体聚合能够实时发生。因此,商业情报以接近实时的速度可用并且没有传统聚合计算作业严重依赖的巨大量的计算和存储资源。

图5是根据本发明的实施例的计算机功能的增量聚合的说明性示例。图5的聚合可使用关于图3A和3B所述的方法来执行。

表500代表在OLAP计算系统64处理传入交易事件记录#99之前每月银行交易的聚合计算,其中表500存储于更新的聚合字段数据库90中。表501代表由事件处理器66根据图3A的步骤301提取并且存储在事实表数据库82中的每日银行交易的传入交易事件记录#99。表502代表在OLAP计算系统64处理传入交易事件记录#99之后每月银行交易的聚合计算。在这个实例中,聚合计算引擎70使用来自由表500代表的更新的聚合字段数据库90的当前聚合值和来自如504处所示的传入字段tra_amt的值(例如,如图3A的步骤306所描述的)来递增地计算聚合计算函数SUM(求和)和MEDIAN。如图5所示,聚合计算引擎70执行求和函数,其中,将来自表500的交易额23,415,016.56与表5的新交易额14,576.33相加,以得出总交易额23,422,872.59。因此,根据图3A的步骤307,用新交易额23、422、872.59更新表502中的sum(tra_amt)字段。同样地,聚合计算引擎70执行中值函数,其中用表500的中值交易额11571.78和表501的交易额14576.33计算处新的中值交易额9,713.90。因此,根据图3A的步骤307,用新中值交易额9,713.90更新表502中的Median(tra_amt)字段。

图6是动态增量可刷新数据立方体高速缓存子集的框图。图6的框图可以利用图2的OLAP环境50的组件来执行。

图6示出了包括交易工作负荷600和数据库交易日志601的交易事件数据库74的子集。来自交易事件数据库74的数据库交易日志601的数据可被存储在事件处理器66的交易日志存储库602中。从事件处理器66处的交易日志存储库602获得的目标聚合立方体的列表603被用于提取元数据604,而提取元数据604由提取表列表605使用。在607,基于所提取列列表606和目标聚合立方体的列表603来提取来自交易日志的列值。目标聚合立方体的列表603被用于名称为聚合立方体的元数据609的列中的聚合立方体的索引608中。在610,从获取元数据604、提取表列表605和提取列列表606获得立方体的元数据和立方体SQL定义。在612,聚合计算引擎70从每个传入字段交易行的立方体的元数据611获得聚合函数(例如,SUM、DISTINCT、MIN、MAX、AVG、MEDIAN等)。在613,由聚合计算引擎70计算更新的聚合值。在614,将增量立方体更新应用于由数据立方体615A、615B和615C表示的相应目标数据立方体615。

在实施例中,服务提供商可以提供执行本文所描述的过程。在这种情况下,服务提供者可以为一个或多个客户创建、维护、部署、支持等执行本发明的处理步骤的计算机基础设施。这些客户可以是例如使用技术的任何商家。作为回报,服务提供商可以根据订阅和/或费用协议从消费者接收支付,和/或服务提供商可以从向一个或多个第三方的广告内容的销售中接收支付。

在又一实施例中,本发明提供了一种用于在线分析处理(OLAP)数据立方体的动态增量更新的计算机实现的方法。在这种情况下,可提供诸如计算机系统12(图1)的计算机基础设施,并且可获得(例如,创建、购买、使用、修改等)用于执行本发明的过程的一个或多个系统并将其部署到计算机基础设施。就此而言,系统的部署可包括以下中的一个或多个:(1)将程序代码从计算机可读介质安装在诸如计算机系统12(如图1所示)的计算设备上;(2)将一个或多个计算设备添加到计算机基础设施;以及(3)结合和/或修改计算机基础设施的一个或多个现有系统以使得计算机基础设施能够执行本发明的过程。

相关技术
  • 数据立方体的动态增量更新
  • 一种基于动态增量更新的上下文推荐方法
技术分类

06120112211271