CN108920522A - 用于数据库的数据处理方法、***及计算机可读存储介质 - Google Patents

用于数据库的数据处理方法、***及计算机可读存储介质 Download PDF

Info

Publication number
CN108920522A
CN108920522A CN201810564111.3A CN201810564111A CN108920522A CN 108920522 A CN108920522 A CN 108920522A CN 201810564111 A CN201810564111 A CN 201810564111A CN 108920522 A CN108920522 A CN 108920522A
Authority
CN
China
Prior art keywords
system change
data processing
database
version
ranked
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.)
Pending
Application number
CN201810564111.3A
Other languages
English (en)
Inventor
许增伟
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.)
Shanghai Point Information Technology Co Ltd
Original Assignee
Shanghai Point Information Technology Co Ltd
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 Shanghai Point Information Technology Co Ltd filed Critical Shanghai Point Information Technology Co Ltd
Priority to CN201810564111.3A priority Critical patent/CN108920522A/zh
Publication of CN108920522A publication Critical patent/CN108920522A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开内容提供了一种用于数据库的数据处理方法,所述数据处理方法包括:确定***改变号间隔,其中,所述***改变号间隔在***改变号起始点和***改变号结束点之间;在所述***改变号间隔内执行闪回版本查询,以获取所述数据库在所述***改变号间隔内的版本记录,其中,每个版本记录均具有相应的版本开始***改变号;以及根据所述版本开始***改变号对所述版本记录进行排序以获得经排序的序列。此外,本公开内容还提供了一种用于执行上述数据处理方法的数据处理***以及一种相对应的计算机可读存储介质。

Description

用于数据库的数据处理方法、***及计算机可读存储介质
技术领域
本公开内容涉及数据库中的数据处理技术,更为具体地涉及一种用于数据库的数据处理方法、一种用于执行上述数据处理方法的数据处理***以及一种相对应的计算机可读存储介质。
背景技术
时序性就是事件发生的先后顺序。对于数据库来讲,事件的最小单元就是事务(即Transaction)。无论事务涉及的数据量有多大或者参与的表有多少,每提交一个事务就会产生一个事件。
作为一个正常的联机事务处理过程(Online Transaction Processing:OLTP)数据库,可能每时每刻在每张表上都在发生事务性操作。类似于事件溯源(Event Sourcing)机制,将源库上的事务按照发生的时间先后顺序(也就是事务的提交顺序)依次应用在目的库上是值得期望的,这样就会保证源表和目的表数据状态的一致性和事务的不可撕裂性。
在现有技术中,在做数据库的数据同步时,一个线程负责一张表的同步和数据处理,各个线程间互不干涉,也没有任何联系,这样会产生一些问题。
假设有一个用户表和一个用户投资记录表,很显然用户投资记录表中有一个外键字段指向用户表的用户标识符(ID)。如果单纯使用每张表/每线程的模式,很可能用户投资记录已经同步到目的表了,但是用户表的记录还没有同步过去,在目的库形成“子先于父存在”的情况。这不但让目的表不能像源表那样强制添加主外键约束,还会对目的端应用层的增量查询和数据汇总造成困扰。如果在同步过程中保持了时序性,则不会有此类问题发生。
此外,出于修正数据的需要,假设源库在一个事务中对多张表做了更新操作,然后提交事务。作为同步工具,如果不以事务为单位进行同步,将会使得目的库上的数据是混乱的:某些表的记录可能已经更新成了最新值,某些表可能还是保留原来的值,这是因为你的同步进程把事务撕裂了。源库在历史上的任何时刻从来没有出现过像现在目的库这样的数据形态,换句话说,即破坏了源库数据的一致性。同步本身可以有延迟,但是,数据不能有不一致。假设在源库的事务中债务人把钱还给了债权人,在目的库的某个时刻进行汇总查询,结果发现债务人的钱被扣除了,但是债权人的账户并没有增加,这就会产生财务***的严重技术问题。
发明内容
基于对于以上技术问题以及技术现状的理解,本公开内容的发明人在本公开内容的第一方面中提供了一种用于数据库的数据处理方法,所述数据处理方法包括:
确定***改变号间隔,其中,所述***改变号间隔在***改变号起始点和***改变号结束点之间;
在所述***改变号间隔内执行闪回版本查询,以获取所述数据库在所述***改变号间隔内的版本记录,其中,每个版本记录均具有相应的版本开始***改变号;以及
根据所述版本开始***改变号对所述版本记录进行排序以获得经排序的序列。
在依据本公开内容的一个实施例中,根据所述版本开始***改变号对所述版本记录进行排序以获得经排序的序列进一步包括:
根据所述版本开始***改变号的值对所述版本记录进行排序;
在排序后将具有相同的开始***改变号的版本记录组合为一个事务;以及
获得经排序的事务序列。
本公开内容的第二方面提供了一种用于数据库的数据处理***,其包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
确定***改变号间隔,其中,所述***改变号间隔在***改变号起始点和***改变号结束点之间;
在所述***改变号间隔内执行闪回版本查询,以获取所述数据库在所述***改变号间隔内的版本记录,其中,每个版本记录均具有相应的版本开始***改变号;以及
根据所述版本开始***改变号对所述版本记录进行排序以获得经排序的序列。
在依据本公开内容的一个实施例中,根据所述版本开始***改变号对所述版本记录进行排序以获得经排序的序列进一步包括:
根据所述版本开始***改变号的值对所述版本记录进行排序;
在排序后将具有相同的开始***改变号的版本记录组合为一个事务;以及
获得经排序的事务序列。
最后,本公开内容的第三方面提供了一种计算机可读存储介质,其具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据本公开内容的第一方面所述的用于数据库的数据处理方法。
依据本公开内容所公开的用于数据库的数据处理方法、用于执行上述数据处理方法的数据处理***以及相对应的计算机可读存储介质能够获得经排序的序列,从而能够将经排序的序列提供给该数据库的其他参与方使用,例如可选地能够上传至与该数据库通信连接的数据总线上,从而使得该数据库的其他参与方能够通过该数据总线获取该经排序的序列,进而能够执行例如数据库数据备份、数据库数据同步、数据库数据溯源等一些的数据库功能。
附图说明
结合附图并参考以下详细说明,本公开的各实施例的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实施例,在附图中:
图1示出了依据本公开内容的闪回版本查询的示意图100;
图2示出了依据本公开内容的用于数据库的数据处理方法的一个实施例200的流程图;
图3示出了基于***改变号间隔的闪回版本查询的示意图300;以及
图4示出了用于数据库的数据处理***400的示意图。
具体实施方式
以下参考附图详细描述本公开的各个示例性实施例。虽然以下所描述的示例性方法、装置包括在其它组件当中的硬件上执行的软件和/或固件,但是应当注意,这些示例仅仅是说明性的,而不应看作是限制性的。例如,考虑在硬件中独占地、在软件中独占地、或在硬件和软件的任何组合中可以实施任何或所有硬件、软件和固件组件。因此,虽然以下已经描述了示例性的方法和装置,但是本领域的技术人员应容易理解,所提供的示例并不用于限制用于实现这些方法和装置的方式。
此外,附图中的流程图和框图示出了根据本公开的各种实施例的方法和***的可能实现的体系架构、功能和操作。应当注意,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以使用专用硬件与计算机指令的组合来实现。
在详细介绍依据本公开内容的具体的技术方案之前,将首先介绍本公开内容所基于的技术问题,即现有技术中的数据库时序性的处理方法均没有很好地确保时序性保障,进而不能很好地解决数据库的数据在源数据库和目的数据库之间按照预定的时序性来处理数据的技术问题。
数据库的时序性有两个显著特征:一是以事务为单位,二是保持事务发生的先后顺序。从数据总线(Data Bus)的概念出发进而可以引申出数据发布、数据订阅、数据通知。在数据总线中流转的事件必须是按发生顺序排列好的,然后再依次发送给各方***。所以时序性也是构建数据总线的前提条件。由此可见,时序性是衡量一个同步***好坏的重要指标,接下来介绍如何保障时序性的实现。
关于数据同步时序性,市面上其实有一些现成的解决方案。
如果同步源是MySQL,可以使用封装好的开源的Otter/Canal框架,其基本原理是伪装成MySQL的从(Slave)数据库,在数据聚合项目中也用到了该框架。
如果同步源是Oracle数据库,则实现时序性有以下几种方式:
第一种是日志挖掘。可以使用免费的Logminer,对在线日志或归档日志进行挖掘,从而解析出Redo SQL在目的库进行重放,还可以使用商业版的Oracle GoldenGate,这两种方式都是基于日志挖掘方式,其缺点是需要在数据库上进行诸多配置,对数据库不透明。
第二种是采取触发器技术。可以使用Databus(数据总线),它基于trigger+ora_rowscn机制,在源表上添加trigger,需要部署多个存储过程包,侵入数据库更深。同时因为基于触发器,对源表写入有性能影响,也增加了发生死锁的可能性,部署这套东西会给DBA造成困扰。
第三种是采用物化视图(Materialized View)技术。比如愚公(yugong)开源项目,需要在每张源表上开启物化视图日志,并创建物化视图读取增量更新,物化视图可以看做是变相的触发器,也不是特别好。
对于Oracle数据库而言,实现同步性的需求比较简单,即首先需要实现时序性;其次需要在纯应用层完成(只要开放select权限就行),对数据库透明,无需在数据库上操作增加额外配置,更不需要DBA参与;再者需要纯应用层的解决方案,不提倡在数据库层面有大动作,这是因为:数据库是其他单位或者个人的,不是任何人想加字段就能够添加字段的,也不是任何人想加触发器就能够加触发器想改配置就改配置的;而且DBA资源是需要跨团队协调的,包括使用选型方案产生的后续维护工作。DBA资源的可用性也较差,需要协调的范围较大;而在数据库出问题的时候(比如死锁了)时容易被其他协作者认为是数据库同步引起的问题;当然如果项目过多地假手于人,需要太多外部资源的协作,项目可能是遥遥无期的。总而言之,项目需要介入扶持的资源越多,就越具有不可控性。
再者,上手容易、配置同步任务简单也是需要实现的目标之一。此外,最好在同步中间环节留有扩展,可以进行数据预处理和后处理。
但是目前市面上没有任何一款开源产品符合上述需求,针对Oracle源,在应用层实现时序性,是有别于其他同步工具的明显标志,也是它的核心竞争力所在。其绝不仅仅是将数据从一个地方同步到另外一个地方,中间可以做一些数据清洗和ETL工作的常规同步工具。
为了满足上述需求,本公开内容所提供的解决方案创新性地借助于Oracle的闪回版本查询(Flashback Version Query)机制实现了时序性。
以下将重点介绍Oracle的闪回版本查询方法。Oracle 10g以上版本提供了闪回版本查询机制。其中,SCN(System Change Number)是***改变号,它是一个长整形数,在这里可以将其简单理解为Oracle内部管理的时间戳。
本公开内容可以例如创建一张表,并执行一些SQL语句,其中,每条SQL单独提交以形成独立事务。举例来说,例如假如因为记录1最终被删除,所以如果执行如下常规查询,即select id,name from fbvq_test,只会返回name值为b2的记录2。但是如果执行闪回版本查询,就可以很容易地追溯发生的事务全部历史版本并查询回来,查询结果见表1:
表1:执行闪回版本查询
观察表1可以得出一些基本结论:
每条记录可能具有多个版本,即随着记录上发生事务提交(***、更新和删除),新版本不断形成。
伪列versions_startscn和versions_starttime是版本的开始或者说形成时候的***改变号SCN和时间戳,此时能够将在versions_startscn和versions_starttime之间的时间段视作本公开内容所限定的***改变号间隔,此时,***改变号起始点即为例如此处的versions_startscn或者versions_starttime。因为只有通过提交事务才能形成版本,所以它们也代表了事务提交时的***改变号SCN和时间戳。
伪列versions_endscn和versions_endtime是版本的结束SCN和时间戳。此时,***改变号结束点例如即为此处的versions_endscn或者versions_endtime。
从以上可知,每个版本都有生命周期,占据记录版本时间线上的某一时间段。所以当前版本的versions_endscn和versions_endtime恰好是下个版本的versions_startscn和versions_starttime。
伪列versions_xid和versions_operation是形成版本时的事务ID和发生的操作(I=Insert,U=Update,D=Delete,Delete也可以被检索出来)。
形成该版本时的用户字段值以及上述伪列字段可以随闪回版本查询一起被检索出来。
接下来看一下闪回版本查询起关键作用的过滤语句:
“versions between scn<START_SCN>and<END_SCN>”。
START_SCN和END_SCN分别指明了查询版本时的起始点、结束点处的SCN条件值。
如果两个条件分别指定了最小值minvalue和最大值maxvalue,则会把目前Oracle内部回滚段内所有可用的记录版本全部查询出来。
图1示出了依据本公开内容的闪回版本查询的示意图100。假设4条记录在时间线上的版本分布图如图1所示,棱形代表记录***,短竖线代表版本开始或结束,长竖线代表我们指定的START_SCN和END_SCN查询条件。
那么记录1会查询出v1,所有伪列字段都为null,因为v1的versions_startscn比START_SCN更靠前,versions_endscn比END_SCN更靠后。
记录2会查询出v1且v1的versions_startscn为null,因为v1的versions_startscn比START_SCN更靠前;会查询出完整v2和v3;会查询出v4且v4的versions_endscn为null,因为v4后续的新版本还未形成。
记录3会查询出完整v1;会查询出v2且v2的versions_endscn为null,因为v2的versions_endscn比END_SCN更靠后。
记录4比较特殊,因为v1的versions_endscn(也是v2的versions_startscn)正好等于START_SCN,v3的versions_endscn(也是v4的versions_startscn)正好等于END_SCN。在这种情况下会查询出完整的v2和v3,会查询出v4且v4的versions_endscn为null。
假如现在有一个需求,要求查询出START_SCN和END_SCN之间形成的版本(即记录在该SCN间隔内有过事务提交行为),则只需要根据条件过滤:
versions_startscn>=START_SCN and versions_startscn!=END_SCN,
则记录2的v2、v3、v4,记录3的v1、v2,记录4的v2、v3这些符合要求的版本都会被过滤出来。
以下将结合图2来阐述本公开内容所公开的用于数据库的数据处理方法。图2示出了用于数据库的数据处理方法200的流程图,从图中可以看出,该数据处理方法至少包括三个步骤,即分别包括如下步骤:
首先,在方法步骤210中,该数据处理方法将会确定***改变号间隔,其中,所述***改变号间隔在***改变号起始点和***改变号结束点之间;例如,所确定的***改变号间隔在图3的***改变号起始点SCN1和***改变号结束点SCN2之间,或者所确定的***改变号间隔在图3的***改变号起始点SCN2和***改变号结束点SCN3之间。
接下来,在方法步骤220中,该数据处理方法将会在所述***改变号间隔内执行闪回版本查询,以获取所述数据库在所述***改变号间隔内的版本记录,其中,每个版本记录均具有相应的版本开始***改变号;以及
最后,在方法步骤230中,该数据处理方法将会根据所述版本开始***改变号对所述版本记录进行排序以获得经排序的序列。
虽然在图2中未示出,但是依据本公开内容的用于数据库的数据处理方法200的方法步骤230可以进一步包括以下步骤,即根据所述版本开始***改变号对所述版本记录进行排序以获得经排序的序列进一步包括:
根据所述版本开始***改变号的值对所述版本记录进行排序;
在排序后将具有相同的开始***改变号的版本记录组合为一个事务;以及
获得经排序的事务序列。
可选地,上述经过排序的事务序列能够被上传至与所述数据库通信连接的数据总线上。由此能够将表示时序性的经过排序的事务序列在数据总线上进行传输,从而能够使得该数据总线上的其他用户能够例如订阅该经过排序的事务序列,将该经过排序的事务序列用于期望的用途。作为示例或者可选地,该数据处理方法能够根据所述经排序的事务序列实施目标数据库中的数据同步。
在具体实施时序性排序时,由于***改变号间隔依次地产生经排序的版本记录序列或者事务序列,所以前后连接的***改变号间隔不能有重复,在依据本公开内容的数据处理方法中采取了左闭右开的技术实现手段,即所述***改变号间隔从所述***改变号起始点开始至所述***改变号结束点结束,并且所述***改变号间隔包含所述***改变号起始点但不包含所述***改变号结束点。本领域的技术人员应当了解,其他只要能够实现***改变号间隔不会重复的技术方案只要其能够实现依据本公开内容所提出的数据处理方法也将被包括在本公开内容所附的权利要求书的范围之中。例如左开右闭的技术实现手段。
在具体的操作过程中,该数据处理方法能够将对所述数据库的操作在时间上分成至少两个分段,其中,所述***改变号间隔与所述至少两个分段中的一个分段相关联。可选地,所述数据库是Oracle数据库。
依据本公开内容所公开的用于数据库的数据处理方法、用于执行上述数据处理方法的数据处理***以及相对应的计算机可读存储介质能够获得经排序的序列,从而能够将经排序的序列提供给该数据库的其他参与方使用,例如可选地能够上传至与该数据库通信连接的数据总线上,从而使得该数据库的其他参与方能够通过该数据总线获取该经排序的序列,进而能够执行例如数据库数据备份、数据库数据同步、数据库数据溯源等一些的数据库功能。
图3示出了基于***改变号间隔的闪回版本查询的示意图300。从图中可以看出,横向轴为时间轴,在执行依据本公开内容所提供的用于数据库的数据处理方法200时,需要将时间线进行切割分段,例如在该图中分成了至少两段,即在SCN1和SCN2之间的第一分段和在SCN2和SCN3之间的第二分段,逐段同步该段内多张表不同记录形成的版本,在图3中,圆形代表了所有涉及同步的源表在这些段内形成的版本记录。
将相同段内来自各个表的记录的版本按照versions_startscn从小到大排序,就知道在该段内先后发生了哪些事务提交,然后将事务一一应用于目的端,自然就能够保障先后发生的事务的时序性。
在普通情况下,一个线程负责一张表的同步,各个线程毫无关联关系,所以就需要一个协调/调度线程,负责下达统一的SCN位点信息给处于“全局同步”阶段的同步线程,使负责各个表同步的线程步调一致地在相同的START_SCN和END_SCN范围内进行闪回版本查询,然后再组合、排序查询结果即可。
此外,替代地,上述方法能够通过计算机程序产品,即计算机可读存储介质来实现。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开内容的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
图4示出了用于数据库的数据处理***400的示意性框图。应当理解,数据处理***400可以被实现为实现图2中的用于数据库的数据处理方法200的功能。从图4中可以看出用于数据库的数据处理***400包括中央处理单元(CPU)401(例如处理器),其可以根据存储在只读存储器(ROM)402中的计算机程序指令或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序指令,来执行各种适当的动作和处理。在RAM403中,还可存储该***400操作所需的各种程序和数据。CPU 401、ROM402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
数据处理***400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许该***400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各种方法,例如用于数据库的数据处理方法能够由处理单元401执行。例如,在一些实施例中,用于数据库的数据处理方法200可以被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM402和/或通信单元409而被载入和/或安装到该***400上。当计算机程序被加载到RAM 403并由CPU 401执行时,可以执行上文描述的方法200中的一个或多个动作或步骤。
一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、***、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
概括地讲,各种存储器上能够存储指令,当所述指令执行时使得所述处理器401执行以下操作:
确定***改变号间隔,其中,所述***改变号间隔在***改变号起始点和***改变号结束点之间;
在所述***改变号间隔内执行闪回版本查询,以获取所述数据库在所述***改变号间隔内的版本记录,其中,每个版本记录均具有相应的版本开始***改变号;以及
根据所述版本开始***改变号对所述版本记录进行排序以获得经排序的序列。
可选地,根据所述版本开始***改变号对所述版本记录进行排序以获得经排序的序列进一步包括:
根据所述版本开始***改变号的值对所述版本记录进行排序;
在排序后将具有相同的开始***改变号的版本记录组合为一个事务;以及
获得经排序的事务序列。
虽然上面描述了本公开的各种示例实施例可以在硬件或专用电路中实现,但是上述用于区块链的数据处理设备既可以以硬件的形式来实现,也可以通过软件的形式来实现,这是因为:在20世纪90年代,一个技术改进能够很容易地对该改进属于硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是属于软件上的改进(例如对于方法流程的改进)。然而,随着技术的持续发展,如今的很多方法流程的改进几乎都能够通过将改进的方法流程编程到硬件电路中来实现,换句话说,通过对于硬件电路编程不同的程序从而得到相应的硬件电路结构,即实现了硬件电路结构的改变,故这样的方法流程的改进也可以被视为硬件电路结构的直接改进。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device:PLD)(例如现场可编程门阵列(Field Programmable Gate Array:FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片可编程逻辑器件上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compi1er)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language:HDL),而HDL也并非仅有—种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell UniversityProgramming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
用于执行本公开内容的各个方面的计算机可读程序指令或者计算机程序产品也能够存储在云端,在需要调用时,用户能够通过移动互联网、固网或者其他网络访问存储在云端上的用于执行本公开内容的各个方面的计算机可读程序指令,从而实施依据本公开内容的各个方面所公开的技术方案。
以上所述仅为本公开的实施例可选实施例,并不用于限制本公开的实施例,对于本领域的技术人员来说,本公开的实施例可以有各种更改和变化。凡在本公开的实施例的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的实施例的保护范围之内。
虽然已经参考若干具体实施例描述了本公开的实施例,但是应该理解,本公开的实施例并不限于所公开的具体实施例。本公开的实施例旨在涵盖在所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。

Claims (15)

1.一种用于数据库的数据处理方法,其特征在于,所述数据处理方法包括:
确定***改变号间隔,其中,所述***改变号间隔在***改变号起始点和***改变号结束点之间;
在所述***改变号间隔内执行闪回版本查询,以获取所述数据库在所述***改变号间隔内的版本记录,其中,每个版本记录均具有相应的版本开始***改变号;以及
根据所述版本开始***改变号对所述版本记录进行排序,以获得经排序的序列。
2.根据权利要求1所述的数据处理方法,其中,根据所述版本开始***改变号对所述版本记录进行排序以获得经排序的序列进一步包括:
根据所述版本开始***改变号的值对所述版本记录进行排序;
在排序后将具有相同的版本开始***改变号的版本记录组合为一个事务;以及
获得经排序的事务序列。
3.根据权利要求2所述的数据处理方法,所述方法还包括:
将所述经排序的事务序列上传至与所述数据库通信连接的数据总线上。
4.根据权利要求2或3所述的数据处理方法,所述方法还包括:
根据所述经排序的事务序列实施目标数据库中的数据同步。
5.根据权利要求1所述的数据处理方法,其中,所述***改变号间隔从所述***改变号起始点开始至所述***改变号结束点结束,并且所述***改变号间隔包含所述***改变号起始点但不包含所述***改变号结束点。
6.根据权利要求1所述的数据处理方法,其中,所述数据处理方法还包括:
将对所述数据库的操作在时间上分成至少两个分段,其中,所述***改变号间隔与所述至少两个分段中的一个分段相关联。
7.根据权利要求1所述的数据处理方法,其中,所述数据库是Oracle数据库。
8.一种用于数据库的数据处理***,其包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
确定***改变号间隔,其中,所述***改变号间隔在***改变号起始点和***改变号结束点之间;
在所述***改变号间隔内执行闪回版本查询,以获取所述数据库在所述***改变号间隔内的版本记录,其中,每个版本记录均具有相应的版本开始***改变号;以及
根据所述版本开始***改变号对所述版本记录进行排序以获得经排序的序列。
9.根据权利要求8所述的数据处理***,其中,根据所述版本开始***改变号对所述版本记录进行排序以获得经排序的序列进一步包括:
根据所述版本开始***改变号的值对所述版本记录进行排序;
在排序后将具有相同的版本开始***改变号的版本记录组合为一个事务;以及
获得经排序的事务序列。
10.根据权利要求9所述的数据处理***,其中,当所述指令执行时还使得所述处理器执行以下操作:
将经排序的事务序列上传至与所述数据库通信连接的数据总线上。
11.根据权利要求9或10所述的数据处理***,其中,当所述指令执行时还使得所述处理器执行以下操作:
根据所述经排序的事务序列实施目标数据库中的数据同步。
12.根据权利要求8所述的数据处理***,其中,所述***改变号间隔从所述***改变号起始点开始至所述***改变号结束点结束,并且所述***改变号间隔包含所述***改变号起始点但不包含所述***改变号结束点。
13.根据权利要求8所述的数据处理***,其中,当所述指令执行时还使得所述处理器执行以下操作:
将对所述数据库的操作在时间上分成至少两个分段,其中,所述***改变号间隔与所述至少两个分段中的一个分段相关联。
14.根据权利要求8所述的数据处理***,其中,所述数据库是Oracle数据库。
15.一种计算机可读存储介质,其具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据权利要求1至7中任一项所述的数据处理方法。
CN201810564111.3A 2018-06-04 2018-06-04 用于数据库的数据处理方法、***及计算机可读存储介质 Pending CN108920522A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810564111.3A CN108920522A (zh) 2018-06-04 2018-06-04 用于数据库的数据处理方法、***及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810564111.3A CN108920522A (zh) 2018-06-04 2018-06-04 用于数据库的数据处理方法、***及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN108920522A true CN108920522A (zh) 2018-11-30

Family

ID=64419573

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810564111.3A Pending CN108920522A (zh) 2018-06-04 2018-06-04 用于数据库的数据处理方法、***及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN108920522A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739691A (zh) * 2018-12-30 2019-05-10 上海达梦数据库有限公司 数据库备份和恢复方法、装置、终端设备及存储介质
CN112463857A (zh) * 2020-03-27 2021-03-09 谭凌 基于关系数据库支持回溯数据查询的数据处理方法及***

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063494A (zh) * 2010-12-31 2011-05-18 青岛海信网络科技股份有限公司 数据库同步方法及装置
CN104933133A (zh) * 2015-06-12 2015-09-23 中国科学院计算技术研究所 分布式文件***中的元数据快照存储和访问方法
CN104951474A (zh) * 2014-03-31 2015-09-30 阿里巴巴集团控股有限公司 一种用于获取MySQL binlog增量日志的方法和装置
CN104978215A (zh) * 2014-10-08 2015-10-14 腾讯科技(深圳)有限公司 一种文件更新方法、相关设备和***
CN105989048A (zh) * 2015-02-05 2016-10-05 浙江大华技术股份有限公司 一种数据记录处理方法、设备及***
CN106970935A (zh) * 2017-01-20 2017-07-21 朗坤智慧科技股份有限公司 实时数据存储结构、数据写入方法及数据读取方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063494A (zh) * 2010-12-31 2011-05-18 青岛海信网络科技股份有限公司 数据库同步方法及装置
CN104951474A (zh) * 2014-03-31 2015-09-30 阿里巴巴集团控股有限公司 一种用于获取MySQL binlog增量日志的方法和装置
CN104978215A (zh) * 2014-10-08 2015-10-14 腾讯科技(深圳)有限公司 一种文件更新方法、相关设备和***
CN105989048A (zh) * 2015-02-05 2016-10-05 浙江大华技术股份有限公司 一种数据记录处理方法、设备及***
CN104933133A (zh) * 2015-06-12 2015-09-23 中国科学院计算技术研究所 分布式文件***中的元数据快照存储和访问方法
CN106970935A (zh) * 2017-01-20 2017-07-21 朗坤智慧科技股份有限公司 实时数据存储结构、数据写入方法及数据读取方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739691A (zh) * 2018-12-30 2019-05-10 上海达梦数据库有限公司 数据库备份和恢复方法、装置、终端设备及存储介质
CN112463857A (zh) * 2020-03-27 2021-03-09 谭凌 基于关系数据库支持回溯数据查询的数据处理方法及***
CN112463857B (zh) * 2020-03-27 2023-07-25 谭凌 基于关系数据库支持回溯数据查询的数据处理方法及***

Similar Documents

Publication Publication Date Title
CN112396404A (zh) 一种数据中台***
CN102542007B (zh) 关系型数据库之间的同步方法及***
US7290018B2 (en) Change-driven replication of data
CN106844682B (zh) 数据交换方法、装置及***
CN107423303A (zh) 数据同步的方法和***
CN103646111A (zh) 大数据环境下实现实时数据关联的***及方法
CN103488684A (zh) 基于缓存数据多线程处理的电力可靠性指标快速计算方法
CN106557497A (zh) 一种数据同步方法和装置
CN109906448A (zh) 使用单独的逻辑时间戳服务促进可插拔数据库上的操作
CN109885617A (zh) 分布式异构数据库***的数据同步方法及装置
CN105069134A (zh) 一种Oracle统计信息自动收集方法
CN104318481A (zh) 一种面向电网运行的全息时标量测数据萃取转换方法
CN107562931A (zh) 数据抽取***和数据抽取方法
CN110019469A (zh) 分布式数据库数据处理方法、装置、存储介质及电子装置
CN102129646A (zh) 多维度电力市场交易数据交互统一监控方法
CN110019512A (zh) 一种数据处理方法及装置
CN110209730A (zh) 变更数据的同步方法、装置、计算机设备及计算机存储介质
CN108920522A (zh) 用于数据库的数据处理方法、***及计算机可读存储介质
US10909480B2 (en) Method and system for organizing and storing manufacturing process information
Kvet et al. Uni-temporal modelling extension at the object vs. attribute level
CN112527801A (zh) 关系型数据库与大数据***间的数据同步方法及***
CN106802928B (zh) 电网历史数据管理方法及其***
CN115858513A (zh) 数据治理方法、装置、计算机设备和存储介质
CN115080275A (zh) 一种基于实时数据模型的孪生服务组件及其方法
CN111538720A (zh) 电力行业基础数据清理的方法及***

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20181130

WD01 Invention patent application deemed withdrawn after publication