【技术实现步骤摘要】
【国外来华专利技术】跟踪数据库数据的变化相关申请的交叉引用本申请要求于2018年11月6日提交的序列号为16/182,112的美国专利申请的优先权,该美国专利申请的内容以其整体并入本文。
本公开涉及用于数据库的系统、方法和设备,并且更特别地涉及跟踪数据库数据的变化。背景数据库广泛用于计算应用中的数据储存和访问。数据库可以包括一个或更多个表,这些表包括或引用数据,数据可以使用通常称为DML(数据操作语言)语句的数据库操作来进行读取、修改或删除。数据库可以在一个或更多个表中的任何位置存储从小型数据集到超大数据集。该数据可以被组织中的各种用户访问,或者甚至可以(例如经由网站或应用程序接口(API))用于服务公共用户。计算资源和储存资源以及它们的底层体系结构都可以在实现理想的数据库性能方面发挥重要作用。数据库数据可以通过各种命令(包括修改数据库表中一个或更多个行的插入命令、删除命令和更新命令)进行修改。跟踪这样的修改并确定第一组数据库数据和第二组数据库数据之间的增量信息可能是昂贵的。本文公开了用于有效跟踪对数据库数据进行的变化的系统、方法和设备。附图简述参考以下附图描述了本公开的非限制性和非穷尽的实施例,其中,除非以其它方式说明,在所有各个附图中相似的参考数字指代相似的部分。图1是示出根据一个实施例的对表版本进行的修改的框图;图2是示出根据一个实施例的对数据库的微分区执行的删除命令的框图;图3是示出根据一个实施例的对数据库的微分区执行的插入命令的框图;图4是示出 ...
【技术保护点】
1.一种用于跟踪数据库数据的变化的方法,所述方法包括:/n确定要对数据库的表的微分区执行的变化;/n通过生成体现所述变化的新的微分区来执行所述变化;和/n更新表历史,所述表历史包括对所述表进行的变化的日志,所述变化的日志中的每个变化包括时间戳,对所述表历史的所述更新包括将所述变化插入到所述变化的日志中。/n
【技术特征摘要】
【国外来华专利技术】20181106 US 16/182,1121.一种用于跟踪数据库数据的变化的方法,所述方法包括:
确定要对数据库的表的微分区执行的变化;
通过生成体现所述变化的新的微分区来执行所述变化;和
更新表历史,所述表历史包括对所述表进行的变化的日志,所述变化的日志中的每个变化包括时间戳,对所述表历史的所述更新包括将所述变化插入到所述变化的日志中。
2.根据权利要求1所述的方法,还包括接收对所述表在第一时间戳和第二时间戳之间的增量的请求,并响应性地通过查询所述表历史来确定所述增量。
3.根据权利要求1或权利要求2所述的方法,其中,执行所述变化还包括从所述数据库中移除所述微分区。
4.根据权利要求1或权利要求2所述的方法,其中,所述变化被应用于所述表的多个微分区,使得执行所述变化包括生成多个新的微分区以及从所述数据库中移除所述多个微分区。
5.根据权利要求1或权利要求2所述的方法,其中,所述变化包括以下中的一项或更多项:对所述表的一个或更多个行的删除、插入、合并和更新。
6.根据权利要求2所述的方法,其中,所述增量包括以下项中至少一项的指示:在所述第一时间戳和所述第二时间戳之间变化的所述表的一个或更多个行和一个或更多个微分区。
7.根据权利要求1或权利要求2所述的方法,还包括针对所述表的多个行中的每一行生成行标识,其中,所述行标识与对所述表进行的变化的所述日志中的适用的时间戳相关联地存储在所述表历史中。
8.根据权利要求7所述的方法,其中,针对所述表的所述多个行中的每一行生成所述行标识包括:
对于所述表的所述多个行中的任何未修改的行,基于微分区和所述未修改的行中的行数据被存储的行位置,来导出所述未修改的行的所述行标识;和
对于通过执行所述变化而被修改的所述表的所述多个行中的任何被修改的行,针对体现所述变化的所述新的微分区中的所述被修改的行,生成所述行标识。
9.根据权利要求2所述的方法,其中,确定所述增量包括将与所述第一时间戳相关联的第一组数据和与所述第二时间戳相关联的第二组数据进行比较,其中,所述比较包括导出在所述第一组数据和所述第二组数据之间的元组粒度变化。
10.根据权利要求1或权利要求2所述的方法,其中,所述表历史包括存储在微分区中的一个或更多个变化跟踪列,并且其中,所述一个或更多个变化跟踪列包括指示以下项中的一项或更多项的数据:值的原始微分区标识、值的原始行标识、行上发生的变化操作以及值是否被更新的指示。
11.根据权利要求1或权利要求2所述的方法,其中,生成体现所述变化的所述新的微分区包括:
从所述微分区复制一个或更多个未修改的行以及与所述一个或更多个未修改的行相关联地存储的变化历史信息;
基于所述变化,生成一个或更多个新的修改的行;和
针对所述一个或更多个新的修改的行中的每一行,生成行标识。
12.根据权利要求2所述的方法,其中,所述第一时间戳与第一组微分区相关联,而所述第二时间戳与第二组微分区相关联,并且其中,确定所述增量包括:
将所述第一组微分区的第一组规则和所述第二组微分区的第二组规则进行比较;
针对所述第一时间戳和所述第二时间戳中的每一个,从所述表历史中导出适用的变化跟踪信息;和
确定在所述第一组微分区和所述第二组微分区之间已经被进行添加、删除和更新中的一项或更多项的一个或更多个行。
13.根据权利要求1或权利要求2所述的方法,其中,所述表历史中的所述变化的日志包括:
发起对所述表的修改的一个或更多个事务的列表,其中,每个该修改包括:添加的行、删除的行或更新的行;和
在所述一个或更多个事务的列表中每个事务的时间戳。
14.根据权利要求1或权利要求2所述的方法,其中,所述表历史中的所述变化的日志包括所述表中的多个行中的每一行的沿袭,其中,所述沿袭包括修改的日志,所述修改的日志具有与每个修改相关联的时间戳,并且其中,所述沿袭使得能够跨所述表中的多个微分区跟踪所述多个行中的每一行。
15.一种用于跟踪数据库数据的变化的系统,所述系统包括:
一个或更多个处理器;以及
数据储存器,所述数据储存器包含能够由所述一个或更多个处理器执行以执行操作的指令,所述操作包括:
确定要对数据库的表的微分区执行的变化;
通过生成体现所述变化的新的微分区来执行所述变化;和
更新表历史,所述表历史包括对所述表进行的变化的日志,所述变化的日志中的每个变化包括时间戳,对所述表历史的所述更新包括将所述变化插入到所述变化的日志中。
16.根据权利要求15所述的系统,所述操作还包括接收对所述表在第一时间戳和第二时间戳之间的增量的请求,并响应性地通过查询所述表历史来确定所述增量。
17.根据权利要求15或权利要求16所述的系统,其中,所述变化包括以下中的一项或更多项:对所述表的一个或更多个行的删除、插入、合并和更新。
18.根据权利要求16所述的系统,其中,所述增量包括以下项中至少一项的指示:在所述第一时间戳和所述第二时间戳之间变化的所述表的一个或更多个行和一个或更多个微分区。
19.根据权利要求15或权利要求16所述的系统,所述操作还包括针对所述表的多个行中的每一行生成行标识,其中,所述行标识与对所述表进行的变化的所述日志中的适用的时间戳相关联地存储在所述表历史中,并且其中,针对所述表的所述多个行中的每一行生成所述行标识包括:
对于所述表的所述多个行中的任何未修改的行,基于所述未修改的行中的数据被存储在哪里,来导出所述未修改的行的所述行标识;和
对于通过执行所述变化而被修改的所述表的所述多个行中的任何被修改的行,针对体现所述变化的所述新的微分区中的所述被修改的行,生成所述行标识。
20.根据权利要求16所述的系统,其中,确定所述...
【专利技术属性】
技术研发人员:伊斯特凡·切里,托尔斯滕·格拉布斯,本诺特·戴奇维勒,
申请(专利权)人:斯诺弗雷克公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。