CN107741963A - 跨集群数据合并方法及装置、电子设备、计算机存储介质 - Google Patents
跨集群数据合并方法及装置、电子设备、计算机存储介质 Download PDFInfo
- Publication number
- CN107741963A CN107741963A CN201710922481.5A CN201710922481A CN107741963A CN 107741963 A CN107741963 A CN 107741963A CN 201710922481 A CN201710922481 A CN 201710922481A CN 107741963 A CN107741963 A CN 107741963A
- Authority
- CN
- China
- Prior art keywords
- data
- cluster
- operation commands
- daily record
- data operation
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种跨集群数据合并方法及装置、电子设备、计算机存储介质,方法用于将至少一个第一集群的数据合并至第二集群中,方法包括:读取第一集群的中继日志,中继日志记录有第一集群的写数据操作的相关信息;解析中继日志的内容,将内容转化为第二集群可执行的数据操作命令;对第二集群执行数据操作命令,以实现将至少一个第一集群的数据合并至第二集群。同时,不影响第二集群原有存储的数据。
Description
技术领域
本发明涉及数据库领域,具体涉及一种跨集群数据合并方法及装置、电子设备、计算机存储介质。
背景技术
将两台或者多台数据库构成一个虚拟单一数据库逻辑映像,得到数据库集群。使用数据库集群可以便于存储数据,数据可靠性强,理论上保证了数据零丢失。对于业务而言,数据库集群提供一个接口,其具体的构成时透明的。数据库集群可以利用多个数据库进行并行计算从而获得高性能的速度,也可以实现数据备份,从而保障了数据安全。即使其中一台数据库出现故障不会影响数据库集群整体的运行。对数据库集群化可以减少单点故障数量,并且实现了数据库资源的高可用性。
业务在运行时,可能会使用多个数据库集群。当业务需要将数据进行合并时,即将一个或多个数据库集群中的数据合并至另一数据库集群中,使得一个数据库集群存储两个或多个数据库集群的数据。但由于数据库集群如redis数据库集群本身只能实现将第一个数据库集群中的数据迁移到第二个数据库集群中,若第二个数据库集群中已经存有数据,该第二个数据库集群的数据会被第一个数据库集群的数据覆盖;或者通过主从追写操作,第二个数据库集群先将自己存储的数据删除后,才将第一个数据库集群中的数据写入第二个数据库集群;不论哪种方式均无法实现将第一个数据库集群的数据和第二个数据库集群的数据合并。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的跨集群数据合并方法及装置、电子设备、计算机存储介质。
根据本发明的一个方面,提供了一种跨集群数据合并方法,方法用于将至少一个第一集群的数据合并至第二集群中,方法包括:
读取第一集群的中继日志,中继日志记录有第一集群的写数据操作的相关信息;
解析中继日志的内容,将内容转化为第二集群可执行的数据操作命令;
对第二集群执行数据操作命令,以实现将至少一个第一集群的数据合并至第二集群。
根据本发明的另一方面,提供了一种跨集群数据合并装置,装置用于将至少一个第一集群的数据合并至第二集群中,其包括:
读取模块,适于读取第一集群的中继日志,中继日志记录有第一集群的写数据操作的相关信息;
解析模块,适于解析中继日志的内容,将内容转化为第二集群可执行的数据操作命令;
合并模块,适于对第二集群执行数据操作命令,以实现将至少一个第一集群的数据合并至第二集群。
根据本发明的又一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述跨集群数据合并方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述跨集群数据合并方法对应的操作。
根据本发明提供的跨集群数据合并方法及装置、电子设备、计算机存储介质,读取记录有第一集群的写数据操作的相关信息的第一集群的中继日志,对其内容进行解析,将其转化为第二集群可执行的数据操作命令。对第二集群执行数据操作命令,实现了将至少一个第一集群的数据合并至第二集群,同时,不影响第二集群原有存储的数据。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的跨集群数据合并方法的流程图;
图2示出了根据本发明另一个实施例的跨集群数据合并方法的流程图;
图3示出了根据本发明一个实施例的跨集群数据合并装置的功能框图;
图4示出了根据本发明另一个实施例的跨集群数据合并装置的功能框图;
图5示出了根据本发明一个实施例的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明主要用于将至少一个第一集群的数据合并至第二集群中,以下实施例中第一集群和第二集群均以Redis数据库集群为例进行说明,但本发明不仅限于Redis数据库集群。
图1示出了根据本发明一个实施例的跨集群数据合并方法的流程图。如图1所示,跨集群数据合并方法具体包括如下步骤:
步骤S101,读取第一集群的中继日志。
对于Redis数据库集群,中继日志的类型可采用.aof。其中,中继日志记录有第一集群的写数据操作的相关信息。该中继日志可以通过配置Redis数据库集群的配置文件中appendonly的选项,由Redis数据库集群自动生成该中继日志;或者,在第一集群中仅对其写数据操作进行监控,将其写数据操作记录在中继日志中。
中继日志的内容如下所示:
*4
$5
RPUSH
$4
list
$1
1
$1
2
根据中继日志的记录规则读取中继日志,依次一条条读取其中记录的写数据操作,如读取上述中继日志中一条List数据的写入操作。
步骤S102,解析中继日志的内容,将内容转化为第二集群可执行的数据操作命令。
对读取的中继日志的内容进行解析,解析时,可以根据中继日志的记录规则,将中继日志的内容转化为一条条的第二集群可执行的数据操作命令。如将上述读取到的中继日志的内容转化为RPUSH list 1 2的数据操作命令。
根据中继日志记录的具体内容,对应的转化为第二集群可执行的各种数据操作命令。第二集群可执行的数据操作命令包括数据写入命令、数据更新命令、数据删除命令、数据计算命令、数据合并命令、队列写入命令、队列删除命令、批量写入命令、批量删除命令、批量更新命令、队列中指定元素删除命令、队列中指定位置写入命令、队列中指定元素更新命令、实例级清理命令、库级清理命令等。不同数据操作命令对应中继日志记录的不同内容。
可选地,在跨集群数据合并时,有时仅需要将第一集群中的一部分数据合并至第二集群中。此时,会根据要合并的数据制定过滤规则。过滤规则可以为对第一集群中指定的数据库、指定的数据表、指定表中的至少一个字段进行限定的规则。如合并第一集群中的数据库A的数据,过滤规则为限定合并的数据库仅为A;或者合并第一集群中的数据库B的数据表C的数据,过滤规则为限定合并的数据库为B且数据表为C;或者合并第一集群中的数据库A的数据表D中字段E、F、G的数据,过滤规则为限定合并的数据库为A、数据表为D且字段为E、F、G。以上均为举例说明,过滤规则还可以使用正则表达式或其他方式进行限定,根据实施情况进行设置,在此不对过滤规则的限定方式做具体的限定。
在设置了过滤规则后,对中继日志的内容进行解析时,需要从中获取满足过滤规则的内容。将满足过滤规则的内容转化为第二集群可执行的数据操作命令。
步骤S103,对第二集群执行数据操作命令,以实现将至少一个第一集群的数据合并至第二集群。
对第二集群执行转化后的数据操作命令,实现将第一集群的数据合并至第二集群。若第一集群有多个时,可以对第二集群依次执行多个第一集群的数据操作命令,实现将多个第一集群的数据合并至第二集群。
根据本发明提供的跨集群数据合并方法,读取记录有第一集群的写数据操作的第一集群的中继日志,对其内容进行解析,将其转化为第二集群可执行的数据操作命令。对第二集群执行数据操作命令,实现了将至少一个第一集群的数据合并至第二集群,同时,不影响第二集群原有存储的数据。
图2示出了根据本发明另一个实施例的跨集群数据合并方法的流程图。如图2所示,跨集群数据合并方法具体包括如下步骤:
步骤S201,获取至少一个第一集群和第二集群的管理员权限。
跨集群数据合并需要对第一集群和第二集群进行操作,因此,要获取至少一个第一集群和第二集群的管理员权限,以便于后续操作的执行。
步骤S202,建立多个并行的第一线程。
步骤S203,利用多个第一线程并行读取中继日志的至少一段内容,将内容进行解析,转化为至少一条第二集群可执行的命令。
在对中继日志的内容进行读取和解析时,可以利用多个并行的第一线程进行,提高读取和解析的速度。建立多个并行的第一线程,第一线程的个数根据实施情况进行设置。由多个第一线程并行处理,任一第一线程均可以根据记录规则读取中继日志中至少一条写数据操作对应的至少一段内容,将该段内容进行解析,转化为至少一条第二集群可执行的命令。
步骤S204,建立一个第二线程。
本实施例以Redis数据库集群进行说明,由于Redis数据库集群仅支持单线程操作,即Redis数据库集群一次仅能执行一条数据操作命令。因此,在本实施例中,只建立一个第二线程。若其他类型数据库集群支持多线程执行数据操作命令,可以建立多个第二线程。
步骤S205,依据数据操作命令执行顺序选取一条数据操作命令,利用第二线程对第二集群执行所选取的数据操作命令。
步骤S206,接收第二集群返回的数据操作命令执行应答,判断数据操作命令是否执行成功。
依据数据操作命令的执行的先后顺序按照顺序选取一条数据操作命令,利用第二线程对第二集群执行所选取的数据操作命令。在对第二集群执行该数据操作命令后,第二集群会在执行该写入数据命令后,根据执行结果,返回对应的数据操作命令执行应答。当数据操作命令执行成功时,会返回数据操作命令执行成功应答。当如网络断开、连接失败等情况时,数据操作命令会执行失败,此时返回数据操作命令执行失败应答。
根据数据操作命令执行应答,判断数据操作命令是否执行成功,当返回数据操作命令执行成功应答,可以判断数据操作命令执行成功,执行步骤S208。当返回数据操作命令执行失败应答,可以判断数据操作命令执行失败,执行步骤S207。
步骤S207,若数据操作命令执行失败,则利用第二线程继续对第二集群执行该条数据操作命令,直至数据操作命令执行成功。
若该数据操作命令执行失败,则利用第二线程继续对第二集群执行该条执行失败的数据操作命令。然后再根据接收到的第二集群返回的数据操作命令执行应答进行判断,直至该条数据操作命令执行成。
步骤S208,判断是否执行完成所有数据操作命令。
利用第二线程对第二集群执行所选取的数据操作命令执行成功后,还需要判断是否已经执行完成所有的数据操作命令,若已经完成,即表明已经将至少一个第一集群存储的数据完全合并至第二集群,跨集群数据合并完成。若未完成所有数据操作命令,即还有未执行的数据操作命令,重复执行步骤S205,直至执行完成所有数据操作命令。
根据本发明提供的跨集群数据合并方法,在获取到至少一个第一集群和第二集群的管理员权限后,可以对第一集群和第二集群进行操作。利用多个第一线程病程读取记录有第一集群的写数据操作的第一集群的中继日志,并对其内容进行解析,将其转化为第二集群可执行的数据操作命令,可以大大提高读取和解析的速度,加快跨集群数据合并的进程。再对第二集群执行数据操作命令时,根据第二集群返回的数据操作命令执行应答,判断数据操作命令是否执行成功。并对执行失败的数据操作命令继续执行,保证了跨集群数据合并的正确性和完整性,避免发生数据遗漏未被合并的情况。进一步,利用不同线程分别完成对中继日志的读取、解析和对数据操作命令的执行,可以在第二线程对第二集群执行数据操作命令的同时,第一线程继续对中继日志进行读取、解析,有效改善单线程执行的弊端,提高整个跨集群数据合并的效率。
图3示出了根据本发明一个实施例的跨集群数据合并装置的功能框图。如图3所示,跨集群数据合并装置包括如下模块:
读取模块310,适于读取第一集群的中继日志,中继日志记录有第一集群的写数据操作。
对于Redis数据库集群,中继日志的类型可采用.aof。其中,中继日志记录有第一集群的写数据操作。该中继日志可以通过配置Redis数据库集群的配置文件中appendonly的选项,由Redis数据库集群自动生成该中继日志;或者,在第一集群中仅对其写数据操作进行监控,将其写数据操作记录在中继日志中。
中继日志的内容如下所示:
*4
$5
RPUSH
$4
list
$1
1
$1
2
读取模块310根据中继日志的记录规则读取中继日志,依次一条条读取其中记录的写数据操作,如读取模块310读取上述中继日志中一条List数据的写入操作。
解析模块320,适于解析中继日志的内容,将内容转化为第二集群可执行的数据操作命令。
解析模块320对读取的中继日志的内容进行解析。解析模块320解析时,可以根据中继日志的记录规则,将中继日志的内容转化为一条条的第二集群可执行的数据操作命令。如解析模块320将上述读取到的中继日志的内容转化为RPUSH list 1 2的数据操作命令。
根据中继日志记录的具体内容,对应的转化为第二集群可执行的各种数据操作命令。第二集群可执行的数据操作命令包括数据写入命令、数据更新命令、数据删除命令、数据计算命令、数据合并命令、队列写入命令、队列删除命令、批量写入命令、批量删除命令、批量更新命令、队列中指定元素删除命令、队列中指定位置写入命令、队列中指定元素更新命令、实例级清理命令、库级清理命令等。不同数据操作命令对应中继日志记录的不同内容。
可选地,在跨集群数据合并时,有时仅需要将第一集群中的一部分数据合并至第二集群中。此时,业务会根据需求为需要合并的数据制定过滤规则。过滤规则可以为对第一集群中指定的数据库、指定的数据表、指定表中的至少一个字段进行限定的规则。如业务需求指定合并第一集群中的数据库A的数据,过滤规则为限定合并的数据库仅为A;或者业务需求指定合并第一集群中的数据库B的数据表C的数据,过滤规则为限定合并的数据库为B且数据表为C;或者业务需求指定合并第一集群中的数据库A的数据表D中字段E、F、G的数据,过滤规则为限定合并的数据库为A、数据表为D且字段为E、F、G。以上均为举例说明,过滤规则还可以使用正则表达式或其他方式进行限定,根据实施情况进行设置,在此不对过滤规则的限定方式做具体的限定。
在设置了过滤规则后,解析模块320对中继日志的内容进行解析时,需要从中获取满足过滤规则的内容。解析模块320将满足过滤规则的内容转化为第二集群可执行的数据操作命令。
合并模块330,适于对第二集群执行数据操作命令,以实现将至少一个第一集群的数据合并至第二集群。
合并模块330对第二集群执行转化后的数据操作命令,实现将第一集群的数据合并至第二集群。若第一集群有多个时,合并模块330可以对第二集群依次执行多个第一集群的数据操作命令,实现将多个第一集群的数据合并至第二集群。
根据本发明提供的跨集群数据合并装置,读取记录有第一集群的写数据操作相关信息的第一集群的中继日志,对其内容进行解析,将其转化为第二集群可执行的数据操作命令。对第二集群执行数据操作命令,实现了将至少一个第一集群的数据合并至第二集群,同时,不影响第二集群原有存储的数据。
图4示出了根据本发明另一个实施例的跨集群数据合并装置的功能框图。如图4所示,与图3相比,跨集群数据合并装置还包括如下模块:
权限模块340,适于获取至少一个第一集群和第二集群的管理员权限。
跨集群数据合并需要对第一集群和第二集群进行操作,因此,权限模块340要获取至少一个第一集群和第二集群的管理员权限,以便于后续操作的执行。
第一线程模块350,适于建立多个并行的第一线程。
在读取模块310和/或解析模块320对中继日志的内容进行读取和解析时,读取模块310和/或解析模块320可以利用多个并行的第一线程进行,提高读取和解析的速度。第一线程模块350建立多个并行的第一线程,第一线程的个数根据实施情况进行设置。读取模块310和/或解析模块320由多个第一线程并行处理,读取模块310利用任一第一线程均可以根据记录规则读取中继日志中至少一条写数据操作对应的至少一段内容,解析模块320将该段内容进行解析,转化为至少一条第二集群可执行的命令。
第二线程模块360,适于建立一个第二线程。
本实施例以Redis数据库集群进行说明,由于Redis数据库集群仅支持单线程操作,即Redis数据库集群一次仅能执行一条数据操作命令。因此,在本实施例中,第二线程模块360只建立一个第二线程。若其他类型数据库集群支持多线程执行数据操作命令,第二线程模块360可以建立多个第二线程。
合并模块330包括顺序模块331、应答模块332和循环模块333。
顺序模块331,适于依据数据操作命令执行顺序选取一条数据操作命令,利用第二线程对第二集群执行所选取的数据操作命令。
应答模块332,适于接收第二集群返回的数据操作命令执行应答,判断数据操作命令是否执行成功;若数据操作命令执行失败,则利用第二线程继续对第二集群执行该条数据操作命令,直至数据操作命令执行成功。
循环模块333,适于若数据操作命令执行成功,循环上述过程直至执行完成所有数据操作命令。
顺序模块331依据数据操作命令的执行的先后顺序按照顺序选取一条数据操作命令,利用第二线程对第二集群执行所选取的数据操作命令。合并模块330在对第二集群执行该数据操作命令后,第二集群会在执行该写入数据命令后,根据执行结果,返回对应的数据操作命令执行应答。当数据操作命令执行成功时,会返回数据操作命令执行成功应答。当如网络断开、连接失败等情况时,数据操作命令会执行失败,此时返回数据操作命令执行失败应答。
应答模块332根据数据操作命令执行应答,判断数据操作命令是否执行成功,当返回数据操作命令执行成功应答,应答模块332可以判断数据操作命令执行成功;当返回数据操作命令执行失败应答,应答模块332可以判断数据操作命令执行失败。若该数据操作命令执行失败,应答模块332则利用第二线程继续对第二集群执行该条执行失败的数据操作命令。然后再根据接收到的第二集群返回的数据操作命令执行应答进行判断,直至该条数据操作命令执行成。
顺序模块331利用第二线程对第二集群执行所选取的数据操作命令执行成功后,循环模块333还需要判断是否已经执行完成所有的数据操作命令,若已经完成,即表明已经将至少一个第一集群存储的数据完全合并至第二集群,跨集群数据合并完成。若未完成所有数据操作命令,即还有未执行的数据操作命令,循环模块333重复执行顺序模块331和应答模块332,直至执行完成所有数据操作命令。
根据本发明提供的跨集群数据合并装置,在获取到至少一个第一集群和第二集群的管理员权限后,可以对第一集群和第二集群进行操作。利用多个第一线程病程读取记录有第一集群的写数据操作的第一集群的中继日志,并对其内容进行解析,将其转化为第二集群可执行的数据操作命令,可以大大提高读取和解析的速度,加快跨集群数据合并的进程。再对第二集群执行数据操作命令时,根据第二集群返回的数据操作命令执行应答,判断数据操作命令是否执行成功。并对执行失败的数据操作命令继续执行,保证了跨集群数据合并的正确性和完整性,避免发生数据遗漏未被合并的情况。进一步,利用不同线程分别完成对中继日志的读取、解析和对数据操作命令的执行,可以在第二线程对第二集群执行数据操作命令的同时,第一线程继续对中继日志进行读取、解析,有效改善单线程执行的弊端,提高整个跨集群数据合并的效率。
本申请还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的跨集群数据合并方法。
图5示出了根据本发明一个实施例的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图5所示,该电子设备可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。
其中:
处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器502,用于执行程序510,具体可以执行上述跨集群数据合并方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510具体可以用于使得处理器502执行以下操作:
在一种可选的实施方式中,方法用于将至少一个第一集群的数据合并至第二集群中,程序510用于使得处理器502读取第一集群的中继日志,中继日志记录有第一集群的写数据操作的相关信息;解析中继日志的内容,将内容转化为第二集群可执行的数据操作命令;对第二集群执行数据操作命令,以实现将至少一个第一集群的数据合并至第二集群。
在一种可选的实施方式中,中继日志的类型为.aof。
在一种可选的实施方式中,程序510用于使得处理器502获取至少一个第一集群和第二集群的管理员权限。
在一种可选的实施方式中,程序510用于使得处理器502建立多个并行的第一线程;利用多个第一线程并行读取中继日志的至少一段内容,将内容进行解析,转化为至少一条第二集群可执行的命令。
在一种可选的实施方式中,程序510用于使得处理器502建立一个第二线程;依据数据操作命令执行顺序选取一条数据操作命令,利用第二线程对第二集群执行所选取的数据操作命令;接收第二集群返回的数据操作命令执行应答,判断数据操作命令是否执行成功;若数据操作命令执行失败,则利用第二线程继续对第二集群执行该条数据操作命令,直至数据操作命令执行成功;若数据操作命令执行成功,循环上述过程直至执行完成所有数据操作命令。
在一种可选的实施方式中,程序510用于使得处理器502解析中继日志的内容,获取满足过滤规则的内容;将满足过滤规则的内容转化为第二集群可执行的数据操作命令。
在一种可选的实施方式中,过滤规则为对指定数据库、指定数据表和/或指定表中至少一个字段进行限定的规则。
在一种可选的实施方式中,第一集群和第二集群均为Redis数据库集群。
在一种可选的实施方式中,数据操作命令包括数据写入命令、数据更新命令、数据删除命令、数据计算命令、数据合并命令、队列写入命令、队列删除命令、批量写入命令、批量删除命令、批量更新命令、队列中指定元素删除命令、队列中指定位置写入命令、队列中指定元素更新命令、实例级清理命令和/或库级清理命令。
程序510中各步骤的具体实现可以参见上述跨集群数据合并实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
通过本实施例提供的方案,读取记录有第一集群的写数据操作相关信息的第一集群的中继日志,对其内容进行解析,将其转化为第二集群可执行的数据操作命令。对第二集群执行数据操作命令,实现了将至少一个第一集群的数据合并至第二集群,同时,不影响第二集群原有存储的数据。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的跨集群数据合并装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:A1.一种跨集群数据合并方法,所述方法用于将至少一个第一集群的数据合并至第二集群中,所述方法包括:
读取第一集群的中继日志,所述中继日志记录有所述第一集群的写数据操作的相关信息;
解析所述中继日志的内容,将所述内容转化为第二集群可执行的数据操作命令;
对所述第二集群执行所述数据操作命令,以实现将所述至少一个第一集群的数据合并至所述第二集群。
A2.根据A1所述的方法,其中,所述中继日志的类型为.aof。
A3.根据A1或A2所述的方法,其中,所述方法还包括:
获取所述至少一个第一集群和所述第二集群的管理员权限。
A4.根据A1-A3中任一项所述的方法,其中,所述方法还包括:
建立多个并行的第一线程;
所述读取第一集群的中继日志,解析所述中继日志的内容,将所述内容转化为第二集群可执行的数据操作命令进一步包括:
利用所述多个第一线程并行读取所述中继日志的至少一段内容,将所述内容进行解析,转化为至少一条第二集群可执行的数据操作命令。
A5.根据A1-A4中任一项所述的方法,其中,所述方法还包括:
建立一个第二线程;
所述对所述第二集群执行所述数据操作命令,以实现将所述至少一个第一集群的数据合并至所述第二集群进一步包括:
依据数据操作命令执行顺序选取一条数据操作命令,利用所述第二线程对所述第二集群执行所选取的数据操作命令;
接收所述第二集群返回的数据操作命令执行应答,判断所述数据操作命令是否执行成功;若所述数据操作命令执行失败,则利用所述第二线程继续对所述第二集群执行该条数据操作命令,直至所述数据操作命令执行成功;
若所述数据操作命令执行成功,循环上述过程直至执行完成所有数据操作命令。
A6.根据A1-A5中任一项所述的方法,其中,所述解析所述中继日志的内容,将所述内容转化为第二集群可执行的数据操作命令进一步包括:
解析所述中继日志的内容,获取满足过滤规则的内容;
将所述满足过滤规则的内容转化为第二集群可执行的数据操作命令。
A7.根据A6所述的方法,其中,所述过滤规则为对指定数据库、和/或指定数据表、和/或指定数据表中至少一个字段进行限定的规则。
A8.根据A1-A7中任一项所述的方法,其中,所述第一集群和第二集群均为Redis数据库集群。
A9.根据A1-A8中任一项所述的方法,其中,所述数据操作命令包括数据写入命令、数据更新命令、数据删除命令、数据计算命令、数据合并命令、队列写入命令、队列删除命令、批量写入命令、批量删除命令、批量更新命令、队列中指定元素删除命令、队列中指定位置写入命令、队列中指定元素更新命令、实例级清理命令和/或库级清理命令。
本发明还公开了:B10.一种跨集群数据合并装置,所述装置用于将至少一个第一集群的数据合并至第二集群中,其包括:
读取模块,适于读取第一集群的中继日志,所述中继日志记录有所述第一集群的写数据操作的相关信息;
解析模块,适于解析所述中继日志的内容,将所述内容转化为第二集群可执行的数据操作命令;
合并模块,适于对所述第二集群执行所述数据操作命令,以实现将所述至少一个第一集群的数据合并至所述第二集群。
B11.根据B10所述的装置,其中,所述中继日志的类型为.aof。
B12.根据B10或B11所述的装置,其中,所述装置还包括:
权限模块,适于获取所述至少一个第一集群和所述第二集群的管理员权限。
B13.根据B10-B12任一项所述的装置,其中,所述装置还包括:
第一线程模块,适于建立多个并行的第一线程;
所述读取模块和/或所述解析模块进一步适于:
利用所述多个第一线程并行读取所述中继日志的至少一段内容,将所述内容进行解析,转化为至少一条第二集群可执行的数据操作命令。
B14.根据B10-B13任一项所述的装置,其中,所述装置还包括:
第二线程模块,适于建立一个第二线程;
所述合并模块进一步包括:
顺序模块,适于依据数据操作命令执行顺序选取一条数据操作命令,利用所述第二线程对所述第二集群执行所选取的数据操作命令;
应答模块,适于接收所述第二集群返回的数据操作命令执行应答,判断所述数据操作命令是否执行成功;若所述数据操作命令执行失败,则利用所述第二线程继续对所述第二集群执行该条数据操作命令,直至所述数据操作命令执行成功;
循环模块,适于若所述数据操作命令执行成功,循环上述过程直至执行完成所有数据操作命令。
B15.根据B10-B14任一项所述的装置,其中,所述解析模块进一步适于:
解析所述中继日志的内容,获取满足过滤规则的内容;将所述满足过滤规则的内容转化为第二集群可执行的数据操作命令。
B16.根据B15所述的装置,其中,所述过滤规则为对指定数据库、和/或指定数据表、和/或指定数据表中至少一个字段进行限定的规则。
B17.根据B10-B16任一项所述的装置,其中,所述第一集群和第二集群均为Redis数据库集群。
B18.根据B10-B17任一项所述的装置,其中,所述数据操作命令包括数据写入命令、数据更新命令、数据删除命令、数据计算命令、数据合并命令、队列写入命令、队列删除命令、批量写入命令、批量删除命令、批量更新命令、队列中指定元素删除命令、队列中指定位置写入命令、队列中指定元素更新命令、实例级清理命令和/或库级清理命令。
本发明还公开了:C19.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如A1-A9中任一项所述的跨集群数据合并方法对应的操作。
本发明还公开了:D20.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行如A1-A9中任一项所述的跨集群数据合并方法对应的操作。
Claims (10)
1.一种跨集群数据合并方法,所述方法用于将至少一个第一集群的数据合并至第二集群中,所述方法包括:
读取第一集群的中继日志,所述中继日志记录有所述第一集群的写数据操作的相关信息;
解析所述中继日志的内容,将所述内容转化为第二集群可执行的数据操作命令;
对所述第二集群执行所述数据操作命令,以实现将所述至少一个第一集群的数据合并至所述第二集群。
2.根据权利要求1所述的方法,其中,所述中继日志的类型为.aof。
3.根据权利要求1或2所述的方法,其中,所述方法还包括:
获取所述至少一个第一集群和所述第二集群的管理员权限。
4.根据权利要求1-3中任一项所述的方法,其中,所述方法还包括:
建立多个并行的第一线程;
所述读取第一集群的中继日志,解析所述中继日志的内容,将所述内容转化为第二集群可执行的数据操作命令进一步包括:
利用所述多个第一线程并行读取所述中继日志的至少一段内容,将所述内容进行解析,转化为至少一条第二集群可执行的数据操作命令。
5.根据权利要求1-4中任一项所述的方法,其中,所述方法还包括:
建立一个第二线程;
所述对所述第二集群执行所述数据操作命令,以实现将所述至少一个第一集群的数据合并至所述第二集群进一步包括:
依据数据操作命令执行顺序选取一条数据操作命令,利用所述第二线程对所述第二集群执行所选取的数据操作命令;
接收所述第二集群返回的数据操作命令执行应答,判断所述数据操作命令是否执行成功;若所述数据操作命令执行失败,则利用所述第二线程继续对所述第二集群执行该条数据操作命令,直至所述数据操作命令执行成功;
若所述数据操作命令执行成功,循环上述过程直至执行完成所有数据操作命令。
6.根据权利要求1-5中任一项所述的方法,其中,所述解析所述中继日志的内容,将所述内容转化为第二集群可执行的数据操作命令进一步包括:
解析所述中继日志的内容,获取满足过滤规则的内容;
将所述满足过滤规则的内容转化为第二集群可执行的数据操作命令。
7.根据权利要求6所述的方法,其中,所述过滤规则为对指定数据库、和/或指定数据表、和/或指定数据表中至少一个字段进行限定的规则。
8.一种跨集群数据合并装置,所述装置用于将至少一个第一集群的数据合并至第二集群中,其包括:
读取模块,适于读取第一集群的中继日志,所述中继日志记录有所述第一集群的写数据操作的相关信息;
解析模块,适于解析所述中继日志的内容,将所述内容转化为第二集群可执行的数据操作命令;
合并模块,适于对所述第二集群执行所述数据操作命令,以实现将所述至少一个第一集群的数据合并至所述第二集群。
9.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的跨集群数据合并方法对应的操作。
10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的跨集群数据合并方法对应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710922481.5A CN107741963A (zh) | 2017-09-30 | 2017-09-30 | 跨集群数据合并方法及装置、电子设备、计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710922481.5A CN107741963A (zh) | 2017-09-30 | 2017-09-30 | 跨集群数据合并方法及装置、电子设备、计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107741963A true CN107741963A (zh) | 2018-02-27 |
Family
ID=61236645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710922481.5A Pending CN107741963A (zh) | 2017-09-30 | 2017-09-30 | 跨集群数据合并方法及装置、电子设备、计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107741963A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930781A (zh) * | 2020-07-24 | 2020-11-13 | 北京金山云网络技术有限公司 | 对缓存数据库的数据请求的处理方法和装置 |
CN112202766A (zh) * | 2020-09-28 | 2021-01-08 | 北京金山云网络技术有限公司 | 基于Redis的数据处理方法、装置以及服务端设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105227657A (zh) * | 2015-09-29 | 2016-01-06 | 北京京东尚科信息技术有限公司 | 一种数据同步的方法和装置 |
CN105260376A (zh) * | 2015-08-17 | 2016-01-20 | 北京京东尚科信息技术有限公司 | 用于集群节点缩扩的方法、设备和*** |
CN106919654A (zh) * | 2017-01-24 | 2017-07-04 | 徐州医科大学 | 一种基于Nginx的高可用MySQL数据库的实现方法 |
CN106934048A (zh) * | 2017-03-16 | 2017-07-07 | 北京搜狐新媒体信息技术有限公司 | 数据在线迁移方法、代理节点 |
CN106933703A (zh) * | 2015-12-30 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 一种数据库数据备份的方法、装置及电子设备 |
-
2017
- 2017-09-30 CN CN201710922481.5A patent/CN107741963A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260376A (zh) * | 2015-08-17 | 2016-01-20 | 北京京东尚科信息技术有限公司 | 用于集群节点缩扩的方法、设备和*** |
CN105227657A (zh) * | 2015-09-29 | 2016-01-06 | 北京京东尚科信息技术有限公司 | 一种数据同步的方法和装置 |
CN106933703A (zh) * | 2015-12-30 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 一种数据库数据备份的方法、装置及电子设备 |
CN106919654A (zh) * | 2017-01-24 | 2017-07-04 | 徐州医科大学 | 一种基于Nginx的高可用MySQL数据库的实现方法 |
CN106934048A (zh) * | 2017-03-16 | 2017-07-07 | 北京搜狐新媒体信息技术有限公司 | 数据在线迁移方法、代理节点 |
Non-Patent Citations (1)
Title |
---|
彭东稳: ""redis异构集群质检数据迁移方案"", 《HTTPS://WWW.YWNDS.COM/?8519》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930781A (zh) * | 2020-07-24 | 2020-11-13 | 北京金山云网络技术有限公司 | 对缓存数据库的数据请求的处理方法和装置 |
CN112202766A (zh) * | 2020-09-28 | 2021-01-08 | 北京金山云网络技术有限公司 | 基于Redis的数据处理方法、装置以及服务端设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10394770B2 (en) | Methods and systems for implementing a data reconciliation framework | |
CN106067080B (zh) | 提供可配置工作流能力 | |
US20180181957A1 (en) | Data monetization and exchange platform | |
CN107870845A (zh) | 面向微服务架构应用的管理方法及*** | |
De Oliveira et al. | Data-Intensive Workflow Management | |
US20220004683A1 (en) | System and method for creating domain specific languages for digital environment simulations | |
CN103942099B (zh) | 基于Hive的并行执行任务方法及装置 | |
US11531539B2 (en) | Automated compliance and testing framework for software development | |
CN109635024A (zh) | 一种数据迁移方法及*** | |
CN109918437A (zh) | 分布式数据处理方法、装置及数据资产管理*** | |
US20240250996A1 (en) | System and method for algorithm crowdsourcing, monetization, and exchange | |
CN112579586A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN108829505A (zh) | 一种分布式调度***及方法 | |
CN108427709B (zh) | 一种多源海量数据处理***及方法 | |
CN114691658A (zh) | 一种数据回溯方法、装置、电子设备及存储介质 | |
CN107153702A (zh) | 一种数据处理方法及装置 | |
CN107741963A (zh) | 跨集群数据合并方法及装置、电子设备、计算机存储介质 | |
US10073938B2 (en) | Integrated circuit design verification | |
CN113641739B (zh) | 一种基于Spark的智能数据转换方法 | |
CN108874395A (zh) | 一种组件化流处理过程中的硬编译方法及装置 | |
Blake et al. | Systems simulation with digital computers | |
EP3657351B1 (en) | Smart data transition to cloud | |
Suleykin et al. | Implementing big data processing workflows using open source technologies | |
CN104572921B (zh) | 一种跨数据中心的数据同步方法和装置 | |
CN116402325A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180227 |
|
RJ01 | Rejection of invention patent application after publication |