CN112236761B - 数据立方体的动态增量更新 - Google Patents

数据立方体的动态增量更新 Download PDF

Info

Publication number
CN112236761B
CN112236761B CN201980035768.3A CN201980035768A CN112236761B CN 112236761 B CN112236761 B CN 112236761B CN 201980035768 A CN201980035768 A CN 201980035768A CN 112236761 B CN112236761 B CN 112236761B
Authority
CN
China
Prior art keywords
data
aggregate
updated
olap
computer
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.)
Active
Application number
CN201980035768.3A
Other languages
English (en)
Other versions
CN112236761A (zh
Inventor
S·拉奥
V·帕瑞卡
R·C·帕萨克
R·K·高尔
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.)
Qindarui Co
Original Assignee
Qindarui Co
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 Qindarui Co filed Critical Qindarui Co
Publication of CN112236761A publication Critical patent/CN112236761A/zh
Application granted granted Critical
Publication of CN112236761B publication Critical patent/CN112236761B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2264Multidimensional index structures
    • 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/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • 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/23Updating
    • G06F16/2393Updating materialised views
    • 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
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了用于在线分析处理(OLAP)数据立方体的动态增量更新的系统和方法。在实施例中,一种计算机实现的方法,包括:接收包括多个数据字段的实时交易事件数据;标识要被更新的目标数据立方体的多个标准查询语言(SQL)查询中的每一个的聚合计算函数,其中所述目标数据立方体呈多维形式,用于以在字段中组织的数值的形式存储OLAP数据;基于从更新的聚合字段数据库获得的当前聚合值和所述多个数据字段之一的值,递增地计算所述聚合计算函数;针对所述多个SQL查询中的每一个重复所述增量计算以获得所述目标数据立方体的更新的字段数据;以及用所述更新的字段数据来更新所述更新的聚合字段数据库。

Description

数据立方体的动态增量更新
技术领域
本发明总体上涉及管理和更新缓存的数据,并且更具体地涉及在线分析处理(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 HadoopTM)上的数据群集来解决这个问题。该解决方案需要将大量数据从关系数据库管理系统(RDBMS)转移到基于Hadoop分布式文件系统(HDFS)的集群。该解决方案在准备这些HDFS群集的硬件和软件方面也需要大量投资。针对这个解决方案的文件卸载和传输也是一个耗时的步骤,它不解决问题的根本原因,也无法提供可扩展的解决方案。
目前,没有基于交易馈送(传入的交易数据)递增地且准确地保持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中示出了示范性事实表。
表名 列名 列名 列名 列名 列名 列名 列名 列名
cust_locker cust_id Br_id acc_id lock_id locker_charges
cut_tran_chg cust_id Br_id acc_id tran_id tran_chr_amt
cust_cheqye_tran cust_id Br_id acc_id chq_id chq_amt
Dailytransaction cust_id Br_id acc_id card_id tra_amt tra_type ATM_id merchant_Id
Cust_FD cust_id Br_id acc_id FD_no FD_amt
cust_invst cust_id Br_id acc_id invst_id invst_amt
表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)结合和/或修改计算机基础设施的一个或多个现有系统以使得计算机基础设施能够执行本发明的过程。

Claims (8)

1.一种计算机实现的方法,包括:
从一个或多个远程交易计算设备接收实时交易事件数据,所述实时交易事件数据包括含有值的多个数据字段;
标识要被更新的目标数据立方体的多个标准查询语言(SQL)查询中的每一个的聚合计算函数,其中所述目标数据立方体呈多维形式,用于以被组织在字段中的数字值的形式存储在线分析处理(OLAP)数据;
基于从更新的聚合字段数据库获得的当前聚合值和所述多个数据字段之一的值,递增地计算所述聚合计算函数;
针对所述多个SQL查询中的每一个重复增量计算以获得所述目标数据立方体的更新的字段数据;并且
用所述更新的字段数据更新所述更新的聚合字段数据库,
其中,接收实时交易事件数据和递增计算聚合计算函数是持续地动态执行的。
2.如权利要求1所述的方法,进一步包括从所述实时交易事件数据提取所述多个数据字段。
3.如权利要求2所述的方法,进一步包括用所述多个数据字段更新事实表数据库。
4.如权利要求1所述的方法,进一步包括标识所述要被更新的目标数据立方体。
5.如权利要求1所述的方法,进一步包括从所述更新的聚合字段数据库提取所述SQL查询的定义。
6.如权利要求1所述的方法,进一步包括:向远程参与者计算设备提供来自所述更新的聚合字段数据库的报告数据以用于商业情报报告。
7.一种系统,包括被适配成用于执行根据以上任一方法权利要求所述的方法的所有步骤的装置。
8.一种计算机程序,包括用于当在计算机系统上执行所述计算机程序时执行根据以上任一方法权利要求所述的方法的所有步骤的指令。
CN201980035768.3A 2018-06-27 2019-06-19 数据立方体的动态增量更新 Active CN112236761B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/020,246 2018-06-27
US16/020,246 US10740356B2 (en) 2018-06-27 2018-06-27 Dynamic incremental updating of data cubes
PCT/IB2019/055163 WO2020003063A1 (en) 2018-06-27 2019-06-19 Dynamic incremental updating of data cubes

Publications (2)

Publication Number Publication Date
CN112236761A CN112236761A (zh) 2021-01-15
CN112236761B true CN112236761B (zh) 2023-12-22

Family

ID=68984720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980035768.3A Active CN112236761B (zh) 2018-06-27 2019-06-19 数据立方体的动态增量更新

Country Status (5)

Country Link
US (1) US10740356B2 (zh)
JP (1) JP2021529367A (zh)
CN (1) CN112236761B (zh)
GB (1) GB202100026D0 (zh)
WO (1) WO2020003063A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10715394B2 (en) 2018-10-29 2020-07-14 Sap Portals Israel Ltd. Data aggregation based on a heirarchical tree
CN112307057A (zh) * 2020-10-27 2021-02-02 北京健康之家科技有限公司 数据的处理方法及装置、电子设备、计算机存储介质
CN112765282B (zh) * 2021-01-18 2023-11-28 恒安嘉新(北京)科技股份公司 一种数据联机分析处理方法、装置、设备及存储介质
CN113434509B (zh) * 2021-07-02 2023-07-18 挂号网(杭州)科技有限公司 一种增量索引的更新方法、装置、存储介质及电子设备
US11947817B2 (en) * 2021-11-15 2024-04-02 Microstrategy Incorporated Memory mapping to enhance data cube performance
CN116756139B (zh) * 2023-05-12 2024-04-23 中国自然资源航空物探遥感中心 一种数据索引方法、系统、存储介质和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101111838A (zh) * 2004-11-30 2008-01-23 科格洛斯公司 多维企业软件系统中的自动关系模式生成
CN102360379A (zh) * 2011-10-10 2012-02-22 浙江鸿程计算机系统有限公司 一种多维数据立方体增量聚合及查询优化方法
CN103870571A (zh) * 2014-03-14 2014-06-18 华为技术有限公司 多维联机分析处理系统中的立方体重构方法和装置
CN104750776A (zh) * 2013-12-30 2015-07-01 Sap欧洲公司 使用元数据访问数据库平台中的信息内容
CN107169070A (zh) * 2017-05-08 2017-09-15 山大地纬软件股份有限公司 一种基于大数据的社保指标仓库的构建系统及其方法

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6877006B1 (en) 2000-07-19 2005-04-05 Vasudevan Software, Inc. Multimedia inspection database system (MIDaS) for dynamic run-time data evaluation
US7698348B2 (en) 2003-12-19 2010-04-13 Kinaxis Holdings Inc. Extended database engine providing versioning and embedded analytics
DE602004024293D1 (de) * 2004-06-23 2010-01-07 Sap Ag System und Verfahren zur Datenverarbeitung
US7698349B2 (en) 2005-05-25 2010-04-13 Microsoft Corporation Dimension member sliding in online analytical processing
US8849745B2 (en) 2005-12-23 2014-09-30 International Business Machines Corporation Decision support methods and apparatus
WO2008044227A2 (en) * 2006-07-17 2008-04-17 Open Pricer Customer centric revenue management
US20090287666A1 (en) * 2008-05-13 2009-11-19 International Business Machines Corporation Partitioning of measures of an olap cube using static and dynamic criteria
US20100228524A1 (en) 2009-03-06 2010-09-09 Bryan Jay Bain Sports analytics: use of a multi-dimensional database technology in the analysis of sports metrics related data
US10346375B2 (en) 2012-04-26 2019-07-09 Entit Software Llc In-database parallel analytics
US20140040237A1 (en) 2012-07-31 2014-02-06 Qiming Chen Database retrieval in elastic streaming analytics platform
US8631034B1 (en) * 2012-08-13 2014-01-14 Aria Solutions Inc. High performance real-time relational database system and methods for using same
US10430406B2 (en) * 2012-08-13 2019-10-01 Aria Solutions, Inc. Enhanced high performance real-time relational database system and methods for using same
US9996584B2 (en) * 2012-08-13 2018-06-12 Aria Solutions, Inc. High performance real-time relational database system and methods for using same
US9405812B2 (en) 2012-10-22 2016-08-02 Platfora, Inc. Systems and methods for providing performance metadata in interest-driven business intelligence systems
US20140136553A1 (en) 2012-11-13 2014-05-15 International Business Machines Corporation Appliance for accelerating graph database management and analytics systems
US9063960B2 (en) 2012-11-30 2015-06-23 Symantec Corporation Systems and methods for performing customized large-scale data analytics
US9454573B1 (en) 2013-02-25 2016-09-27 Emc Corporation Parallel processing database system with a shared metadata store
US8977600B2 (en) 2013-05-24 2015-03-10 Software AG USA Inc. System and method for continuous analytics run against a combination of static and real-time data
US20150039555A1 (en) 2013-08-02 2015-02-05 International Business Machines Corporation Heuristically modifying dbms environments using performance analytics
US9734230B2 (en) 2013-09-12 2017-08-15 Sap Se Cross system analytics for in memory data warehouse
GB201403505D0 (en) 2014-02-27 2014-04-16 Aistemos Ltd Database update and analytics system
WO2015168480A1 (en) 2014-05-01 2015-11-05 MPH, Inc. Analytics enabled by a database-driven game development system
WO2015192091A1 (en) 2014-06-13 2015-12-17 Koverse, Inc. System and method for data organization, optimization and analytics
US10430438B2 (en) 2014-06-20 2019-10-01 Amazon Technologies, Inc. Dynamic n-dimensional cubes for hosted analytics
US9477745B2 (en) 2014-07-07 2016-10-25 Sap Se Predictive cluster analytics optimization
US11023443B2 (en) 2015-02-13 2021-06-01 Teradata Us, Inc. Collaborative planning for accelerating analytic queries
US9710238B2 (en) 2015-03-26 2017-07-18 IfWizard Corporation Automatically optimizing analytics database server
US11036734B2 (en) 2016-03-08 2021-06-15 Oracle International Corporation Fusing global reporting aggregate computation with the underlying operation in the query tree for efficient evaluation
US10423617B2 (en) * 2016-07-15 2019-09-24 International Business Machines Corporation Remote query optimization in multi data sources
US10191930B2 (en) 2016-08-12 2019-01-29 Sap Se Priority queuing for updates in a database system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101111838A (zh) * 2004-11-30 2008-01-23 科格洛斯公司 多维企业软件系统中的自动关系模式生成
CN102360379A (zh) * 2011-10-10 2012-02-22 浙江鸿程计算机系统有限公司 一种多维数据立方体增量聚合及查询优化方法
CN104750776A (zh) * 2013-12-30 2015-07-01 Sap欧洲公司 使用元数据访问数据库平台中的信息内容
CN103870571A (zh) * 2014-03-14 2014-06-18 华为技术有限公司 多维联机分析处理系统中的立方体重构方法和装置
CN107169070A (zh) * 2017-05-08 2017-09-15 山大地纬软件股份有限公司 一种基于大数据的社保指标仓库的构建系统及其方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于SQL的OLAP多维数据分析;徐义峰, 徐云青, 诸葛理绣;微机发展(07);全文 *

Also Published As

Publication number Publication date
CN112236761A (zh) 2021-01-15
JP2021529367A (ja) 2021-10-28
GB202100026D0 (en) 2021-02-17
US20200004868A1 (en) 2020-01-02
WO2020003063A1 (en) 2020-01-02
US10740356B2 (en) 2020-08-11

Similar Documents

Publication Publication Date Title
CN112236761B (zh) 数据立方体的动态增量更新
US10521404B2 (en) Data transformations with metadata
US10715598B1 (en) Implementation of a web-scale data fabric
CN108416620B (zh) 一种基于大数据的画像数据的智能社交广告投放平台
AU2017202873B2 (en) Efficient query processing using histograms in a columnar database
US11681651B1 (en) Lineage data for data records
US10114846B1 (en) Balanced distribution of sort order values for a multi-column sort order of a relational database
US20070150430A1 (en) Decision support methods and apparatus
CN111125266A (zh) 数据处理方法、装置、设备及存储介质
US10055421B1 (en) Pre-execution query optimization
CN116680315A (zh) 数据离线处理方法、装置、电子设备及存储介质
CN114971714A (zh) 一种基于大数据标签的精准客户运营方法和计算机设备
US10657145B2 (en) Clustering facets on a two-dimensional facet cube for text mining
US11372846B2 (en) Generating and utilizing pre-allocated storage space
US10885157B2 (en) Determining a database signature
US10769110B2 (en) Facilitating queries for interaction data with visitor-indexed data objects
US11023485B2 (en) Cube construction for an OLAP system
CN115981970B (zh) 运维数据分析方法、装置、设备和介质
Saravana et al. A case study on analyzing Uber datasets using Hadoop framework
CN116910352A (zh) 基于人工智能的报表推荐方法、装置、设备及介质
CN117056340A (zh) 对账数据处理方法、装置、设备及存储介质
Konovalov Analysis of Industrial Software Solutions for Data Processing and Storage
Kumar Technology Review-Big Data, Hadoop, and MapReduce

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20220208

Address after: USA New York

Applicant after: Qindarui Co.

Address before: USA New York

Applicant before: International Business Machines Corp.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant