CN108681558A - 一种数据回滚方法、装置、及终端 - Google Patents

一种数据回滚方法、装置、及终端 Download PDF

Info

Publication number
CN108681558A
CN108681558A CN201810317855.5A CN201810317855A CN108681558A CN 108681558 A CN108681558 A CN 108681558A CN 201810317855 A CN201810317855 A CN 201810317855A CN 108681558 A CN108681558 A CN 108681558A
Authority
CN
China
Prior art keywords
data
line
version number
table memory
partition
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.)
Granted
Application number
CN201810317855.5A
Other languages
English (en)
Other versions
CN108681558B (zh
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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201810317855.5A priority Critical patent/CN108681558B/zh
Publication of CN108681558A publication Critical patent/CN108681558A/zh
Application granted granted Critical
Publication of CN108681558B publication Critical patent/CN108681558B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了一种数据回滚方法、装置、及终端。该方法包括:在离线存储介质中配置离线存储数据表,在线上存储介质中配置线上存储数据表;离线存储数据表包括至少一个数据分区,每一数据分区存储一个时间周期内产生的数据;线上存储数据表采用Hbase表结构,其支持存储至少两个版本的数据;针对每一数据分区,将数据分区中的数据同步至线上存储数据表中,并根据数据分区对应的时间周期为所同步的数据设置版本号,其中,版本号随着时间周期的推移而逐步递增;在从线上存储数据表中读取数据的过程中,判断线上存储数据表中具有最高版本号的数据是否错误;若是,则读取具有除最高版本号以外的指定版本号的数据;否则,读取具有最高版本号的数据。

Description

一种数据回滚方法、装置、及终端
技术领域
本说明书实施例涉及数据处理技术领域,尤其涉及一种数据回滚方法、装置、及。
背景技术
数据回滚是指,当数据处理错误时,将数据恢复到上一次正确状态。现有技术中,为了实现数据回滚,在线上存储介质中建立两个线上存储数据表,例如数据表A与数据表B,其中,在离线数据同步过程中,将离线存储介质中所存储的,最近一个时间周期内产生的数据同步至数据表A,将该最近一个时间周期的前一个时间周期内产生的数据同步至数据表B,后续,在从线上存储介质中读取数据的过程中,若检测到数据表A中的数据错误,则切换至数据表B进行数据读取,当数据表A中的数据修复之后,再切换回数据表A进行数据读取。
由上述描述可知,为了实现上述数据回滚过程,需要预先针对两个线上存储数据表配置两套离线数据同步流程以及两套线上数据读取策略,由此可见,现有技术的预配置过程十分繁琐。
发明内容
针对上述技术问题,本说明书实施例提供一种数据回滚方法、装置、及。
根据本说明书实施例的第一方面,提供一种数据回滚方法,所述方法包括:
在离线存储介质中配置离线存储数据表,在线上存储介质中配置线上存储数据表;
所述离线存储数据表包括至少一个数据分区,每一所述数据分区存储一个时间周期内产生的数据;
所述线上存储数据表采用Hbase表结构,其支持存储至少两个版本的数据;
针对每一所述数据分区,将所述数据分区中的数据同步至所述线上存储数据表中,并根据所述数据分区对应的时间周期为所同步的数据设置版本号,其中,所述版本号随着所述时间周期的推移而逐步递增;
在从所述线上存储数据表中读取数据的过程中,判断所述线上存储数据表中具有最高版本号的数据是否错误;
若是,则读取具有除所述最高版本号以外的指定版本号的数据;否则,读取具有所述最高版本号的数据。
根据本申请实施例的第二方面,提供一种数据回滚装置,所述装置包括:
配置模块,用于在离线存储介质中配置离线存储数据表,在线上存储介质中配置线上存储数据表;
所述离线存储数据表包括至少一个数据分区,每一所述数据分区存储一个时间周期内产生的数据;
所述线上存储数据表采用Hbase表结构,其支持存储至少两个版本的数据;
同步模块,用于针对每一所述数据分区,将所述数据分区中的数据同步至所述线上存储数据表中,并根据所述数据分区对应的时间周期为所同步的数据设置版本号,其中,所述版本号随着所述时间周期的推移而逐步递增;
判断模块,用于在从所述线上存储数据表中读取数据的过程中,判断所述线上存储数据表中具有最高版本号的数据是否错误;
第一读取模块,用于若所述线上存储数据表中具有最高版本号的数据错误,则读取具有除所述最高版本号以外的指定版本号的数据;
第二读取模块,用于若所述线上存储数据表中具有最高版本号的数据正确,则读取具有所述最高版本号的数据。
根据本申请实施例的第三方面,提供一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现本说明书实施例提供的任一项数据回滚的方法。
本说明书实施例所提供的技术方案,通过在离线存储介质中配置离线存储数据表,在线上存储介质中配置线上存储数据表,且该离线存储数据表包括至少一个数据分区,每一数据分区存储一个时间周期内产生的数据,该线上存储数据表采用Hbase表结构,其支持存储至少两个版本的数据,针对每一数据分区,将数据分区中的数据同步至线上存储数据表中,并根据数据分区对应的时间周期为同步的数据设置版本号,其中,版本号随着时间周期的推移而逐步递增,后续,在从线上存储数据表中读取数据的过程中,判断线上存储数据表中具有最高版本号的数据是否错误,若是,则读取具有除最高版本号以外的指定版本号的数据,否则,则读取具有最高版本号的数据。通过该技术方案,由于将不同时间周期内产生的数据存储至同一线上存储数据表中,并以版本号进行时间周期的区分,从而可以实现配置一套数据读取策略,一套离线数据同步流程,即可实现数据回滚,预配置过程较为简便,同时,通过一个线上存储数据表可为多个业务应用提供数据服务,适用性较好。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为现有技术中分布式存储架构的示意图;
图2为本说明书实施例中分布式存储架构的示意图;
图3为本说明书一示例性实施例提供的数据回滚方法的实施例流程图;
图4为本说明书一示例性实施例中配置界面的一种示例;
图5为本说明书一示例性实施例提供的数据回滚装置的实施例框图;
图6示出了本说明书实施例所提供的一种更为具体的终端硬件结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
在基于大数据的人工智能、机器学习、决策服务等技术领域中,可以采用分布式计算机架构搜集数据,这些数据可以来自社交网络、电子商务网站、顾客来访记录、顾客消费记录等诸多来源,且这些数据往往具有实时性,即每隔一个预设时间周期,参与业务系统运行的数据可以更新一次。
通常情况下,在诸如此类的分布式计算机架构中,首先将搜集到的数据存储在稳定性较高的离线存储介质中,但是,离线存储介质的读取速度较低,从而为了满足业务系统对数据的访问需求,可以进一步将离线存储介质中的数据按照一定策略,例如每隔预设时间周期,即同步至线上存储介质中,以供业务系统随意访问,该线上存储介质可以为磁盘、磁盘阵列等。
然而,离线存储介质中存储的数据难免出错,从而从离线存储介质同步至线上存储介质中的数据也将存在错误,业务系统读取到这些错误数据,并基于这些错误数据运行时,将出现异常情况,此时,为了保障业务系统的正常运行,可以在线上存储介质中进行数据回滚,即将业务系统所读取的数据恢复到上一次正确数据。
现有技术中,为了实现数据回滚,可以在线上存储介质中建立两个线上存储数据表,在离线数据同步过程中,将离线存储介质中所存储的,最近一个时间周期内产生的数据同步至其中一个线上存储数据表,将该最近一个时间周期的前一个时间周期内产生的数据同步至另一个线上存储数据表,例如,如图1所示,为现有技术中分布式存储架构的示意图,在图1所示例的离线存储介质中包括离线存储数据表,该离线存储数据表包括多个数据分区,图1中以三个数据分区为例,每一数据分区可存储一个时间周期内产生的数据,例如,如图1所示,数据分区“Partition#1”中存储“20171212”这一时间周期内产生的数据,数据分区“Partition#2”中存储“20171213”这一时间周期内产生的数据,数据分区“Partition#3”中存储“20171214”这一时间周期内产生的数据。
具体的,假设首次向离线存储数据表的数据分区“Partition#1”中写入“20171212”这一时间周期内所产生的数据后,可以按照预先设置的时间策略,例如在指定时刻将数据分区“Partition#1”中的数据同步至线上存储介质中的线上存储数据表“TableA”中,后续,在向数据分区“Partition#2”写入“20171213”这一时间周期内所产生的数据后,可以将数据分区“Partition#2”中的数据同步至线上存储介质中的线上存储数据表“Table B”中,再后续,在向数据分区“Partition#3”写入“20171214”这一时间周期内所产生的数据之后,将数据分区“Partition#3”中的数据同步至线上存储数据表“Table A”中,本领域技术人员可以理解的是,如此操作将覆盖“20171212”这一时间周期内所产生的数据。此时,如图1所示,线上存储数据表“Table A”中存储最近一个时间周期,即“20171214”这一时间周期内产生的数据,线上存储数据表“Table B”中存储前一个时间周期,即“20171213”这一时间周期内产生的数据。
后续,业务系统在从线上存储介质中读取数据的过程中,默认读取“Table A”中的数据,但倘若检测到“Table A”中的数据错误,则切换至“Table B”中进行数据读取,后续,“Table A”中的数据修复之后,再切换回“Table A”中进行数据读取。
通过上述描述的数据回滚过程可知,在现有技术中,由于线上存储数据表“TableA”与“Table B”的表名不相同,从而需要预先配置两套离线数据同步流程,以及两套线上数据读取策略,由此可见,现有技术的预配置过程十分繁琐。
为了解决上述问题,本说明书实施例提供一种数据回滚方法,在该方法中,在线上存储介质中配置一个采用Hbase表结构的线上存储数据表,例如,如图2所示,为本说明书实施例中分布式存储架构的示意图,图2所示例的线上存储数据表“Hbase Table”可支持存储至少两个版本的数据,从而,如图2所示,“20171214”与“20171213”这两个时间周期内所产生的数据可同时存储在同一线上存储数据表“Hbase Table”中。通过将不同时间周期内产生的数据存储在同一线上存储数据表中,可解决现有技术中需要预先配置两套离线数据同步流程,以及两套线上数据读取策略,导致预配置过程繁杂的问题,并且,还可以通过一个线上存储数据表为多个业务应用提供数据服务。
本领域技术人员可以理解的是,本说明书实施例中是基于Hbase的多版本特性将至少两个时间周期内产生的数据同时存储在同一线上存储数据表“Hbase Table”中的。
如下,示出下述实施例对本说明书提供的数据回滚方法进行说明。
请参见图3,为本说明书一示例性实施例提供的数据回滚方法的实施例流程图,该方法可以包括以下步骤:
步骤302:针对每一数据分区,将数据分区中的数据同步至线上存储数据表中,并根据数据分区对应的时间周期为同步的数据设置版本号,其中,版本号随着时间周期的推移而逐步递增。
在本说明书实施例中,可以每隔预设时间周期,即将最新的时间周期所对应的数据分区中的数据同步至线上存储数据表“Hbase Table”中,由上述描述可知,该“HbaseTable”可支持存储至少两个版本的数据,由此,在本说明书实施例中,可以根据数据分区对应的时间周期为所同步的数据设置一个版本号。
在一实施例中,版本号的初始值为1,且不同时间周期所对应的版本号随着时间周期的推移而逐步递增,例如,第一个时间周期所对应的版本号为version1,第二个时间周期所对应的版本号为version2,第三个时间周期所对应的版本号为version3。
举例来说,假设“Hbase Table”可支持存储两个版本的数据,并假设离线存储数据表如下述表1所示:
表1
在本说明书实施例中,将上述表1所示例的数据分区“Partition#1”中的数据同步至线上存储数据表“Hbase Table”中,此时的线上存储数据表“Hbase Table”可以如下述表2所示:
表2
后续,将上述表1所示例的数据分区“Partition#2”中的数据同步至线上存储数据表“Hbase Table”中,此时的线上存储数据表“Hbase Table”可以如下述表3所示:
表3
如上述表3所示,在线上存储数据表“Hbase Table”中,同一维度,即同一行同一列的数据可存储有两个版本。
再后续,将上述表1所示例的数据分区“Partition#3”中的数据同步至线上存储数据表“Hbase Table”中,由于上述已假设线上存储数据表“Hbase Table”可存储两个版本的数据,那么,若直接将数据分区“Partition#3”中的数据同步至线上存储数据表“HbaseTable”中,则该线上存储数据表“Partition#3”中将存储3个版本的数据,不符合上述假设,在该情形下,则可以将距离当前时间最久远的时间周期内的数据,例如数据分区“Partition#1”中的数据从上述表3中删除,删除之后,再将数据分区“Partition#3”中的数据写入,此时的线上存储数据表“Hbase Table”可以如下述表4所示:
表4
如上述表4所示,在线上存储数据表“Hbase Table”支持存储两个版本的数据时,该数据表中可同时存储最新时间周期内产生的数据,与该最新时间周期的前一个时间周期内产生的数据。
本领域技术人员可以理解的是,上述所描述的线上存储数据表中可支持存储两个版本的数据仅仅作为举例,在实际应用中,线上存储数据表中可支持存储两个以上版本的数据即可,本说明书实施例对此并不作限制。
此外,在本说明书实施例中,在线上存储数据表中可支持存储的版本数量多于两个,例如为三个时,当将新一个时间周期,例如第四个时间周期内产生的数据同步至线上存储数据表时,可以不限于在线上存储数据表中删除距离当前时间最久远的时间周期内,例如第一个时间周期内所产生的数据,还可以根据预先指定的删除策略,删除其他时间周期,例如第二个时间周期内所产生的数据。
在一实施例中,该删除策略可以为:根据版本优先级,优先删除优先级较低版本的数据,本领域技术人员可以理解的是,该版本优先级可以根据多种因素,例如回滚次数、数据容量等自动设置,例如,某版本数据的回滚次数越低,该版本数据的优先级将越高,本说明书实施例对具体的删除策略并不作限制。
步骤304:在从线上存储数据表中读取数据的过程中,判断线上存储数据表中具有最高版本号的数据是否错误,若是,则执行步骤306;否则,执行步骤308。
步骤306:读取具有出最高版本号以外的指定版本号的数据,结束流程。
步骤308:读取具有最高版本号的数据。
如下,对上述步骤304至步骤308进行说明:
在本说明书实施例中,业务系统可预先设置有监控线程,用于监控业务应用是否正常运行,若监控到业务应用运行异常,则可以向用户返回用于指示业务应用运行异常的提示消息,进一步,用户可以根据该提示消息,通过终端提供的配置界面进行线上数据的配置,例如,如图4所示,为本说明书一示例性实施例中配置界面的一种示例。
如图4(a)所示,默认情况下,具有最高版本号的数据处于勾选状态,也即,在默认情况下,业务系统将从线上存储数据表“Hbase Table”中读取具有最高版本号的数据,当用户接收到上述提示消息后,可以取消具有最高版本号的数据的勾选状态,并将具有除最高版本号以外的其他一个指定版本号的数据置于勾选状态,例如,如图4(b)所示,用户将具有“version2”,也即最高版本号的前一个版本号的数据置于勾选状态,若执行完上述操作后,用户点击“确定”按钮,可以表示用户确定执行当前操作,相应地,若用户点击“取消”按钮,那么,配置界面可以恢复至图4(a)所示。
在本说明书实施例中,当用户点击“确定”按钮后,终端相当于接收到用于指示线上存储数据表“Hbase Table”中具有最高版本号的数据错误的指示消息,为了描述方便,将该指示消息称为第一指示消息,此时,终端可以根据该第一指示消息,将用于指示线上存储数据表““Hbase Table”中具有最高版本号的数据错误的配置信息设置为生效状态。通过该种处理,当业务系统从线上存储数据表“Hbase Table”中读取数据时,则可以根据该配置信息处于生效状态,判断得出线上存储数据表“Hbase Table”中具有最高版本号的数据错误。
进一步,通过上述描述可知,用户在图4所示例的配置界面上重新勾选了具有“version2”这一版本号的数据,此时,终端可以根据用户的勾选情况构造一条数据读取指令,该数据读取指令携带指定版本号,即用户勾选的版本号,例如最高版本号的前一个版本号,后续业务系统在从线上存储数据表“Hbase Table”中读取数据时,则可以执行该数据读取指令,从线上存储数据表“Hbase Table”中读取具有该指定版本号的数据。如下所示,为该数据读取指令的一种示例:
hbase(main):016:0>get'Hbase Table','1',{COLUMN=>'v:c1',VERSIONS=2};
相应的,本领域技术人员可以理解的是,若判断得出线上存储数据表中具有最高版本号的数据正确,例如,判断得出上述配置信息处于失效状态,那么,业务系统则可以从线上存储数据表“Hbase Table”中读取具有最高版本号的数据。
此外,在本说明书实施例中,当用户接收到上述提示消息后,可以将具有最高版本号的数据从线上存储数据表“Hbase Table”中删除,并进一步对该具有最高版本号的数据进行恢复,例如进行数据清洗,并将恢复后的数据再同步至线上存储数据表“Hbase Table”中。后续,当用户确定正确数据已同步至线上存储数据表“Hbase Table”之后,用户还可以通过图4所示例的配置界面重新进行线上数据的配置,例如,用户可以点击图4所示例的配置界面中的“恢复默认配置”这一元素,在该类清洗下终端相当于接收到用于指示线上存储数据表中具有最高版本号的数据已恢复正确的指示消息,为了描述方便,将该指示消息称为第二指示消息,进一步,终端则可以根据该第二指示消息,将上述配置信息从生效状态切换为失效状态,相应的,图4所示例的配置界面将如图4(a)所示。
通过上述描述可知,若上述配置信息处于失效状态,则业务系统将根据该配置信息从线上存储数据表“Hbase Table”中再次读取具有最高版本号的数据。
本说明书实施例所提供的技术方案,通过在离线存储介质中配置离线存储数据表,在线上存储介质中配置线上存储数据表,且该离线存储数据表包括至少一个数据分区,每一数据分区存储一个时间周期内产生的数据,该线上存储数据表采用Hbase表结构,其支持存储至少两个版本的数据,针对每一数据分区,将数据分区中的数据同步至线上存储数据表中,并根据数据分区对应的时间周期为同步的数据设置版本号,其中,版本号随着时间周期的推移而逐步递增,后续,在从线上存储数据表中读取数据的过程中,判断线上存储数据表中具有最高版本号的数据是否错误,若是,则读取具有除最高版本号以外的指定版本号的数据,否则,则读取具有最高版本号的数据。通过该技术方案,由于将不同时间周期内产生的数据存储至同一线上存储数据表中,并以版本号进行时间周期的区分,从而可以实现配置一套数据读取策略,一套离线数据同步流程,即可实现数据回滚,预配置过程较为简便,同时,通过一个线上存储数据表可为多个业务应用提供数据服务,适用性较好。
相应于上述方法实施例,本说明书实施例还提供一种数据回滚装置,参见图5所示,为本说明书一示例性实施例提供的数据回滚装置的实施例框图,该装置可以包括:配置模块51、同步模块52、判断模块53、第一读取模块54,以及第二读取模块55。
其中,配置模块51,可以用于在离线存储介质中配置离线存储数据表,在线上存储介质中配置线上存储数据表;
所述离线存储数据表包括至少一个数据分区,每一所述数据分区存储一个时间周期内产生的数据;
所述线上存储数据表采用Hbase表结构,其支持存储至少两个版本的数据;
同步模块52,可以用于针对每一所述数据分区,将所述数据分区中的数据同步至所述线上存储数据表中,并根据所述数据分区对应的时间周期为所同步的数据设置版本号,其中,所述版本号随着所述时间周期的推移而逐步递增;
判断模块53,可以用于在从所述线上存储数据表中读取数据的过程中,判断所述线上存储数据表中具有最高版本号的数据是否错误;
第一读取模块54,可以用于若所述线上存储数据表中具有最高版本号的数据错误,则读取具有除所述最高版本号以外的指定版本号的数据;
第二读取模块55,可以用于若所述线上存储数据表中具有最高版本号的数据正确,则读取具有所述最高版本号的数据。
在一实施例中,所述指定版本号为所述最高版本号的前一个版本号。
在一实施例中,所述装置还可以包括(图5中未示出):
第一接收模块,用于接收用于指示所述线上存储数据表中具有最高版本号的数据错误的第一指示消息;
第一设置模块,用于根据所述第一指示消息,将用于指示所述线上存储数据表中具有最高版本号的数据错误的配置信息设置为生效状态;
所述判断模块具体用于:判断所述配置信息是否处于生效状态;
若是,则判断得出所述线上存储数据表中具有最高版本号的数据错误;否则,则判断得出所述线上存储数据表中具有最高版本号的数据正确。
在一实施例中,所述第一读取模块54可以包括(图5中未示出):
构造子模块,用于构造一条数据读取指令,所述数据读取指令中携带指定版本号;
读取子模块,用于根据所述数据读取指令,读取具有所述指定版本号的数据。
在一实施例中,所述装置还可以包括(图5中未示出):
第二接收模块,用于接收用于指示所述线上存储数据表中具有最高版本号的数据已恢复正确的第二指示消息;
第二设置模块,用于根据所述第二指示消息,将所述配置信息从所述生效状态切换为失效状态。
可以理解的是,配置模块51、同步模块52、判断模块53、第一读取模块54,以及第二读取模块55与作为五种功能独立的模块,既可以如图5所示同时配置在装置中,也可以分别单独配置在装置中,因此图5所示的结构不应理解为对本说明书实施例方案的限定。
此外,上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
本说明书实施例还提供一种终端,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的数据回滚方法。该方法至少包括:在离线存储介质中配置离线存储数据表,在线上存储介质中配置线上存储数据表;所述离线存储数据表包括至少一个数据分区,每一所述数据分区存储一个时间周期内产生的数据;所述线上存储数据表采用Hbase表结构,其支持存储至少两个版本的数据;针对每一所述数据分区,将所述数据分区中的数据同步至所述线上存储数据表中,并根据所述数据分区对应的时间周期为所同步的数据设置版本号,其中,所述版本号随着所述时间周期的推移而逐步递增;在从所述线上存储数据表中读取数据的过程中,判断所述线上存储数据表中具有最高版本号的数据是否错误;若是,则读取具有除所述最高版本号以外的指定版本号的数据;否则,读取具有所述最高版本号的数据。
图6示出了本说明书实施例所提供的一种更为具体的终端硬件结构示意图,该设备可以包括:处理器610、存储器620、输入/输出接口630、通信接口640和总线650。其中处理器610、存储器620、输入/输出接口630和通信接口640通过总线650实现彼此之间在设备内部的通信连接。
处理器610可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器620可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器620可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器620中,并由处理器610来调用执行。
输入/输出接口630用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图6中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口640用于连接通信模块(图6中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线650包括一通路,在设备的各个组件(例如处理器610、存储器620、输入/输出接口630和通信接口640)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器610、存储器620、输入/输出接口630、通信接口640以及总线650,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的数据回滚方法。该方法至少包括:在离线存储介质中配置离线存储数据表,在线上存储介质中配置线上存储数据表;所述离线存储数据表包括至少一个数据分区,每一所述数据分区存储一个时间周期内产生的数据;所述线上存储数据表采用Hbase表结构,其支持存储至少两个版本的数据;针对每一所述数据分区,将所述数据分区中的数据同步至所述线上存储数据表中,并根据所述数据分区对应的时间周期为所同步的数据设置版本号,其中,所述版本号随着所述时间周期的推移而逐步递增;在从所述线上存储数据表中读取数据的过程中,判断所述线上存储数据表中具有最高版本号的数据是否错误;若是,则读取具有除所述最高版本号以外的指定版本号的数据;否则,读取具有所述最高版本号的数据。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

Claims (11)

1.一种数据回滚方法,所述方法包括:在离线存储介质中配置离线存储数据表,在线上存储介质中配置线上存储数据表;
所述离线存储数据表包括至少一个数据分区,每一所述数据分区存储一个时间周期内产生的数据;
所述线上存储数据表采用Hbase表结构,其支持存储至少两个版本的数据;
针对每一所述数据分区,将所述数据分区中的数据同步至所述线上存储数据表中,并根据所述数据分区对应的时间周期为所同步的数据设置版本号,其中,所述版本号随着所述时间周期的推移而逐步递增;
在从所述线上存储数据表中读取数据的过程中,判断所述线上存储数据表中具有最高版本号的数据是否错误;
若是,则读取具有除所述最高版本号以外的指定版本号的数据;否则,读取具有所述最高版本号的数据。
2.根据权利要求1所述的方法,所述指定版本号为所述最高版本号的前一个版本号。
3.根据权利要求1所述的方法,所述方法还包括:
接收用于指示所述线上存储数据表中具有最高版本号的数据错误的第一指示消息;
根据所述第一指示消息,将用于指示所述线上存储数据表中具有最高版本号的数据错误的配置信息设置为生效状态;
所述判断所述线上存储数据表中具有最高版本号的数据是否错误,包括:
判断所述配置信息是否处于生效状态;
若是,则判断得出所述线上存储数据表中具有最高版本号的数据错误;否则,则判断得出所述线上存储数据表中具有最高版本号的数据正确。
4.根据权利要求1所述的方法,所述读取具有除所述最高版本号以外的指定版本号的数据,包括:
构造一条数据读取指令,所述数据读取指令中携带指定版本号;
根据所述数据读取指令,读取具有所述指定版本号的数据。
5.根据权利要求3所述的方法,所述方法还包括:
接收用于指示所述线上存储数据表中具有最高版本号的数据已恢复正确的第二指示消息;
根据所述第二指示消息,将所述配置信息从所述生效状态切换为失效状态。
6.一种数据回滚装置,所述装置包括:
配置模块,用于在离线存储介质中配置离线存储数据表,在线上存储介质中配置线上存储数据表;
所述离线存储数据表包括至少一个数据分区,每一所述数据分区存储一个时间周期内产生的数据;
所述线上存储数据表采用Hbase表结构,其支持存储至少两个版本的数据;
同步模块,用于针对每一所述数据分区,将所述数据分区中的数据同步至所述线上存储数据表中,并根据所述数据分区对应的时间周期为所同步的数据设置版本号,其中,所述版本号随着所述时间周期的推移而逐步递增;
判断模块,用于在从所述线上存储数据表中读取数据的过程中,判断所述线上存储数据表中具有最高版本号的数据是否错误;
第一读取模块,用于若所述线上存储数据表中具有最高版本号的数据错误,则读取具有除所述最高版本号以外的指定版本号的数据;
第二读取模块,用于若所述线上存储数据表中具有最高版本号的数据正确,则读取具有所述最高版本号的数据。
7.根据权利要求6所述的装置,所述指定版本号为所述最高版本号的前一个版本号。
8.根据权利要求6所述的装置,所述装置还包括:
第一接收模块,用于接收用于指示所述线上存储数据表中具有最高版本号的数据错误的第一指示消息;
第一设置模块,用于根据所述第一指示消息,将用于指示所述线上存储数据表中具有最高版本号的数据错误的配置信息设置为生效状态;
所述判断模块具体用于:判断所述配置信息是否处于生效状态;
若是,则判断得出所述线上存储数据表中具有最高版本号的数据错误;否则,则判断得出所述线上存储数据表中具有最高版本号的数据正确。
9.根据权利要求6所述的装置,所述第一读取模块包括:
构造子模块,用于构造一条数据读取指令,所述数据读取指令中携带指定版本号;
读取子模块,用于根据所述数据读取指令,读取具有所述指定版本号的数据。
10.根据权利要求8所述的装置,所述装置还包括:
第二接收模块,用于接收用于指示所述线上存储数据表中具有最高版本号的数据已恢复正确的第二指示消息;
第二设置模块,用于根据所述第二指示消息,将所述配置信息从所述生效状态切换为失效状态。
11.一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至5任一项所述的方法。
CN201810317855.5A 2018-04-10 2018-04-10 一种数据回滚方法、装置、及终端 Active CN108681558B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810317855.5A CN108681558B (zh) 2018-04-10 2018-04-10 一种数据回滚方法、装置、及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810317855.5A CN108681558B (zh) 2018-04-10 2018-04-10 一种数据回滚方法、装置、及终端

Publications (2)

Publication Number Publication Date
CN108681558A true CN108681558A (zh) 2018-10-19
CN108681558B CN108681558B (zh) 2021-08-06

Family

ID=63800909

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810317855.5A Active CN108681558B (zh) 2018-04-10 2018-04-10 一种数据回滚方法、装置、及终端

Country Status (1)

Country Link
CN (1) CN108681558B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109800069A (zh) * 2018-12-25 2019-05-24 北京明略软件系统有限公司 一种实现数据治理的方法及装置
CN110569221A (zh) * 2019-09-09 2019-12-13 东吴证券股份有限公司 具有版本功能的文件系统管理方法、装置、设备和存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102006179A (zh) * 2009-08-28 2011-04-06 中兴通讯股份有限公司 一种备份数据及回退数据的方法和装置
CN104834688A (zh) * 2015-04-20 2015-08-12 北京奇艺世纪科技有限公司 一种二级索引建立方法和装置
US20150288680A1 (en) * 2014-04-02 2015-10-08 Cleversafe, Inc. Distributing registry information in a dispersed storage network
CN106294008A (zh) * 2016-08-05 2017-01-04 浙江宇视科技有限公司 一种数据恢复方法和装置
CN106484906A (zh) * 2016-10-21 2017-03-08 焦点科技股份有限公司 一种分布式对象存储系统闪回方法及装置
CN106682141A (zh) * 2016-12-20 2017-05-17 华北计算技术研究所(中国电子科技集团公司第十五研究所) 一种基于业务操作日志的数据同步方法
CN107133056A (zh) * 2017-06-09 2017-09-05 北京云创远景软件有限责任公司 智能设备升级恢复分区的方法和装置
US20170331946A1 (en) * 2016-05-14 2017-11-16 Kirusa, Inc. Callback Notification From Devices With Insufficient Credit For Communication
CN107528872A (zh) * 2016-06-22 2017-12-29 杭州海康威视数字技术股份有限公司 一种数据恢复方法、装置及云存储系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102006179A (zh) * 2009-08-28 2011-04-06 中兴通讯股份有限公司 一种备份数据及回退数据的方法和装置
US20150288680A1 (en) * 2014-04-02 2015-10-08 Cleversafe, Inc. Distributing registry information in a dispersed storage network
CN104834688A (zh) * 2015-04-20 2015-08-12 北京奇艺世纪科技有限公司 一种二级索引建立方法和装置
US20170331946A1 (en) * 2016-05-14 2017-11-16 Kirusa, Inc. Callback Notification From Devices With Insufficient Credit For Communication
CN107528872A (zh) * 2016-06-22 2017-12-29 杭州海康威视数字技术股份有限公司 一种数据恢复方法、装置及云存储系统
CN106294008A (zh) * 2016-08-05 2017-01-04 浙江宇视科技有限公司 一种数据恢复方法和装置
CN106484906A (zh) * 2016-10-21 2017-03-08 焦点科技股份有限公司 一种分布式对象存储系统闪回方法及装置
CN106682141A (zh) * 2016-12-20 2017-05-17 华北计算技术研究所(中国电子科技集团公司第十五研究所) 一种基于业务操作日志的数据同步方法
CN107133056A (zh) * 2017-06-09 2017-09-05 北京云创远景软件有限责任公司 智能设备升级恢复分区的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
栾洋洋: "分布式数据库HBase故障恢复方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
翟社平等: "一种基于HBase的语义数据存储模型", 《计算机应用与软件》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109800069A (zh) * 2018-12-25 2019-05-24 北京明略软件系统有限公司 一种实现数据治理的方法及装置
CN110569221A (zh) * 2019-09-09 2019-12-13 东吴证券股份有限公司 具有版本功能的文件系统管理方法、装置、设备和存储介质

Also Published As

Publication number Publication date
CN108681558B (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
US9667750B2 (en) Client-initiated leader election in distributed client-server systems
CN109495312A (zh) 基于仲裁盘和双链路的高可用集群的实现方法和系统
CN105515872B (zh) 配置信息的更新方法、装置及系统
JP2015172871A (ja) 情報処理システム,監視装置,監視プログラム,監視方法
CN110413685A (zh) 数据库服务切换方法、装置、可读存储介质和计算机设备
CN105446827A (zh) 一种数据库故障时的数据存储方法和设备
CN106605217B (zh) 用于将应用从一个站点移动到另一站点的方法和系统
CN110048896A (zh) 一种集群数据获取方法、装置及设备
CN108459792A (zh) 一种流量切换方法、装置、及计算机设备
CN110049368A (zh) 一种显示方法及相关设备
CN112199048B (zh) 数据读取方法、系统、设备及介质
CN108681558A (zh) 一种数据回滚方法、装置、及终端
CN109901985A (zh) 分布式测试装置及方法、存储介质和电子设备
CN111147312B (zh) 资源配置的管理方法及装置、资源配置缓存的管理方法及装置、配置管理系统
CN112307045A (zh) 一种数据同步方法及系统
CN111381931A (zh) 容灾方法、装置及系统
CN110262893A (zh) 配置镜像内存的方法、装置及计算机存储介质
CN108390914A (zh) 一种服务更新方法及装置、系统
CN104517067A (zh) 访问数据的方法、装置及系统
CN106527979B (zh) 数据迁移方法及装置
CN109614271A (zh) 多个集群数据一致性的控制方法、装置、设备及存储介质
CN109144403A (zh) 一种用于云盘模式切换的方法与设备
CN110225077A (zh) 变更供应数据的同步方法、装置、计算机设备及计算机存储介质
CN109101367A (zh) 云计算系统中组件的管理方法和装置
CN108959553A (zh) 一种url更新方法、装置及电子设备

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
TA01 Transfer of patent application right

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

GR01 Patent grant
GR01 Patent grant