CN107547606B - 数据处理方法、集群管理器、资源管理器、数据处理*** - Google Patents
数据处理方法、集群管理器、资源管理器、数据处理*** Download PDFInfo
- Publication number
- CN107547606B CN107547606B CN201610494245.3A CN201610494245A CN107547606B CN 107547606 B CN107547606 B CN 107547606B CN 201610494245 A CN201610494245 A CN 201610494245A CN 107547606 B CN107547606 B CN 107547606B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- incremental
- importing
- import
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 50
- 238000003672 processing method Methods 0.000 title claims abstract description 18
- 230000008676 import Effects 0.000 claims abstract description 169
- 238000000034 method Methods 0.000 claims abstract description 72
- 230000008569 process Effects 0.000 claims abstract description 44
- 230000008859 change Effects 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000012795 verification Methods 0.000 description 32
- 238000010586 diagram Methods 0.000 description 11
- 238000013524 data verification Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据处理方法、集群管理器、资源管理器、数据处理***,其中,该方法包括:接收数据重分布请求;根据上述数据重分布请求指示第一资源管理器对第一节点中存储的原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与上述各部分子原始数据对应的第二节点中,其中,该第一资源管理器用于管理上述第一节点中存储的数据;指示上述第一资源管理器将在进行拆分及导入处理期间存储到上述第一节点中的追增量数据导入到与该追增量数据对应的第二节点中。通过本发明,可以解决相关技术中存在的数据重分布的问题,达到避免业务中断保证在数据库数据庞大的情况下也能实现数据重分布的效果。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种数据处理方法、集群管理器、资源管理器、数据处理***。
背景技术
由于分布式数据库涉及大量分散节点,要求支持的数据量也要远大于单机数据库,因此分布式数据库也要面临不同于单机的数据重分布问题。
然而实现重分布却面临着很多难题,其中关键的一个难题是如何实现在线重分布,即如何在几乎不停止业务的情况下,完成分布数据库的数据重分布。
目前相关技术中的数据重分布方法主要有两种,一种是简单的离线重分布,一种是使用提前分库分片的方式,然而这些模型下的数据重分布追增量数据有着明显的缺陷和局限性。
目前分布式数据库最常用的一种在线重分布模式是数据预分布。该模式需要提前设计好数据的分发规则,即在表设计时就预先分片成大量预分配表,将其放入到不同的数据库中,需要重分布表时在线将某片或者某几片的数据迁移拷贝到指定节点中。
这种架构下在线重分布在后期追增量数据时,由于是按照一个分片(库)作为单位进行数据重分布,因此通过数据库原有工具导出属于这个库的数据,发送到新节点进行数据回放。
但这种模式下的追增量数据方式有着明显的局限性:
这种模式下的追增量数据只能针对某个库整体进行。要根据数据特点提前对数据进行分库,指定数据的路由规则,这样的设计如果一旦不合理,将会导致某些库过于庞大,如果库本身数据很庞大,那么使用这种方式是没有办法完成这个库的重分布的。
针对上述问题,相关技术中并未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据处理方法、集群管理器、资源管理器、数据处理***,以至少解决相关技术中存在的需要在终止业务的情况下进行数据重分布,以及在对追增量数据进行重分布时,需要对追增量所在的数据库整体进行重分布,从而导致在数据库数据庞大的情况下,无法实现数据重分布的问题。
根据本发明的一个实施例,提供了一种数据处理方法,包括:接收数据重分布请求;根据所述数据重分布请求指示第一资源管理器对第一节点中存储的原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与所述各部分子原始数据对应的第二节点中,其中,所述第一资源管理器用于管理所述第一节点中存储的数据;指示所述第一资源管理器将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中。
可选地,指示所述第一资源管理器将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中包括:获取与所述追增量数据对应的第二节点在导入了所述子原始数据后的逻辑事务日志,其中,所述逻辑事务日志用于描述所述第二节点中存储的所述子原始数据的信息;根据所述逻辑事务日志向所述第一资源管理器发送追增量指示,其中,所述追增量指示用于指示所述第一资源管理器根据所述逻辑事务日志确定在进行拆分及导入处理期间存储到所述第一节点中的追增量数据,并将所述追增量数据导入到与所述追增量数据对应的第二节点中。
可选地,在指示所述第一资源管理器将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中之后,所述方法还包括:接收来自所述第一资源管理器的所述追增量数据的第一校验值、导入时间和导入结果,以及,接收来自第二资源管理器的所述追增量数据的第二校验值,其中,所述第二资源管理器用于管理第二节点中存储的数据;在确定所述导入结果为导入成功时,判断所述第一校验值和所述第二校验值是否相同;在判断结果为所述第一校验值和所述第二校验值不相同的情况下,重新执行指示所述第一资源管理器将所述追增量数据导入到与所述追增量数据对应的所述第二节点中的处理;和/或,在判断结果为所述第一校验值和所述第二校验值相同的情况下,判断所述导入时间是否小于预定阈值;在判断结果为所述导入时间小于所述预定阈值的情况下,控制所述第一节点终止存储新的数据以及指示所述第一资源管理器将所述第一节点中存储的且未导入第二节点的数据导入到对应的第二节点中;和/或,在判断结果为所述导入时间大于或等于所述预定阈值的情况下,返回指示所述第一资源管理器将所述第一节点中存储的且未导入对应的所述第二节点的数据导入到对应的所述第二节点中的步骤继续执行,直到将未导入对应的第二节点的数据导入到对应的第二节点中的时间小于所述预定阈值为止。
根据本发明的另一个实施例,还提供了一种数据处理方法,包括:接收来自集群管理器的数据重分布指示;根据所述数据重分布指示对第一节点中存储的原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与各部分子原始数据对应的第二节点中;接收来自所述集群管理器的追增量指示;根据所述追增量指示将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中。
可选地,根据所述数据重分布指示对所述第一节点中存储的所述原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与各部分子原始数据对应的第二节点中包括:根据所述数据重分布指示从所述第一节点中导出所述原始数据;根据数据分发规则对所述原始数据进行拆分,将所述原始数据拆分成多个文件,其中,一个文件对应一个第二节点;将所述多个文件分别上传到与所述多个文件对应的第二节点进行导入。
可选地,根据所述追增量指示将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中包括:根据所述追增量指示中携带的逻辑事务日志确定所述追增量数据,其中,所述逻辑事务日志用于描述第二节点中存储的所述子原始数据的信息;根据所述追增量数据生成数据操作语言DML语句;利用所述DML语句将所述追增量数据导入到与所述追增量数据对应的第二节点中。
可选地,在根据所述追增量指示将在进行拆分及导入处理期间存储到所述第一节点中的所述追增量数据导入到与所述追增量数据对应的第二节点中之后,所述方法还包括:确定所述追增量数据的第一校验值,以及将所述追增量数据导入到所述第二节点中的导入时间及导入结果;将所述第一校验值、所述导入时间和所述导入结果发送给所述集群管理器。
可选地,在将所述第一校验值、所述导入时间和所述导入结果发送给所述集群管理器之后,所述方法还包括:接收来自所述集群管理器的追增量重导入指示,根据所述追增量重导入指示重新执行将所述追增量数据导入到与所述追增量数据对应的第二节点中的处理;和/或,接收来自所述集群管理器的终止指示,根据所述终止指示终止所述第一节点存储新的数据,并将所述第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中;和/或,接收来自所述集群管理器的重复导入指示;根据所述重复导入指示返回将所述第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中的步骤继续执行,直到将未导入对应的第二节点的数据导入到对应的第二节点中的时间小于预定阈值为止。
根据本发明的另一个实施例,还提供了一种集群管理器,包括:第一接收模块,用于接收数据重分布请求;第一指示模块,用于根据所述数据重分布请求指示第一资源管理器对第一节点中存储的原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与所述各部分子原始数据对应的第二节点中,其中,所述第一资源管理器用于管理所述第一节点中存储的数据;第二指示模块,用于指示所述第一资源管理器将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中。
可选地,所述第二指示模块包括:获取单元,用于获取与所述追增量数据对应的第二节点在导入了所述子原始数据后的逻辑事务日志,其中,所述逻辑事务日志用于描述所述第二节点中存储的所述子原始数据的信息;发送单元,用于根据所述逻辑事务日志向所述第一资源管理器发送追增量指示,其中,所述追增量指示用于指示所述第一资源管理器根据所述逻辑事务日志确定在进行拆分及导入处理期间存储到所述第一节点中的追增量数据,并将所述追增量数据导入到与所述追增量数据对应的第二节点中。
可选地,所述集群管理器还包括:第一处理模块,用于在指示所述第一资源管理器将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中之后,接收来自所述第一资源管理器的所述追增量数据的第一校验值、导入时间和导入结果,以及,接收来自第二资源管理器的所述追增量数据的第二校验值,其中,所述第二资源管理器用于管理第二节点中存储的数据;在确定所述导入结果为导入成功时,判断所述第一校验值和所述第二校验值是否相同;在判断结果为所述第一校验值和所述第二校验值不相同的情况下,重新执行指示所述第一资源管理器将所述追增量数据导入到与所述追增量数据对应的所述第二节点中的处理;和/或,在判断结果为所述第一校验值和所述第二校验值相同的情况下,判断所述导入时间是否小于预定阈值;在判断结果为所述导入时间小于所述预定阈值的情况下,控制所述第一节点终止存储新的数据以及指示所述第一资源管理器将所述第一节点中存储的且未导入第二节点的数据导入到对应的第二节点中;和/或,在判断结果为所述导入时间大于或等于所述预定阈值的情况下,返回指示所述第一资源管理器将所述第一节点中存储的且未导入对应的所述第二节点的数据导入到对应的所述第二节点中的步骤继续执行,直到将未导入对应的第二节点的数据导入到对应的第二节点中的时间小于所述预定阈值为止。
根据本发明的另一个实施例,还提供了一种资源管理器,包括:第二接收模块,用于接收来自集群管理器的数据重分布指示;第一导入模块,用于根据所述数据重分布指示对第一节点中存储的原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与各部分子原始数据对应的第二节点中;第三接收模块,用于接收来自所述集群管理器的追增量指示;第二导入模块,用于根据所述追增量指示将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中。
可选地,所述资源管理器还包括:第二处理模块,用于在根据所述追增量指示将在进行拆分及导入处理期间存储到所述第一节点中的所述追增量数据导入到与所述追增量数据对应的第二节点中之后,确定所述追增量数据的第一校验值,以及将所述追增量数据导入到所述第二节点中的导入时间及导入结果;将所述第一校验值、所述导入时间和所述导入结果发送给所述集群管理器。
可选地,所述资源管理器还包括:第三处理模块,用于在将所述第一校验值、所述导入时间和所述导入结果发送给所述集群管理器之后,接收来自所述集群管理器的追增量重导入指示,根据所述追增量重导入指示重新执行将所述追增量数据导入到与所述追增量数据对应的第二节点中的处理;和/或,接收来自所述集群管理器的终止指示,根据所述终止指示终止所述第一节点存储新的数据,并将所述第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中;和/或,接收来自所述集群管理器的重复导入指示;根据所述重复导入指示返回将所述第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中的步骤继续执行,直到将未导入对应的第二节点的数据导入到对应的第二节点中的时间小于预定阈值为止。
根据本发明的另一个实施例,还提供了一种数据处理***,包括集群管理器、第一资源管理器,其中,所述集群管理器连接至所述第一资源管理器,用于根据接收的数据重分布请求向所述第一资源管理器发送数据重分布指示以及追增量指示;所述第一资源管理器,用于根据来自所述集群管理器的数据重分布指示对第一节点中存储的原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与所述各部分子原始数据对应的第二节点中,以及根据来自所述集群管理器的追增量指示将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中。
可选地,所述数据处理***还包括第二资源管理器,其中,所述第二资源管理器连接至所述集群管理器;所述集群管理器在向所述第一资源管理器发送所述追增量指示之后,还用于:接收来自所述第一资源管理器的所述追增量数据的第一校验值、导入时间和导入结果,以及,接收来自所述第二资源管理器的所述追增量数据的第二校验值;在确定所述导入结果为导入成功时,判断所述第一校验值和所述第二校验值是否相同;在判断结果为所述第一校验值和所述第二校验值不相同的情况下,向所述第一资源管理器发送追增量重导入指示;和/或,在判断结果为所述第一校验值和所述第二校验值相同的情况下,判断所述导入时间是否小于预定阈值;在判断结果为所述导入时间小于所述预定阈值的情况下,向所述第一资源管理器发送终止指示;和/或,在判断结果为所述导入时间大于或等于所述预定阈值的情况下,向所述第一资源管理器发送重复导入指示;所述第一资源管理器在根据来自所述集群管理器的追增量指示将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中之后,还用于:确定所述追增量数据的第一校验值,以及将所述追增量数据导入到所述第二节点中的导入时间及导入结果;将所述第一校验值、所述导入时间和所述导入结果发送给所述集群管理器;接收来自所述集群管理器的追增量重导入指示,根据所述追增量重导入指示重新执行将所述追增量数据导入到与所述追增量数据对应的第二节点中的处理;和/或,接收来自所述集群管理器的终止指示,根据所述终止指示终止所述第一节点存储新的数据,并将所述第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中;和/或,接收来自所述集群管理器的重复导入指示;根据所述重复导入指示返回将所述第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中的步骤继续执行,直到将未导入对应的第二节点的数据导入到对应的第二节点中的时间小于所述预定阈值为止。
可选地,所述第一资源管理器用于:根据所述追增量指示中携带的逻辑事务日志确定所述追增量数据,其中,所述逻辑事务日志用于描述第二节点中存储的所述子原始数据的信息;根据所述追增量数据生成数据操作语言DML语句;利用所述DML语句将所述追增量数据导入到与所述追增量数据对应的第二节点中。
根据本发明的又一个实施例,还提供了一种存储介质。该存储介质设置为存储用于执行上述步骤的程序代码。
通过本发明,采用的是在线的数据重分布,从而避免了业务中断,并且,由于在进行追增量数据的重分布时,可以仅对追增量数据进行重分布,无需对追增量数据所在的数据库进行整体的重分布,从而保证了在数据库数据庞大的情况下,也能完成数据重分布的目的。因此,可以解决相关技术中存在的数据重分布的问题,达到避免业务中断保证在数据库数据庞大的情况下也能实现数据重分布的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的数据处理方法的计算机终端的硬件结构框图;
图2是根据本发明实施例的一种数据处理方法的流程图;
图3是根据本发明实施例的另一种数据处理方法的流程图;
图4是根据本发明实施例的分布式数据库在线重分布追增量时序图;
图5是根据本发明实施例的地区支付记录重分布追增量示意图;
图6是根据本发明实施例的动车车票记录重分布追增量示意图;
图7是根据本发明实施例的分布式数据库在线重分布追增量数据及校验示意图;
图8是根据本发明实施例的一种数据处理装置的结构框图;
图9是根据本发明实施例的另一种数据处理装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在一个可选的实施例中,本申请中的数据处理方法可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种数据处理方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的数据处理方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述计算机终端的数据处理方法,图2是根据本发明实施例的一种数据处理方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,接收数据重分布请求;
步骤S204,根据上述数据重分布请求指示第一资源管理器对第一节点中存储的原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与上述各部分子原始数据对应的第二节点中,其中,该第一资源管理器用于管理上述第一节点中存储的数据;
步骤S206,指示上述第一资源管理器将在进行拆分及导入处理期间存储到上述第一节点中的追增量数据导入到与该追增量数据对应的第二节点中。
其中,执行上述操作的可以是集群管理器。该集群管理器可以接收上层业务的集群相关请求(如上述的数据重分布请求),对分布式集群进行管理,协调资源管理器的数据库(Data Base,简称为DB)状态上报,通知资源管理器进行切换、备份以及重分布等命令。上述的第一资源管理器通常是数据库(包括上述第一节点)的上层代理,是响应上层请求对数据库进行复杂操作的本地数据库监控程序。在本发明实施例中,第一资源管理器可以用于响应集群管理器的重分布请求,执行重分布流程。上述的第一节点以及第二节点均是用于保存数据的基本节点。
通过上述步骤,采用的是在线的数据重分布,从而避免了业务中断,并且,由于在进行追增量数据的重分布时,可以仅对追增量数据进行重分布,无需对追增量数据所在的数据库进行整体的重分布,从而保证了在数据库数据庞大的情况下,也能完成数据重分布的目的。因此,可以解决相关技术中存在的数据重分布的问题,达到避免业务中断保证在数据库数据庞大的情况下也能实现数据重分布的效果。
在一个可选的实施例中,指示上述第一资源管理器将在进行拆分及导入处理期间存储到上述第一节点中的追增量数据导入到与上述追增量数据对应的第二节点中包括:获取与上述追增量数据对应的第二节点在导入了上述子原始数据后的逻辑事务日志,其中,该逻辑事务日志用于描述上述第二节点中存储的子原始数据的信息;根据上述逻辑事务日志向第一资源管理器发送追增量指示,其中,该追增量指示用于指示第一资源管理器根据逻辑事务日志确定在进行拆分及导入处理期间存储到上述第一节点中的追增量数据,并将上述追增量数据导入到与追增量数据对应的第二节点中。在本实施例中,第一资源管理器可以根据逻辑事务日志确定第一节点中都有哪些数据备份到第二节点中,从而确定未备份的数据,即确定追增量数据。
在一个可选的实施例中,在指示上述第一资源管理器将在进行拆分及导入处理期间存储到上述第一节点中的追增量数据导入到与上述追增量数据对应的第二节点中之后,上述方法还包括:接收来自第一资源管理器的上述追增量数据的第一校验值、导入时间和导入结果,以及,接收来自第二资源管理器的上述追增量数据的第二校验值,其中,该第二资源管理器用于管理第二节点中存储的数据;在确定上述导入结果为导入成功时,判断上述第一校验值和第二校验值是否相同;在判断结果为第一校验值和第二校验值不相同的情况下,重新执行指示第一资源管理器将追增量数据导入到与追增量数据对应的所述第二节点中的处理;和/或,
在判断结果为第一校验值和第二校验值相同的情况下,判断上述导入时间是否小于预定阈值;在判断结果为上述导入时间小于预定阈值的情况下,控制第一节点终止存储新的数据以及指示第一资源管理器将第一节点中存储的且未导入第二节点的数据导入到对应的第二节点中;和/或,在判断结果为上述导入时间大于或等于预定阈值的情况下,返回指示第一资源管理器将第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中的步骤继续执行,直到将未导入对应的第二节点的数据导入到对应的第二节点中的时间小于上述预定阈值为止。在本实施例中,当判断出导入时间大于或等于上述预定阈值后,说明最新存储到第一节点中的数据量是偏大的,为了保证业务的持续,需要循环执行前述的将第一节点中存储的且未导入第二节点中的新数据导入到第二节点中的处理(在该循环处理中包括上述的确定导入结果,比较两个校验值以及判断导入时间的相关操作步骤,即,每一次循环都是对第一节点中存储的且未导入第二节点中的数据执行一次新的追增量操作),并且,在该循环处理中,当循环结束时,也是同样需要执行上述的控制第一节点终止存储新的数据以及指示第一资源管理器将第一节点中存储的且未导入第二节点的数据导入到对应的第二节点中的操作的。
在上述实施例中,在接收来自第二资源管理器的上述追增量数据的第二校验值之前,是需要执行以下操作的:向第二资源管理发送追增量数据校验请求,其中,该追增量数据校验请求中携带上述的逻辑事务日志。第二资源管理器中会根据该追增量数据校验请求生成用于查询第二节点中的数据的查询语句,从而获取数据并计算校验值,并返回计算出的校验值。
上述的各实施例主要是从集群管理器侧进行描述的,从上述的实施例中可知,本发明中的数据重分布方法不再需要提前对数据进行分析,不再需要担心数据分发规则的设计不合理的问题,也不需要对库级的数据设计分发规则。只需要在保证各节点负载均衡情况,根据目前场景设计各节点的合理的分发规则即可。并且,一旦发生某个节点某个表过于庞大需要进行重分布时,通过客户端通知集群管理器,集群管理器控制各个DB的资源管理器,执行重分布过程。在在线情况下,将该表原有数据导出,按照最新的数据分发规则重新拆分,并导入到各个新的数据节点。上述全量数据重分布结束以后,开始追增量数据流程。集群管理器收集各个节点的追增量结果,并向新节点发起增量校验流程。集群管理器比较新旧节点的校验值,完成增量校验。
由于在相关技术中进行数据重分布时是不支持增量数据的校验。并且,相关技术中的后期追增量是直接使用数据库原有工具解析和回放,因此没有办法对新增的数据是否正确进行校验。从而会导致在进行数据重分布过程导致数据出错,影响后续的正常业务。在本发明实施例中,增加了数据的校验操作,通过将第一资源管理器上报的追增量数据的第一校验值和第二资源管理器上报的追增量数据的第二校验值进行比较,从而确定重分布的数据是否正确地导入到了第二节点中,保证了数据的完整性,为后续的业务的正常进行提供了保障。
图3是根据本发明实施例的另一种数据处理方法的流程图,如图3所示,该流程包括如下步骤:
步骤S302,接收来自集群管理器的数据重分布指示;
步骤S304,根据上述数据重分布指示对第一节点中存储的原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与各部分子原始数据对应的第二节点中;
步骤S306,接收来自上述集群管理器的追增量指示;
步骤S308,根据上述追增量指示将在进行拆分及导入处理期间存储到第一节点中的追增量数据导入到与追增量数据对应的第二节点中。
其中,执行上述操作的可以是用于管理第一节点中的数据的第一资源管理器。
通过上述步骤,采用的是在线的数据重分布,从而避免了业务中断,并且,由于在进行追增量数据的重分布时,可以仅对追增量数据进行重分布,无需对追增量数据所在的数据库进行整体的重分布,从而保证了在数据库数据庞大的情况下,也能完成数据重分布的目的。因此,可以解决相关技术中存在的数据重分布的问题,达到避免业务中断保证在数据库数据庞大的情况下也能实现数据重分布的效果。
在一个可选的实施例中,根据上述数据重分布指示对第一节点中存储的原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与各部分子原始数据对应的第二节点中包括:根据上述数据重分布指示从第一节点中导出上述原始数据;根据数据分发规则对上述原始数据进行拆分,将上述原始数据拆分成多个文件,其中,一个文件对应一个第二节点;将上述多个文件分别上传到与该多个文件对应的第二节点进行导入。在本实施例中,上述的拆分规则可以是灵活调整的,随着分布式数据库的运行,数据库数据会越来越多,一旦发现之前确定的拆分规则有问题,便可以随时对拆分规则进行调整,并且,该拆分规则与上述的原始数据的分发规则可以是相对应的,同样的,该原始数据的分发规则也是可以灵活调整的。
在一个可选的实施例中,根据上述追增量指示将在进行拆分及导入处理期间存储到上述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中包括:根据上述追增量指示中携带的逻辑事务日志确定上述追增量数据,其中,该逻辑事务日志用于描述第二节点中存储的上述子原始数据的信息;根据上述追增量数据生成数据操作语言DML语句;利用该DML语句将上述追增量数据导入到与上述追增量数据对应的第二节点中。在本实施例中,在生成上述DML语句时,可以首先生成用于将数据导入到第一节点中的初始DML语句,然后再对该初始DML语句进行改造得到上述的DML语句,主要改造的内容包括:在初始DML语句中用新节点名(即,第二节点的名称)代理旧节点名(即,第一节点的名称),并在where后指定新的分发键字段,该分发键字段用于指向第二节点。在本实施例中,在利用上述DML语句将上述追增量数据导入到与上述追增量数据对应的第二节点中时,可以首先与第二节点建立临时连接,并在连接之后执行生成的上述DML语句。
在一个可选的实施例中,在根据上述追增量指示将在进行拆分及导入处理期间存储到第一节点中的上述追增量数据导入到与上述追增量数据对应的第二节点中之后,上述方法还包括:确定上述追增量数据的第一校验值,以及将上述追增量数据导入到第二节点中的导入时间及导入结果;将上述第一校验值、导入时间和导入结果发送给集群管理器。在本实施例中,在将第一校验值、导入时间和导入结果发送给集群管理器之后,集群管理器可以根据导入结果、第一校验值和导入时间进行相关的验证(在对校验值进行验证时,需要结合来自第二资源管理器的第二校验值进行验证)及判断操作,具体操作在前述的实施例中已进行了陈述,在此,不再赘述。
在一个可选的实施例中,上述第一校验值、导入时间和导入结果可以用于集群管理器进行相关的验证及判断操作,并且,根据不同的验证和/或判断结果,会受到集群管理器下发的不同的指示,包括:接收来自集群管理器的追增量重导入指示,根据该追增量重导入指示重新执行将上述追增量数据导入到与追增量数据对应的第二节点中的处理;和/或,接收来自集群管理器的终止指示,根据该终止指示终止第一节点存储新的数据,并将该第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中;和/或,接收来自集群管理器的重复导入指示;根据该重复导入指示返回将第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中的步骤继续执行,直到将未导入对应的第二节点的数据导入到对应的第二节点中的时间小于上述预定阈值为止。在本实施例中,在循环操作终止时,也会接收到来自集群管理器的终止指示,根据该终止指示终止第一节点存储新的数据,并将该第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中。
图3及与图3相关的实施例是从第一资源管理器侧进行描述的。从上述的实施例中可知,在进行追增量数据流程时,资源管理器(即,上述的第一资源管理器)首先获取旧节点(即,上述的第一节点)的数据库事务日志,根据上一次备份到的位置或者上一次回放到的位置筛选出事务日志块,筛选得到跟旧表有关的结构化查询语言(Structured QueryLanguage,简称为SQL)语句。通过这些SQL语句连接数据库执行获取数据计算增量校验值。然后再将这些SQL语句根据新表名、新的分发规则以及其他节点信息等重构并发送到相应的机器,并行提交执行。将回放结果、校验值和回放时间上报给集群管理器。新节点(对应于上述的第二节点)收到来自集群管理器的增量校验请求以后,可以通过本次增量回放开始和结束的事务日志位置获取本次回放的SQL语句,从而获取相关数据计算校验值并上报给集群管理器。
在本发明的一个实施例中,还提供了一种数据处理方法,包括如下步骤:
接收来自集群管理器的追增量数据校验请求;
根据该追增量数据校验请求获取第二节点中的追增量数据的第二校验值;
将该第二校验值返回给所述集群管理器。
其中,上述操作的执行主体可以是用于管理第二节点中的数据的第二资源管理器。
上述第二校验值用于集群管理器验证第一资源管理器导入到第二节点中的追增量数据是否正确,从而保证了数据的完整性。
在一个可选的实施例中,在根据上述追增量数据校验请求获取第二节点中的追增量数据的第二校验值时,可以首先根据上述追增量数据生成用于查询第二节点中的数据的查询语句,从而利用该查询语句获取追增量数据并计算校验值。
下面结合图4从集群管理器、第一资源管理器、第二资源管理器整体出发对本发明中的数据处理过程进行说明,该整体流程包括如下步骤:
第一步:集群管理器收到数据重分布的请求后,对需要重分布的表进行全量导出,并根据分发规则进行拆分,将拆分后的文件上传到相应的节点进行导入,控制完成表的初始全量数据的重分布。
第二步:由于在初始全量重分布过程中,业务仍然在初始节点上提交数据。因此需要对这段时间的数据追加到新节点上。集群控制器首先查询各个新节点当前逻辑事务日志位置并记录(对应于图4中的步骤1、2、3、4),然后发送追增量请求给旧节点的资源控制器(对应于图4中的步骤5),资源控制器根据备份到的位置,扫描逻辑事务日志过滤获取相应SQL语句,通过这些SQL获取数据计算校验值(对应于图4中的步骤6、7),并根据新的分发规则等对SQL语句进行改造,计算每条SQL语句相应的节点。
第三步,并发对每条新SQL到其对应的新节点上执行回放(对应于图4中的步骤8、9),执行完成以后,统计回放时间以及回放结果和校验值上报集群管理器(对应于图4中的步骤10、11、12)。
第四步,集群管理器收到回复后,对新节点发起本次追增量的校验请求(对应于图4中的步骤13、14)。
第五步,资源管理器收到校验请求后,通过追增量前的事务日志位置获取本次追增量的SQL语句,连接DB获取数据,并计算校验值,回复给集群管理器(对应于图4中的步骤15、16)。
第六步,资源管理器对旧节点和新节点的校验值进行比较确定本次追增量数据是否正确,并启动下一次追增量的流程。根据回放结果,确定是否发起锁表和发起最后一次追增量操作(对应于图4中的步骤17)。
通过上述各步骤能够保证分布式数据库在线重分布的可靠性和普适性,确保了分布式数据库的可维护性和数据安全。
下面结合不同的数据库对本发明进行说明:
具体实施例一
在本实施例集合图5对基于MySQL分布式集群数据库的在线支付***进行说明:
在该***中,假设是按照地区分表保存支付记录,那么某地区出现的交付记录突然暴涨,或者支付账户突然暴涨等情况,导致某个表承受的数据量增大到需要重分布的程度,此时就要发起分布式数据库的在线重分布操作,对该地区的支付信息根据新的分发规则进行切分。
在本实施例中,以上海地区的支付记录为例,假设重分布前跟上海地区有关的所有支付记录保存在一个单独的上海地区表中,一旦上海地区的数据一直累积或者突然爆发式增长,将使该单表不堪重负,必须进行重分布。期望在修改原来的哈希分发规则(即在此例中,是根据地区字段内容来确定数据存在的节点位置,比如地区为上海的记录将被集群管理器分发到节点1的表ShanghaiPayRecord,地区为南京的记录被集群管理器分发到节点2的表NanjingPayRecord)以后的重分布,使本来单节点上海地区的数据分解到多个节点的表上。
本次重分布首先将上海这个表的初始原数据根据新制定的分发规则(比如根据上海地区的行政区使用hash分发规则,比如对于上海普陀区的记录分发到节点1的PutuoPayRecord表或者ShanghaiPayRecord1表,依次类推)进行重新分布,即首先通过MySQL的导出命令mysqldump对原来的上海地区的表进行数据导出,之后资源管理器将数据文件的所有记录根据新的分发规则进行拆分,拆分成多个文件,每个文件对应一个节点,将这些文件分别导入他们新规则下新表所属的MySQL数据库节点(已提前建过表),就完成初始原支付记录数据的重分布操作。
完成这一步后,开始在线追增量数据,将在上一次重分布期间产生上海地区的新支付记录重分布到新表节点。集群管理器给上海地区旧表对应节点的资源管理器发送追增量请求,包含上一轮重分布数据恢复到的位置。
资源管理器收到在线追增量的请求后,根据下发的位置,顺序分析事务日志MySQL的binlog文件,获取支付记录的数据,对这些数据计算校验值;利用这些数据产生DML语句,使用新表名代替旧表名,where后指定新的分发键字段,组建产生新的DML语句,并根据节点和新的分发规则分发字段分别保存在不同的文件中,最后将这些新的DML语句发送到相应的新表节点执行,从而完成上海地区旧表的交付数据的重新分布,完成后,回复集群管理器本轮数据的校验值,追增量结果和本轮追增量时间,校验操作可参考图7。
集群管理器向这些新表节点的资源管理器发起本轮的追增量数据校验,携带本轮追增量之前查询到的binlog位置。
新节点的资源管理器收到增量校验的请求后,根据下发的位置和表名,分析binlog日志生成查询SQL语句,从而获取数据计算校验值,并回复给集群管理器。
集群管理器综合新节点的校验值,跟旧节点的校验值比较,如果不同则本次回放失效需要重新回放,否则,集群管理器将对本轮发起的追增量时间进行判断。如果小于追增量阈值,则会通知资源管理器发起锁表操作,完成最后一轮的追增量操作,否则,将继续新的一轮的追增量操作,直到某一轮追增量时间小于追增量阈值。
具体实施例二
在本实施例集合图6对基于MariaDB分布式集群数据库的车票在线购票***进行说明:
在该***中,假设是按照票据类型保存购票记录,当某种类型的票购票记录突然增多或者购票账户人数不断增多,导致某个表承受的数据量增大到需要重分布的程度,此时就要发起分布式数据库的在线重分布操作,对该类车票的购票信息根据新的分发规则(比如按照到达地区等方式)进行切分。
在本实施例中,以动车车票为例,假设重分布前所有动车的购票记录保存在一个单独的表中,一旦动车车票的数据一直累积或者突然爆发式增长,将使该单表不堪重负,必须进行重分布。期望在修改分发规则(在此例中,是根据车票类型内容来确定数据存在的节点位置,比如动车车票的购票记录对应节点1的表DongcheRecord,高铁车票的记录对应节点2的表GaotieRecord)以后的重分布,使本来单节点动车车票的数据分解到多个节点的表上。
本次重分布首先将动车这个表的初始原数据根据新制定的分发规则(比如根据到达地点对数据进行哈希分发,如到达南京的动车购票记录将集群管理器被分发到节点1的表DongcheRecordOfNanjing,依次类推)进行重新分布,即首先通过mariadb的导出命令mysqldump对原来的动车车票的表进行数据导出,之后资源管理器将数据文件的所有记录根据新的分发规则进行拆分,拆分成多个文件,每个文件对应一个节点,将这些文件分别导入他们新规则下新表所属的MariaDB数据库节点(已提前建过表),就完成初始原动车车票数据的重分布操作。
完成这一步后,开始在线追增量数据,将在上一次重分布期间产生的动车车票的新购票记录重分布到新表节点。集群管理器给动车车票旧表对应节点的资源管理器发送追增量请求,包含上一轮重分布数据恢复到的位置。
资源管理器收到在线追增量的请求后,根据下发的位置,顺序分析事务日志MariaDB的binlog文件,获取购票记录的数据,对这些数据的所有列数据计算校验值;利用这些数据产生DML语句,使用新表名代替旧表名,where后指定新的分发键字段,组建产生新的DML语句,并根据节点和新的分发规则分发字段分别保存在不同的文件中,最后将这些新的DML语句发送到相应的新表节点执行,从而完成动车车票旧表的购票数据的重新分布,完成后,回复集群管理器本轮数据的校验值,追增量结果和本轮追增量时间,校验操作可参考图7。
集群管理器向这些新表节点的资源管理器发起本轮的追增量数据校验,携带本轮追增量之前查询到的binlog位置。
新节点的资源管理器收到增量校验的请求后,根据下发的位置和表名,分析binlog日志生成查询SQL语句,从而获取数据计算校验值,并回复给集群管理器。
集群管理器综合新节点的校验值,跟旧的购票记录所在节点的校验值比较,如果不同则本次回放失效需要重新回放,否则,集群管理器将对本轮发起的追增量时间进行判断。如果小于追增量阈值,则会通知资源管理器发起锁表操作,完成最后一轮的追增量操作,否则,将继续新的一轮的追增量操作,直到某一轮追增量时间小于追增量阈值。
具体实施例三
在本实施例中对基于Oracle的分布式集群数据库的在线购物***进行说明:
在该***中,假设是按照地区分表保存购物记录,当购物记录突然增多或者购物人数不断增多亦或者是商品种类不断增加,导致某个表承受的数据量增大到需要重分布的程度,此时就要发起分布式数据库的在线重分布操作,对该地区的购物信息根据新的分发规则进行切分。
在本实施例中,以南京地区的购物数据为例,假设重分布前所有南京地区的购票记录保存在一个单独的表中,一旦南京地区购物的数据一直累积或者突然爆发式增长,将使该单表不堪重负,必须进行重分布。期望在修改分发规则以后的重分布,使本来单节点南京地区的购物数据分解到多个节点的表上。
本次重分布首先将南京地区购物数据这个表的初始原数据根据新制定的分发规则(比如根据行政区划分等)进行重新分布,即首先通过Oracle的导出命令对原来的购物记录的表进行数据导出,之后资源管理器将数据文件的所有记录根据新的分发规则进行拆分,拆分成多个文件,每个文件对应一个节点,将这些文件分别导入他们新规则下新表所属的Oracle数据库节点(已提前建过表),就完成初始南京地区的购物数据的重分布操作。
完成这一步后,开始在线追增量数据,将在上一次重分布期间产生的南京地区的新购物数据重分布到新表节点。集群管理器给南京地区购物数据旧表对应节点的资源管理器发送追增量请求,包含上一轮重分布数据恢复到的位置。
资源管理器收到在线追增量的请求后,根据下发的位置,顺序分析Oracle的事务日志文件,获取购物记录的数据,对这些数据的所有列数据计算校验值;利用这些数据产生DML语句,使用新表名代替旧表名,where后指定新的分发键字段,组建产生新的DML语句,并根据节点和新的分发规则分发字段分别保存在不同的文件中,最后将这些新的DML语句发送到相应的新表节点执行,从而完成南京地区旧表的购物数据的重新分布,完成后,回复集群管理器本轮数据的校验值、追增量结果和本轮追增量时间,校验操作可参考图7。
集群管理器向这些新表节点的资源管理器发起本轮的追增量数据校验,携带本轮追增量之前查询到的事务日志位置。
新节点的资源管理器收到增量校验的请求后,根据下发的位置和表名,分析事务日志生成查询SQL语句,从而获取数据计算校验值,并回复给集群管理器。
集群管理器综合新节点的校验值,跟旧的南京地区购物记录所在节点的校验值比较,如果不同则本次回放失效需要重新回放,否则,集群管理器将对本轮发起的追增量时间进行判断。如果小于追增量阈值,则会通知资源管理器发起锁表操作,完成最后一轮的追增量操作,否则,将继续新的一轮的追增量操作,直到某一轮追增量时间小于追增量阈值。
具体实施例四
在本实施例中对基于PosgreSQL分布式集群数据库的在线股票交易***进行说明:
在该***中,假设是按照股票类别分表保存股票记录,当股票交易记录突然增多或者该股票类别的股票不断增多亦或者是持有某类股票的人数不断增加,导致某个表承受的数据量增大到需要重分布的程度,此时就要发起分布式数据库的在线重分布操作,对该地区的股票相关信息根据新的分发规则进行切分。
在本实施例中,以大盘股为例,假设重分布前所有大盘股的交易记录保存在一个单独的表中,一旦大盘股的交易记录数据一直累积或者突然爆发式增长,将使该单表不堪重负,必须进行重分布。期望在修改分发规则以后的重分布,使本来单节点大盘股的交易记录数据分解到多个节点的表上。
本次重分布首先将大盘股交易记录这个表的初始原数据根据新制定的分发规则(比如根据股票代码进行哈希划分等)进行重新分布,即首先通过PosgreSQL的导出命令对原来的大盘股交易记录的表进行数据导出,之后资源管理器将数据文件的所有记录根据新的分发规则进行拆分,拆分成多个文件,每个文件对应一个节点,将这些文件分别导入他们新规则下新表所属的PosgreSQL数据库节点(已提前建过表),就完成初始大盘股交易记录数据的重分布操作。
完成这一步后,开始在线追增量数据,将在上一次重分布期间产生的大盘股的新交易记录重分布到新表节点。集群管理器给大盘股交易记录旧表对应节点的资源管理器发送追增量请求,包含上一轮重分布数据恢复到的位置。
资源管理器收到在线追增量的请求后,根据下发的位置,顺序分析PosgreSQL的事务日志文件,获取交易记录的数据,对这些数据的所有列数据计算校验值;利用这些数据产生DML语句,使用新表名代替旧表名,where后指定新的分发键字段,组建产生新的DML语句,并根据节点和新的分发规则分发字段分别保存在不同的文件中,最后将这些新的DML语句发送到相应的新表节点执行,从而完成大盘股交易记录旧表的购票数据的重新分布,完成后,回复集群管理器本轮数据的校验值,追增量结果和本轮追增量时间,校验操作可参考图7。
集群管理器向这些新表节点的资源管理器发起本轮的追增量数据校验,携带本轮追增量之前查询到的事务日志位置。
新节点的资源管理器收到增量校验的请求后,根据下发的位置和表名,分析事务日志生成查询SQL语句,从而获取数据计算校验值,并回复给集群管理器。
集群管理器综合新节点的校验值,跟旧的大盘股交易记录所在节点的校验值比较,如果不同则本次回放失效需要重新回放,否则,集群管理器将对本轮发起的追增量时间进行判断。如果小于追增量阈值,则会通知资源管理器发起锁表操作,完成最后一轮的追增量操作,否则,将继续新的一轮的追增量操作,直到某一轮追增量时间小于追增量阈值。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种数据处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本发明实施例的集群管理器的结构框图,如图8所示,该装置包括第一接收模块82、第一指示模块84和第二指示模块86,下面对该装置进行说明:
第一接收模块82,用于接收数据重分布请求;第一指示模块84,连接至上述第一接收模块82,用于根据上述数据重分布请求指示第一资源管理器对第一节点中存储的原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与各部分子原始数据对应的第二节点中,其中,该第一资源管理器用于管理上述第一节点中存储的数据;第二指示模块86,连接至上述第一指示模块84,用于指示上述第一资源管理器将在进行拆分及导入处理期间存储到第一节点中的追增量数据导入到与追增量数据对应的第二节点中。
在一个可选的实施例中,上述第二指示模块86包括获取单元和发送单元,其中,该获取单元用于获取与上述追增量数据对应的第二节点在导入了上述子原始数据后的逻辑事务日志,其中,该逻辑事务日志用于描述第二节点中存储的子原始数据的信息;上述发送单元用于根据上述逻辑事务日志向第一资源管理器发送追增量指示,其中,该追增量指示用于指示第一资源管理器根据逻辑事务日志确定在进行拆分及导入处理期间存储到所述第一节点中的追增量数据,并将追增量数据导入到与追增量数据对应的第二节点中。
在一个可选的实施例中,上述装置还包括第一处理模块,用于在指示第一资源管理器将在进行拆分及导入处理期间存储到第一节点中的追增量数据导入到与追增量数据对应的第二节点中之后,接收来自第一资源管理器的追增量数据的第一校验值、导入时间和导入结果,以及,接收来自第二资源管理器的追增量数据的第二校验值,其中,该第二资源管理器用于管理第二节点中存储的数据;在确定上述导入结果为导入成功时,判断第一校验值和第二校验值是否相同;在判断结果为第一校验值和第二校验值不相同的情况下,重新执行指示第一资源管理器将上述追增量数据导入到与追增量数据对应的第二节点中的处理;和/或,在判断结果为上述第一校验值和第二校验值相同的情况下,判断导入时间是否小于预定阈值;在判断结果为导入时间小于预定阈值的情况下,控制第一节点终止存储新的数据以及指示第一资源管理器将第一节点中存储的且未导入第二节点的数据导入到对应的第二节点中;和/或,在判断结果为导入时间大于或等于预定阈值的情况下,返回指示上述第一资源管理器将第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中的步骤继续执行,直到将未导入对应的第二节点的数据导入到对应的第二节点中的时间小于上述预定阈值为止。
图9是根据本发明实施例的资源管理器的结构框图,如图9所示,该装置包括第二接收模块92、第一导入模块94、第三接收模块96和第二导入模块98,下面对该装置进行说明:
第二接收模块92,用于接收来自集群管理器的数据重分布指示;第一导入模块94,连接至上述第二接收模块92,用于根据上述数据重分布指示对第一节点中存储的原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与各部分子原始数据对应的第二节点中;第三接收模块96,连接至上述第一导入模块94,用于接收来自上述集群管理器的追增量指示;第二导入模块98,连接至上述第三接收模块96,用于根据上述追增量指示将在进行拆分及导入处理期间存储到第一节点中的追增量数据导入到与上述追增量数据对应的第二节点中。
在一个可选的实施例中,上述第一导入模块94可以通过如下方式根据数据重分布指示对第一节点中存储的原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与各部分子原始数据对应的第二节点中:根据上述数据重分布指示从第一节点中导出上述原始数据;根据数据分发规则对上述原始数据进行拆分,将上述原始数据拆分成多个文件,其中,一个文件对应一个第二节点;将上述多个文件分别上传到与多个文件对应的第二节点进行导入。
在一个可选的实施例中,上述第二导入模块98可以通过如下方式根据追增量指示将在进行拆分及导入处理期间存储到第一节点中的追增量数据导入到与该追增量数据对应的第二节点中:根据上述追增量指示中携带的逻辑事务日志确定所述追增量数据,其中,该逻辑事务日志用于描述第二节点中存储的所述子原始数据的信息;根据该追增量数据生成数据操作语言DML语句;利用该DML语句将上述追增量数据导入到与追增量数据对应的第二节点中。
在一个可选的实施例中,上述装置还包括第二处理模块,用于在根据上述追增量指示将在进行拆分及导入处理期间存储到第一节点中的上述追增量数据导入到与追增量数据对应的第二节点中之后,确定上述追增量数据的第一校验值,以及将上述追增量数据导入到第二节点中的导入时间及导入结果;将上述第一校验值、导入时间和导入结果发送给集群管理器。
在一个可选的实施例中,上述装置还包括第三处理模块,用于在将上述第一校验值、导入时间和导入结果发送给集群管理器之后,接收来自集群管理器的追增量重导入指示,根据上述追增量重导入指示重新执行将上述追增量数据导入到与追增量数据对应的第二节点中的处理;和/或,接收来自集群管理器的终止指示,根据该终止指示终止第一节点存储新的数据,并将该第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中;和/或,接收来自上述集群管理器的重复导入指示;根据上述重复导入指示返回将第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中的步骤继续执行,直到将未导入对应的第二节点的数据导入到对应的第二节点中的时间小于所述预定阈值为止。
在一个可选的实施例中,还提供了一种数据处理***,包括集群管理器、第一资源管理器,其中,该集群管理器连接至第一资源管理器,用于根据接收的数据重分布请求向第一资源管理器发送数据重分布指示以及追增量指示;第一资源管理器用于根据来自集群管理器的数据重分布指示对第一节点中存储的原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与各部分子原始数据对应的第二节点中,以及根据来自集群管理器的追增量指示将在进行拆分及导入处理期间存储到第一节点中的追增量数据导入到与追增量数据对应的第二节点中。
在一个可选的实施例中,上述集群管理器可以通过如下方式向第一资源管理器发送上述追增量指示:获取与追增量数据对应的第二节点在导入了上述子原始数据后的逻辑事务日志,其中,该逻辑事务日志用于描述第二节点中存储的子原始数据的信息;根据上述逻辑事务日志向第一资源管理器发送上述追增量指示。
在一个可选的实施例中,上述数据处理***还包括第二资源管理器,其中,该第二资源管理器连接至上述集群管理器(上述集群管理器还用于管理该第二资源管理器);在本实施例中,上述集群管理器在向第一资源管理器发送所述追增量指示之后,还用于:接收来自第一资源管理器的追增量数据的第一校验值、导入时间和导入结果,以及,接收来自第二资源管理器的追增量数据的第二校验值;在确定上述导入结果为导入成功时,判断第一校验值和第二校验值是否相同;在判断结果为第一校验值和第二校验值不相同的情况下,向第一资源管理器发送追增量重导入指示;和/或,在判断结果为第一校验值和第二校验值相同的情况下,判断上述导入时间是否小于预定阈值;在判断结果为上述导入时间小于预定阈值的情况下,向第一资源管理器发送终止指示;和/或,在判断结果为导入时间大于或等于预定阈值的情况下,向第一资源管理器发送重复导入指示。在本实施例中,第一资源管理器在根据来自集群管理器的追增量指示将在进行拆分及导入处理期间存储到第一节点中的追增量数据导入到与追增量数据对应的第二节点中之后,还用于:确定追增量数据的第一校验值,以及将上述追增量数据导入到第二节点中的导入时间及导入结果;将第一校验值、所述导入时间和导入结果发送给集群管理器;接收来自集群管理器的追增量重导入指示,根据追增量重导入指示重新执行将追增量数据导入到与追增量数据对应的第二节点中的处理;和/或,接收来自集群管理器的终止指示,根据上述终止指示终止第一节点存储新的数据,并将第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中;和/或,接收来自集群管理器的重复导入指示;根据重复导入指示返回将第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中的步骤继续执行,直到将未导入对应的第二节点的数据导入到对应的第二节点中的时间小于预定阈值为止。
在一个可选的实施例中,上述第一资源管理器在根据数据重分布指示对第一节点中存储的原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与各部分子原始数据对应的第二节点时,可以通过如下方式实现:根据上述数据重分布指示从第一节点中导出原始数据;根据数据分发规则对上述原始数据进行拆分,将原始数据拆分成多个文件,其中,一个文件对应一个第二节点;将上述多个文件分别上传到与多个文件对应的第二节点进行导入。
在一个可选的实施例中,上述第一资源管理器在根据追增量指示将追增量数据导入到与该追增量数据对应的第二节点中时,可以通过如下方式实现:根据上述追增量指示中携带的逻辑事务日志确定追增量数据,其中,该逻辑事务日志用于描述第二节点中存储的子原始数据的信息;根据上述追增量数据生成数据操作语言DML语句;利用DML语句将追增量数据导入到与追增量数据对应的第二节点中。
在本发明的实施例中还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行上述方法实施例中的步骤的程序代码。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述各步骤。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
本发明相较于相关技术中的分布式数据库在线重分布追增量数据方案,具有如下有益效果:
适应性更加广泛。不再需要提前对数据进行分片分库的架构设计。为那些本身就不支持重分布或者并没有重分布计划的分布式数据库进行可行的在线重分布提供了一个关键方案支持。因此本方案对于分布式数据库来说适应性更加广泛。
保证分布式数据库的可靠性和可维护性。由于采用本方案的追增量数据方式,将不再受限于每个分片(库)的追增量限制,从而使得初期定义的数据分发规则不会成为限制,使得分布式数据库在后期拥有更强的可维护性。
保证数据的安全准确。通过提供新型的数据增量校验方法,保证了每次追增量的准确性,从而保证了重分布的数据安全和效率。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种数据处理方法,其特征在于,包括:
接收数据重分布请求;
根据所述数据重分布请求指示第一资源管理器对第一节点中存储的原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与所述各部分子原始数据对应的第二节点中,其中,所述第一资源管理器用于管理所述第一节点中存储的数据;
指示所述第一资源管理器将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中;其中,指示所述第一资源管理器将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中包括:
获取与所述追增量数据对应的第二节点在导入了所述子原始数据后的逻辑事务日志,其中,所述逻辑事务日志用于描述所述第二节点中存储的所述子原始数据的信息;
根据所述逻辑事务日志向所述第一资源管理器发送追增量指示,其中,所述追增量指示用于指示所述第一资源管理器根据所述逻辑事务日志确定在进行拆分及导入处理期间存储到所述第一节点中的追增量数据,并将所述追增量数据导入到与所述追增量数据对应的第二节点中。
2.根据权利要求1所述的方法,其特征在于,在指示所述第一资源管理器将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中之后,所述方法还包括:
接收来自所述第一资源管理器的所述追增量数据的第一校验值、导入时间和导入结果,以及,接收来自第二资源管理器的所述追增量数据的第二校验值,其中,所述第二资源管理器用于管理第二节点中存储的数据;
在确定所述导入结果为导入成功时,判断所述第一校验值和所述第二校验值是否相同;
在判断结果为所述第一校验值和所述第二校验值不相同的情况下,重新执行指示所述第一资源管理器将所述追增量数据导入到与所述追增量数据对应的所述第二节点中的处理;和/或,
在判断结果为所述第一校验值和所述第二校验值相同的情况下,判断所述导入时间是否小于预定阈值;在判断结果为所述导入时间小于所述预定阈值的情况下,控制所述第一节点终止存储新的数据以及指示所述第一资源管理器将所述第一节点中存储的且未导入第二节点的数据导入到对应的第二节点中;和/或,在判断结果为所述导入时间大于或等于所述预定阈值的情况下,返回指示所述第一资源管理器将所述第一节点中存储的且未导入对应的所述第二节点的数据导入到对应的所述第二节点中的步骤继续执行,直到将未导入对应的第二节点的数据导入到对应的第二节点中的时间小于所述预定阈值为止。
3.一种数据处理方法,其特征在于,包括:
接收来自集群管理器的数据重分布指示;
根据所述数据重分布指示对第一节点中存储的原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与各部分子原始数据对应的第二节点中;
接收来自所述集群管理器的追增量指示;
根据所述追增量指示将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中;其中,根据所述追增量指示将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中包括:
根据所述追增量指示中携带的逻辑事务日志确定所述追增量数据,其中,所述逻辑事务日志用于描述第二节点中存储的所述子原始数据的信息;
根据所述追增量数据生成数据操作语言DML语句;
利用所述DML语句将所述追增量数据导入到与所述追增量数据对应的第二节点中。
4.根据权利要求3所述的方法,其特征在于,根据所述数据重分布指示对所述第一节点中存储的所述原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与各部分子原始数据对应的第二节点中包括:
根据所述数据重分布指示从所述第一节点中导出所述原始数据;
根据数据分发规则对所述原始数据进行拆分,将所述原始数据拆分成多个文件,其中,一个文件对应一个第二节点;
将所述多个文件分别上传到与所述多个文件对应的第二节点进行导入。
5.根据权利要求3至4中任一项所述的方法,其特征在于,在根据所述追增量指示将在进行拆分及导入处理期间存储到所述第一节点中的所述追增量数据导入到与所述追增量数据对应的第二节点中之后,所述方法还包括:
确定所述追增量数据的第一校验值,以及将所述追增量数据导入到所述第二节点中的导入时间及导入结果;
将所述第一校验值、所述导入时间和所述导入结果发送给所述集群管理器。
6.根据权利要求5所述的方法,其特征在于,在将所述第一校验值、所述导入时间和所述导入结果发送给所述集群管理器之后,所述方法还包括:
接收来自所述集群管理器的追增量重导入指示,根据所述追增量重导入指示重新执行将所述追增量数据导入到与所述追增量数据对应的第二节点中的处理;和/或,
接收来自所述集群管理器的终止指示,根据所述终止指示终止所述第一节点存储新的数据,并将所述第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中;和/或,
接收来自所述集群管理器的重复导入指示;根据所述重复导入指示返回将所述第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中的步骤继续执行,直到将未导入对应的第二节点的数据导入到对应的第二节点中的时间小于预定阈值为止。
7.一种集群管理器,其特征在于,包括:
第一接收模块,用于接收数据重分布请求;
第一指示模块,用于根据所述数据重分布请求指示第一资源管理器对第一节点中存储的原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与所述各部分子原始数据对应的第二节点中,其中,所述第一资源管理器用于管理所述第一节点中存储的数据;
第二指示模块,用于指示所述第一资源管理器将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中;其中,所述第二指示模块包括:
获取单元,用于获取与所述追增量数据对应的第二节点在导入了所述子原始数据后的逻辑事务日志,其中,所述逻辑事务日志用于描述所述第二节点中存储的所述子原始数据的信息;
发送单元,用于根据所述逻辑事务日志向所述第一资源管理器发送追增量指示,其中,所述追增量指示用于指示所述第一资源管理器根据所述逻辑事务日志确定在进行拆分及导入处理期间存储到所述第一节点中的追增量数据,并将所述追增量数据导入到与所述追增量数据对应的第二节点中。
8.根据权利要求7所述的集群管理器,其特征在于,所述集群管理器还包括:
第一处理模块,用于在指示所述第一资源管理器将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中之后,接收来自所述第一资源管理器的所述追增量数据的第一校验值、导入时间和导入结果,以及,接收来自第二资源管理器的所述追增量数据的第二校验值,其中,所述第二资源管理器用于管理第二节点中存储的数据;
在确定所述导入结果为导入成功时,判断所述第一校验值和所述第二校验值是否相同;
在判断结果为所述第一校验值和所述第二校验值不相同的情况下,重新执行指示所述第一资源管理器将所述追增量数据导入到与所述追增量数据对应的所述第二节点中的处理;和/或,
在判断结果为所述第一校验值和所述第二校验值相同的情况下,判断所述导入时间是否小于预定阈值;在判断结果为所述导入时间小于所述预定阈值的情况下,控制所述第一节点终止存储新的数据以及指示所述第一资源管理器将所述第一节点中存储的且未导入第二节点的数据导入到对应的第二节点中;和/或,在判断结果为所述导入时间大于或等于所述预定阈值的情况下,返回指示所述第一资源管理器将所述第一节点中存储的且未导入对应的所述第二节点的数据导入到对应的所述第二节点中的步骤继续执行,直到将未导入对应的第二节点的数据导入到对应的第二节点中的时间小于所述预定阈值为止。
9.一种资源管理器,其特征在于,包括:
第二接收模块,用于接收来自集群管理器的数据重分布指示;
第一导入模块,用于根据所述数据重分布指示对第一节点中存储的原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与各部分子原始数据对应的第二节点中;
第三接收模块,用于接收来自所述集群管理器的追增量指示;
第二导入模块,用于根据所述追增量指示将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中;其中,第二导入模块还用于:
根据上述追增量指示中携带的逻辑事务日志确定所述追增量数据,其中,该逻辑事务日志用于描述第二节点中存储的所述子原始数据的信息;根据该追增量数据生成数据操作语言DML语句;利用该DML语句将上述追增量数据导入到与追增量数据对应的第二节点中。
10.根据权利要求9所述的资源管理器,其特征在于,所述资源管理器还包括:
第二处理模块,用于在根据所述追增量指示将在进行拆分及导入处理期间存储到所述第一节点中的所述追增量数据导入到与所述追增量数据对应的第二节点中之后,确定所述追增量数据的第一校验值,以及将所述追增量数据导入到所述第二节点中的导入时间及导入结果;将所述第一校验值、所述导入时间和所述导入结果发送给所述集群管理器。
11.根据权利要求10所述的资源管理器,其特征在于,所述资源管理器还包括:
第三处理模块,用于在将所述第一校验值、所述导入时间和所述导入结果发送给所述集群管理器之后,接收来自所述集群管理器的追增量重导入指示,根据所述追增量重导入指示重新执行将所述追增量数据导入到与所述追增量数据对应的第二节点中的处理;和/或,
接收来自所述集群管理器的终止指示,根据所述终止指示终止所述第一节点存储新的数据,并将所述第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中;和/或,
接收来自所述集群管理器的重复导入指示;根据所述重复导入指示返回将所述第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中的步骤继续执行,直到将未导入对应的第二节点的数据导入到对应的第二节点中的时间小于预定阈值为止。
12.一种数据处理***,其特征在于,包括集群管理器、第一资源管理器,其中,
所述集群管理器连接至所述第一资源管理器,用于根据接收的数据重分布请求向所述第一资源管理器发送数据重分布指示以及追增量指示;
所述第一资源管理器用于根据来自所述集群管理器的数据重分布指示对第一节点中存储的原始数据进行拆分并将拆分后的各部分子原始数据分别导入到与所述各部分子原始数据对应的第二节点中,以及根据来自所述集群管理器的追增量指示将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中;其中,
所述第一资源管理器还用于:根据所述追增量指示中携带的逻辑事务日志确定所述追增量数据,其中,所述逻辑事务日志用于描述第二节点中存储的所述子原始数据的信息;根据所述追增量数据生成数据操作语言DML语句;利用所述DML语句将所述追增量数据导入到与所述追增量数据对应的第二节点中。
13.根据权利要求12所述的数据处理***,其特征在于,所述数据处理***还包括第二资源管理器,其中,所述第二资源管理器连接至所述集群管理器;
所述集群管理器在向所述第一资源管理器发送所述追增量指示之后,还用于:接收来自所述第一资源管理器的所述追增量数据的第一校验值、导入时间和导入结果,以及,接收来自所述第二资源管理器的所述追增量数据的第二校验值;在确定所述导入结果为导入成功时,判断所述第一校验值和所述第二校验值是否相同;在判断结果为所述第一校验值和所述第二校验值不相同的情况下,向所述第一资源管理器发送追增量重导入指示;和/或,在判断结果为所述第一校验值和所述第二校验值相同的情况下,判断所述导入时间是否小于预定阈值;在判断结果为所述导入时间小于所述预定阈值的情况下,向所述第一资源管理器发送终止指示;和/或,在判断结果为所述导入时间大于或等于所述预定阈值的情况下,向所述第一资源管理器发送重复导入指示;
所述第一资源管理器在根据来自所述集群管理器的追增量指示将在进行拆分及导入处理期间存储到所述第一节点中的追增量数据导入到与所述追增量数据对应的第二节点中之后,还用于:确定所述追增量数据的第一校验值,以及将所述追增量数据导入到所述第二节点中的导入时间及导入结果;将所述第一校验值、所述导入时间和所述导入结果发送给所述集群管理器;接收来自所述集群管理器的追增量重导入指示,根据所述追增量重导入指示重新执行将所述追增量数据导入到与所述追增量数据对应的第二节点中的处理;和/或,接收来自所述集群管理器的终止指示,根据所述终止指示终止所述第一节点存储新的数据,并将所述第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中;和/或,接收来自所述集群管理器的重复导入指示;根据所述重复导入指示返回将所述第一节点中存储的且未导入对应的第二节点的数据导入到对应的第二节点中的步骤继续执行,直到将未导入对应的第二节点的数据导入到对应的第二节点中的时间小于所述预定阈值为止。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610494245.3A CN107547606B (zh) | 2016-06-29 | 2016-06-29 | 数据处理方法、集群管理器、资源管理器、数据处理*** |
EP17819197.9A EP3480686B1 (en) | 2016-06-29 | 2017-06-26 | Data processing method, cluster manager, resource manager and data processing system |
PCT/CN2017/090001 WO2018001200A1 (zh) | 2016-06-29 | 2017-06-26 | 数据处理方法、集群管理器、资源管理器、数据处理*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610494245.3A CN107547606B (zh) | 2016-06-29 | 2016-06-29 | 数据处理方法、集群管理器、资源管理器、数据处理*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107547606A CN107547606A (zh) | 2018-01-05 |
CN107547606B true CN107547606B (zh) | 2021-01-26 |
Family
ID=60785934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610494245.3A Active CN107547606B (zh) | 2016-06-29 | 2016-06-29 | 数据处理方法、集群管理器、资源管理器、数据处理*** |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3480686B1 (zh) |
CN (1) | CN107547606B (zh) |
WO (1) | WO2018001200A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108259394B (zh) * | 2018-01-17 | 2021-04-06 | 成都中安频谱科技有限公司 | 信号获取方法、装置及电子设备 |
US10430100B2 (en) | 2018-02-28 | 2019-10-01 | International Business Machines Corporation | Transactional operations in multi-master distributed data management systems |
US11042522B2 (en) | 2018-06-11 | 2021-06-22 | International Business Machines Corporation | Resolving versions in an append-only large-scale data store in distributed data management systems |
CN110647509B (zh) * | 2018-06-26 | 2024-05-14 | 北京亿阳信通科技有限公司 | 一种集客数据的快速核查共享方法及装置 |
CN109388481B (zh) * | 2018-09-21 | 2021-08-17 | 网易(杭州)网络有限公司 | 一种事务信息的传输方法、***、装置、计算设备和介质 |
CN109582668A (zh) * | 2018-10-16 | 2019-04-05 | 深圳壹账通智能科技有限公司 | 业务数据管理方法、装置、设备及计算机可读存储介质 |
CN111291112B (zh) * | 2018-12-07 | 2023-04-28 | 阿里巴巴集团控股有限公司 | 分布式数据库的读写控制方法和装置以及电子设备 |
CN110427383A (zh) * | 2019-05-13 | 2019-11-08 | 国网冀北电力有限公司 | 基于数据冗余的mysql集群在线数据重分布方法及相关设备 |
CN110597879B (zh) * | 2019-09-17 | 2022-01-14 | 第四范式(北京)技术有限公司 | 时序数据的处理方法和装置 |
CN113821553A (zh) * | 2021-07-16 | 2021-12-21 | 深圳云天励飞技术股份有限公司 | 数据导入方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752372A (zh) * | 2012-06-18 | 2012-10-24 | 天津神舟通用数据技术有限公司 | 一种基于文件的数据库同步方法 |
CN103793424A (zh) * | 2012-10-31 | 2014-05-14 | 阿里巴巴集团控股有限公司 | 数据库数据迁移方法及*** |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9805108B2 (en) * | 2010-12-23 | 2017-10-31 | Mongodb, Inc. | Large distributed database clustering systems and methods |
CN103580898B (zh) * | 2012-08-01 | 2016-12-21 | 华为技术有限公司 | 网络协调方法和装置 |
US9083724B2 (en) * | 2013-05-30 | 2015-07-14 | Netapp, Inc. | System iteratively reducing I/O requests during migration of virtual storage system |
CN103473334B (zh) * | 2013-09-18 | 2017-01-11 | 中控技术(西安)有限公司 | 数据存储、查询方法及*** |
US20160080490A1 (en) * | 2014-09-15 | 2016-03-17 | Microsoft Corporation | Online data movement without compromising data integrity |
CN104407807B (zh) * | 2014-10-24 | 2017-06-27 | 华中科技大学 | 一种针对rs编码存储集群的存储扩容方法 |
CN105069149B (zh) * | 2015-08-24 | 2019-03-12 | 电子科技大学 | 一种面向结构化列式数据的分布式并行数据导入方法 |
-
2016
- 2016-06-29 CN CN201610494245.3A patent/CN107547606B/zh active Active
-
2017
- 2017-06-26 WO PCT/CN2017/090001 patent/WO2018001200A1/zh unknown
- 2017-06-26 EP EP17819197.9A patent/EP3480686B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752372A (zh) * | 2012-06-18 | 2012-10-24 | 天津神舟通用数据技术有限公司 | 一种基于文件的数据库同步方法 |
CN103793424A (zh) * | 2012-10-31 | 2014-05-14 | 阿里巴巴集团控股有限公司 | 数据库数据迁移方法及*** |
Also Published As
Publication number | Publication date |
---|---|
WO2018001200A1 (zh) | 2018-01-04 |
EP3480686A1 (en) | 2019-05-08 |
EP3480686A4 (en) | 2020-03-04 |
EP3480686B1 (en) | 2023-05-24 |
CN107547606A (zh) | 2018-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107547606B (zh) | 数据处理方法、集群管理器、资源管理器、数据处理*** | |
CN110572281B (zh) | 一种基于区块链的可信日志记录方法及*** | |
CN105763369B (zh) | 一种终端设备远程软件版本分发方法及*** | |
CN100449548C (zh) | 数据库同步方法及*** | |
CN103699548A (zh) | 一种通过使用日志恢复数据库数据的方法及设备 | |
CN110063042B (zh) | 一种数据库故障的响应方法及其终端 | |
CN113220633B (zh) | 统一文件编码管理方法及*** | |
CN110019469A (zh) | 分布式数据库数据处理方法、装置、存储介质及电子装置 | |
CN110633970A (zh) | 一种数字资产清分方法、装置、计算机设备及存储介质 | |
CN110807619A (zh) | 一种应用于政务服务领域支持业务通办的实现方法 | |
CN106656592B (zh) | 基于角色配置的服务管理方法和装置 | |
CN112800066A (zh) | 索引管理的方法、相关设备及存储介质 | |
CN110807000A (zh) | 一种文件修复方法、装置、电子设备和存储介质 | |
CN111966650B (zh) | 一种运维大数据共享数据表的处理方法、装置及存储介质 | |
CN114757805A (zh) | 基于区块链的便民政务服务*** | |
CN111797166B (zh) | 准实时简历数据同步方法和装置、电子设备及介质 | |
CN114519440A (zh) | 一种客票的数据处理方法、装置、设备及存储介质 | |
CN113157715A (zh) | 纠删码数据中心机架协同更新方法 | |
CN112328683A (zh) | 一种支持数据库与库直接的数据传输方法、***及存储介质 | |
CN102314505B (zh) | 基于偏序关系的缓冲区版本产生方法 | |
CN114969077A (zh) | 一种业务数据处理方法及装置 | |
JPH103418A (ja) | 電子計算機システム間のデータ一致方式 | |
CN114442947B (zh) | 跨域桶删除方法、***、终端及存储介质 | |
CN115348185B (zh) | 一种分布式查询引擎的控制方法及其控制装置 | |
CN106657376A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220331 Address after: 100176 602, 6 / F, building 6, courtyard 10, KEGU 1st Street, Daxing District, Beijing (Yizhuang group, high-end industrial area, Beijing Pilot Free Trade Zone) Patentee after: Jinzhuan Xinke Co.,Ltd. Address before: 518057 No. 55 South Science and technology road, Shenzhen, Guangdong, Nanshan District Patentee before: ZTE Corp. |
|
TR01 | Transfer of patent right |