首页> 中国专利> 用于在日志监视器结合了可动态再定义的商业逻辑的情况下保持大粒度数据库并发的系统和方法

用于在日志监视器结合了可动态再定义的商业逻辑的情况下保持大粒度数据库并发的系统和方法

摘要

描述了一种在日志监视器(26)结合了可动态再定义的商业逻辑(94)的情况下保持大粒度数据库并发的系统(10)和方法(150)。以一种数据操纵语言表述的操作是针对一个源数据库(51)执行的。至少一个操作构成了完成每个数据库事务的提交操作。一个当前规则集(55)被定义。每个规则都包含商业逻辑(94),所述商业逻辑指定了源数据库所保存记录的数据选择标准。在日志(54)中为每个提交到源数据库(51)的事务周期性产生一个日志条目(70)。每个日志条目(70)都对一个受影响的记录进行标识并包含事务数据。每个日志条目(70)所标识的事务是依照当前规则集(55)指定的数据选择标准来进行评估的。根据那些对一个目的数据库(58)进行描述的元数据(56)来建立一个新记录(57)。这个新记录(57)包括从满足选择标准的每个事务的日志条目(70)中选择事务数据。新记录(57)将会存入目的数据库(58)。目的数据库(58)中保存的数据包括源数据库(51)的至少一个部分子集。

著录项

  • 公开/公告号CN1535434A

    专利类型发明专利

  • 公开/公告日2004-10-06

    原文格式PDF

  • 申请/专利权人 甲骨文国际公司;

    申请/专利号CN02806284.1

  • 发明设计人 大卫·雷德;

    申请日2002-02-25

  • 分类号G06F17/30;

  • 代理机构11240 北京康信知识产权代理有限责任公司;

  • 代理人余刚

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 15:34:51

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-03-15

    专利权有效期届满 IPC(主分类):G06F17/30 专利号:ZL028062841 申请日:20020225 授权公告日:20160210

    专利权的终止

  • 2016-02-10

    授权

    授权

  • 2004-12-22

    实质审查的生效

    实质审查的生效

  • 2004-10-06

    公开

    公开

说明书

相关申请的交叉引用

根据35 U.S.C.§119(e),本专利申请要求享有2001年3月9日提交的未决美国专利申请09/804,672的优先权,该申请的内容在此引入作为参考。

技术领域

本发明大体上涉及数据库对象抽取,尤其涉及一种系统和方法,用于在日志监视器结合了可动态再定义的商业逻辑(businesslogic)的情况下保持大粒度(large-grained)数据库并发。

发明背景

目前,公司的数据库管理系统分为两类:生产和信息。包含了操作数据存储器的生产数据库充当储存库,用于保存那些在制造、生产及事务系统的操作中产生或使用的实时或接近实时的数据。与此相反,信息数据库对那些从生产数据库中周期性获取的数据加以保存,以供决策支持和联机分析处理系统使用。信息数据库包含了通常构造为企业数据库和数据集市(datamart)的数据仓库。

通常,数据仓库保存了那些描述数据库结构的信息数据和元数据。信息数据库至少需要与生产数据库中保存的数据保持大粒度数据并发,以便进行趋势分析和数据推导。

联机事务处理系统是生产数据的主要制造者。联机事务处理系统需要一个具有不间断可用性的最小保证响应时间,尤其是在电子商务(e-commerce)系统中。高数据量以及对高可用性的需要要求使用事务服务器而不是较慢的数据库服务器。

生产数据为决策支持以及联机分析处理系统提供了原始谷物(raw grist)。这些系统对数据进行分析并且生成报告,以便在公司的计划和战略操作中使用。原始生产数据由数据挖掘、复制以及净化工具转换成信息数据。决策支持与联机分析处理系统可以忍受较慢的响应时间。尽管如此,这些系统的数据需要必须与生产系统所需要的自治保持平衡。

频繁更新信息数据库有可能会对生产系统的运行产生不利影响。联机事务处理系统在接近总的硬件容量或是处于总的硬件容量的状态下运行。举例来说,典型的电子商务站点每秒可以接收500个以上的事务或是“点击”。通过中断生产系统的运行来更新信息数据库,这会加剧保持必要可用性及响应性等级的问题。

在数据检索处理过程中,生产数据必须通过在数据检索过程中商业逻辑应用而被周期性转换为信息数据。通常,检索和转换生产数据所需要的商业逻辑非常复杂,所述商业逻辑在计算上也是非常密集的。同样,商业逻辑相对比较固定和静态。这些因素有可能进一步影响到系统响应性。

现有技术中已经提出了两种用于对信息数据库进行更新的解决方案。一种解决方案给出了一个数据复制管理器,其在转换数据的同时周期性拷贝生产数据。不幸的是,这种解决方案将会导致大量的数据复制并且有可能是非常耗时的。

另一种现有技术的解决方案引入了一个周期性更新的多层数据库架构。商业逻辑是在针对生产数据库所执行的查询中实现的。第二层商业逻辑可以使用检索到的信息来填充和更新那些使用了部门特有的查询的数据集市。在一个快速变化的环境中,过多更新可能会强烈干扰生产系统的运行。

因此,需要一种能以高频率和低开销而对信息数据库进行更新的数据管理器。这种方法实质上免除了数据复制和无效的数据检索,由此将资源消耗减至最少。

进一步需要一种方法来对那些具有可动态再定义的参数的信息数据进行检索。这种方法允许对商业逻辑进行灵活的再定义,以便用一种特定(ad hoc)方式来选择数据。

此外还需要一种方法来对信息数据库进行无干扰更新。这种方法将会对生产系统的运行产生最小影响并顾及自主操作。

发明内容

本发明提供了一种使用间接检索自源数据库的数据来对目的数据库进行更新的系统和方法,所述间接检索是经由基于日志的监视来进行的。事务日志文件是作为事务服务器提交到源数据库的事务的副产品而产生的。日志文件受到监视,并且日志文件是相对于一个动态规则集来进行评估的,所述规则集规定了执行商业逻辑的选择标准。通过使用描述目的数据库模式的元数据而将那些满足选择标准的日志条目转换成更新记录。并且可以使用一个数据库建立工具来动态地重新定义规则集以及元数据。日志监视器自动修改选择标准以及生成记录的操作。在数据检索过程中,日志监视器使用每个日志条目中保存的信息来间接推导那些对事务服务器运行具有最小影响的信息数据。

本发明的一个实施例是一种经由基于日志的事务监视来对一个信息数据库进行刷新的系统和方法。一个生产数据库被保持,其中包含了一个或多个表。每个表都存储了由事务处理系统产生的生产数据的记录。日志条目周期性存入一个日志文件。对于提交到生产数据库的每个事务而言,将会为其产生至少一个日志条目。一个信息数据库被保持,其中包含了一个或多个表。每个表都存储了供决策支持系统使用的信息数据的记录。通过使用一个规定数据选择标准的规则集,对存入日志文件的日志条目进行动态分析。而从满足数据选择标准的生产数据中产生的更新记录将会保存在信息数据库中。

另一个实施例是一种在日志监视器结合了可动态再定义的商业逻辑的情况下保持大粒度数据库并发的系统和方法。以一种数据操纵语言来进行表述的操作是针对一个源数据库而执行的。至少一个操作构成了完成每个数据库事务的提交操作。并且一个当前规则集将被定义。每个规则都包含商业逻辑,所述商业逻辑指定了关于源数据库所保存记录的一个数据选择标准。在日志中,为每个提交到源数据库的事务周期性产生一个日志条目。每个日志条目都对一个受影响的记录进行识别并且包含了事务数据。在每个日志条目中识别的事务都是针对当前规则集中指定的数据选择标准来进行评估的。根据那些对一个目的数据库进行描述的元数据建立一个新记录。这个新记录包括从满足选择标准的每个事务的日志条目中选择事务数据。新记录将会存入目的数据库。目的数据库中保存的数据包括源数据库的至少一个部分子集。

本发明的一个优点是能够动态地重新定义那些按照事务日志监视器所解释的规则来执行的商业逻辑。另一个优点是利用数据仓库所固有的元数据来智能填充一个数据库,并且允许对于数据库结构中的改变拥有附加的响应性等级。

对本领域技术人员来说,本发明的其他实施例将通过以下详细描述而变得显而易见,其中通过图解说明预期用于实施本发明的最佳模式而对本发明的实施例进行了描述。正如将要了解的那样,本发明能够提供其他的不同实施例,并且可以在许多非常明显的方面对本发明的若干细节进行修改,所有这些都不会脱离本发明的实质和范围。因此,事实上把附图和详细描述看作是说明性的,它们并不具有限制性。

附图说明

图1是显示根据本发明的分布式计算机环境的框图,包括一个在日志监视器结合了可动态再定义的商业逻辑的情况下保持大粒度数据库并发的系统。

图2是显示现有技术中的多层数据库结构的功能性框图。

图3是显示用于维持图1的大粒度数据库并发的系统的框图。

图4是显示图3系统所用日志条目的数据结构图。

图5是显示通过基于日志的事务监视而进行的信息数据库更新的处理流程图。

图6是显示图3系统软件模块的功能性框图。

图7是显示规则条目的数据结构图。

图8是显示根据本发明在日志监视器结合了可动态再定义的商业逻辑的情况下保持大粒度数据库并发的方法的流程图。

具体实施方式

图1是一个显示了根据本发明的分布计算环境10的框图,包括一个用于在日志监视器结合了可以动态再定义的商业逻辑的情况下保持大粒度数据库并发的系统。一个操作数据存储器(ODS)11保存了生产系统12产生的生产数据。生产系统12可以构成一个联机事务处理系统来办理电子商务(e-commerce),预约、销售点事务、库存控制、工厂及制造操作、以及相似类型的行为。出于效率方面的考虑,生产系统12保持了一个本地生产数据库13,在其内部保存了生产数据。

为了保持高等级的响应性和可用性,操作数据存储器11与专用事务服务器14相耦合,该服务器向操作数据存储器11提供一个高吞吐量的接口。如本领域已知的那样,生产系统12与事务服务器14经由网络15相互连接,其中所述网络可以是一个互连网络或内部网络。

操作数据存储器11中保存的生产数据周期性复制到企业数据仓库16。与仅仅包含生产数据的操作数据存储器11不同,企业数据仓库16包含了直接得到的数据值以及推导得出的数据值,这些数据值称为信息数据,它们是供决策支持和联机分析处理系统使用的。数据库服务器17与企业数据仓库16相耦合,用于对企业数据仓库16执行数据操纵语言(DML)查询。数据库服务器17经由网络15而与另一个系统相互连接。

可以结合诸如工作组数据集市18这样的辅助数据库来分层构造企业数据仓库16。虽然企业数据仓库16包含了从属于公司活动所有方面的信息数据,但是每个工作组数据集市18都是一个为特定主题范围给出信息数据专用视图的子集,其中特定主题范围可以是雇员记录、销售收入图表等等。在一个局部网络环境中,可以将工作组数据集市18与一个专用的本地数据库服务器19构造在一起,其中本地数据库服务器19经由局部网络21而与多个客户机20相连。局部网络21转而经由一系列集线器22而与公司网络15相互连接。

最终,举例来说,远端客户机23可以经由一个互连网络24来远程访问企业数据仓库16以及工作组数据集市18,其中互联网络经由网关25而与公司网络15相耦合,所述互联网络可以是互联网。

操作数据存储器11的特点是:在可用性为100%并确保响应时间(response times)的情况下具有高度易变性和变化。相反,响应于不同客户机20以及远端客户机23提出的特定(ad hoc)查询,企业数据仓库16将会执行灵活的操作。

企业数据仓库16保存的信息数据必须由检索自操作数据存储器11的生产数据周期性刷新。根据操作数据存储器11上的系统负载,在峰值运行时间检索生产数据很可能是不切实际的,并且最多只能在非高峰时间允许对生产数据进行检索。因此,日志监视器26可以间接更新信息数据,由此在操作数据存储器11与企业数据仓库16之间提供大粒度数据库的并发。

日志监视器26读取由事务服务器14产生并作为事务处理副产品的日志条目。如下文参考图3进一步描述的那样,通过把执行商业逻辑的选择标准应用于一个可以动态再定义的规则集而对单独的日志条目进行检索和分析。更新记录是从那些满足选择标准以便对企业数据仓库16中的信息数据进行更新的日志条目中产生的。

虽然,涉及已描述的实施例的包含操作数据存储器11、企业数据仓库16以及工作组数据集市18的数据库特定形式而被参考的,但是本领域技术人员将会了解,其他形式的结构化数据库也可用在这里所概述的通用参数和特性以内。此外还可以使用其他网状拓扑结构和系统配置。

单独的计算机系统包括生产系统12、事务服务器14、数据库服务器17、本地数据库服务器19、客户机20以及远端客户机23,这些计算机系统是通用的程序化数字计算设备,所述设备包括一个中央处理器(CPU)、随机存取存储器(RAM)、诸如硬盘或CD-ROM驱动器这样的非易失辅助存储器、网络接口以及外围设备,其中包括诸如键盘及显示器这样的用户接口装置。包含软件程序的程序代码以及数据被加载到RAM中,以便由CPU执行和处理,并且将会产生结果,以便进行显示、输出、传送或存储。

图2是显示现有技术中的多层数据库结构30的功能性框图。如John Wiley & Sons公司出版并由R.Orfali著述的“Client/ServerSurvival Guide”(1999年第三版)一书中的第12-13章所描述的那样,生产和信息数据库被构造成几个层,以便分配数据库更新和检索的工作量,其中该书的内容在此引入作为参考。事务服务器14服务于多个生产数据库13。在具有最大可用性的情况下,通过使用事务服务器14而将生产数据大量存入操作数据存储器11并从操作数据存储器中大量检索生产数据(步骤31)。

数据库服务器17周期性地“分接(tap)”那些来源于操作数据存储器11(步骤32)的信息数据。原始生产数据经过拷贝、提纯、净化而被转换成企业数据仓库16保持的信息数据。从操作数据存储器11中检索生产数据是通过一个周期性唤醒而把来源于操作数据存储器11的生产数据刷新到企业数据仓库16之中的预定循环处理来完成的,其中所述预定循环处理可以是一个计时程序(cronjob)。

将生产数据下载到企业数据仓库16的处理是非平凡性的,该处理需要负担计算、存储以及网络接口连接的资源。信息数据检索和转换执行了用于从操作数据存储器11中选择恰当数据值的商业逻辑。每个更新都有可能涉及大量的复制信息。

为了减轻操作数据存储器11上的负载,一系列专用数据集市是作为企业数据仓库16的一个子集来创建的(步骤33),举例来说,所述专用数据集市可以包括奖励数据集市(promotional datamart)34、关联数据集市(affinity datamart)35以及购物篮数据集市36。与企业数据仓库16相似,数据集市34-36必须由本地数据服务器19使用信息数据来进行周期性刷新。通过使用本地数据库服务器19,清除了一部分专用商务逻辑,其中所述商务逻辑是把信息数据进一步提炼成可以由决策支持及联机事务处理系统(未示出)使用的格式所必需的。

现有技术的方法通过分配和清除数据复制及处理操作而使决策支持及联机分析处理系统的需要与生产系统的自治运行保持平衡。然而,多层架构30对每个专用数据库需要的信息进行复制。此外,多层商业逻辑的实施需要对信息数据进行刷新和更新。这些层可能会包含重复查询。因此需要一种较少进行复制的解决方案。

图3是显示用于保持图1大粒度数据库并发的系统50的框图。该系统的核心功能是由日志监视器26执行的。源数据库51通常是一个操作数据存储器11(如图2所示)、也可以是一个企业数据仓库16或者工作组数据集市18,该数据库保存生产(或信息)数据。在把事务提交到源数据库51的时候,存储数据值将会发生变化。一旦提交,日志写入器53会产生一个日志条目并将其写入事务日志54,以便记录(journal)所处理的事件。如下文参考图4而进一步描述的那样,每个日志条目都包含事务数据,该数据识别了表、记录以及所执行的操作。日志写入器53“刷新”连续产生的一系列正在运行的事务日志52(TL)。

当日志写入器53将日志条目写入日志54时,日志监视器26把引入商业逻辑的选择标准应用于顺序记录的日志条目。

对于满足选择标准的每个日志条目而言,日志监视器26对来自源数据库51的生产(信息)数据进行检索,以便为目的数据库58产生更新记录57。由日志监视器26使用的选择标准是作为一个规则集58来执行的。该规则集把那些用于对影响到所关注生产数据的事务进行选择的商业逻辑引入一个决策支持或联机分析处理系统。此外,日志监视器26使用了描述目的数据库58所用模式的元数据56。

可以使用数据库建立工具59来动态地重新定义规则集55以及元数据56。适于在本发明中使用的一个数据库建立工具59的实例是Oracle Warehouse Builder产品,其是由加利福尼亚RedwoodShores的Oracle公司发放许可的。用户可以使用数据库建立工具59来重新定义商业逻辑和元数据。重新定义被定期转发到日志监视器26。规则集58中的单独规则将商业逻辑作为数据操纵语言(DML)的操作来加以执行。日志监视器26使用元数据56,以便将更新记录57构造成一种由目的数据库58中保存的表使用的格式。以下参考图7来对规则集55的结构进行更进一步的描述。

如下所述,元数据56优选包含四个成分。首先,元数据56描述了源数据库51和目的数据库58的架构。元数据56还包括了描述数据库链路及其他网络别名的网络信息。日志54还可以记载那些对在逻辑上加入的数据库而执行的事务,例如分布式数据库环境。此外,元数据56包含了作业控制及调度信息,该信息规定了所执行的商业逻辑相对于所记录的事务条目的执行频率。在所描述的实施例中,作业控制信息是在一种名为PL/SQL的更高级的数据库操纵语言中规定的。最后,元数据56包含了用于执行选择标准分析的实际源代码。对于生产(或信息)数据检索或恢复的其他形式的元数据也是可以使用的。

作为一种性能优化,日志监视器26还可以包含一个用于暂存(staging)信息的缓存区60,其所述信息包括日志条目和更新记录57。在所描述的实施例中,日志监视器26是作为一个与事务服务器14以及数据库服务器17、19分离的处理来执行的(如图1所示)。日志监视器26是根据一个处理步骤序列来运行的,以下将会参考图8而对此进行进一步的描述。

图4是显示图3系统50所使用的日志条目70的数据结构图。举例来说,每个日志条目70包含5个信息字段。时戳71记录了将相关事务提交到源数据库51的日期与时间。表格标识符72以及记录标识符73指明了事务提交所针对的源表及一个或多个记录条目。操作类型74标识了所提交的事务。最后,撤销(Undo)信息75可选地描述了应用于数据的实际改变,其中所述数据处于一种允许显示(unroll)所提交事务的格式。在所描述的实施例中,撤销信息75识别了相关记录的表空间内容与存储位置。在使用撤销信息75的情况下,所提交的事务可以显示,并且原始记录条目将会恢复。日志监视器26(如图3所示)还可以使用撤销信息75来确定相对于当前日志条目70而言,是否满足了规则集55中的选择标准。

图5是一个显示经由基于日志的事务监视而进行的信息数据库更新的处理流程图。当来自源数据库51的更新记录57进入目的数据库58时,数据将被更新。事务服务器92将所提交的事务91存入源数据库51。一旦提交了每个事务91,那么将会产生一个日志条目93,并且所述日志条目由一个日志写入器53(如图3所示)存入日志54。如在规则集55中执行的那样,日志监视器26将会应用商业逻辑94。满足选择标准的每个日志条目93都被用于产生一个更新记录95,该记录由数据库服务器96存入目的数据库58。

与现有技术中的多层数据库结构30(如图2所示)所使用的信息数据更新方法不同,本方法使用日志条目93来间接导出信息数据,从而产生更新记录95。日志条目93是作为事务服务器92的副产品而产生的。因此,更新记录95是以最小成本产生到事务服务器92的,由此消除了现有技术中的多层数据库层次所固有的数据和商业逻辑的重复。

图6是显示图3系统50的软件模块110的功能性框图。日志监视器26包含两个主模块:一个评价模块111和一个记录生成模块112。评价模块111将日志53中的日志条目作为输入而进行接收。每个日志条目70(如图4所示)包含的事务数据是针对规则集55给出的选择标准来进行评估的。这些满足选择标准的日志条目113转发到记录生成模块112。在使用元数据56所保存的目的数据库58的模式描述的情况下,记录生成模块112创建更新记录57来更新目的数据库58。

在所描述的实施例中,更新记录57是经由文件传输处理来发送的,所述文件传输处理可以根据文件传送协议(FTP)或是相似的网络传输协议。如本领域已知的那样,日志监视器的每个模块都是一个计算机程序、进程或模块。其中源代码是以一种常规的程序设计语言来编写的,例如C++程序设计语言,并且每个模块都作为对象或字节代码而给出,以供CPU执行。源代码、对象以及字节代码的不同实施可以保存在计算机可读存储介质上,也可以包含在载波中的传输介质上。

图7是显示规则条目130的数据结构图。举例来说,每个规则130至少识别了选择标准所要应用的源数据库51内部的表格131。一组数据操纵语言(DML)语句132执行商业逻辑,由此表述选择标准。同样也可以包含一个阈值133,以使日志监视器26(如图3所示)能够基于预定约束条件来快速有效地过滤日志条目。并且其它规则格式也是可行的。

图8是根据本发明来保持大粒度数据库并发的方法150的流程图,其中日志监视器26结合了可以动态再定义的商业逻辑。在应用商业逻辑之前,日志监视器26预先打开日志文件54(方框151)。然后如下所述重复处理每个日志条目(如图4所示)。

在每个重复过程中,每个日志条目70首先由日志监视器26读取(方框152)。日志条目70将被评估,以便确定该条目是否描述了一个已提交事务91(如图5所示),其中所述事务对选择标准所应用的表格131(如图7所示)产生了影响(方框153)。如果日志条目70应用于一个所列举出的表格131(方框153),那么如在数据操纵语言程序132中执行的那样,该规则将被评估(方框154)。如果满足了该规则的选择标准(方框155),那么日志监视器26将会使用元数据56来产生一个更新记录57(方框156),并且这个更新记录将会发送到数据库58(方框157)。在存在更多日志条目70(方框158)的时候,重复的处理将会继续(方框152-158)。一旦处理了最后一个日志条目70(方框158),那么日志文件54将被关闭(方框159),程序将会终止。

虽然已经参考本发明实施例而特别显示了本发明并对其进行了描述,但是本领域技术人员将会理解,可以对本发明进行形式和细节上的前述及其他改变,而不脱离本发明的实质和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号