CN107451245A - 数据同步方法及服务器集群 - Google Patents
数据同步方法及服务器集群 Download PDFInfo
- Publication number
- CN107451245A CN107451245A CN201710626940.5A CN201710626940A CN107451245A CN 107451245 A CN107451245 A CN 107451245A CN 201710626940 A CN201710626940 A CN 201710626940A CN 107451245 A CN107451245 A CN 107451245A
- Authority
- CN
- China
- Prior art keywords
- database
- data
- sql
- file
- operation file
- 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
Links
Classifications
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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
-
- 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
- G06F16/273—Asynchronous replication or reconciliation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种数据同步方法,包括:在对第一数据库集群中的第一数据库执行SQL操作时,将SQL操作记录到第一数据库集群中的源操作文件中;将记录到源操作文件中的SQL操作同步到第二数据库集群中的目的操作文件中;以及对第二数据库集群中的第二数据库执行同步到目的操作文件中的SQL操作,以实现第一数据库与第二数据库之间数据同步。本公开还提供了一种服务器集群。
Description
技术领域
本公开涉及一种数据同步方法和一种服务器集群。
背景技术
随着互联网技术的发展,人们已经进入大数据时代,用于存放数据的数据库的需求也随之剧增。不同数据库可以用于存放不同类型数据,相应地,用于管理数据库的架构也不同。例如,在数据库中用于管理数据库的架构存在Impala、Hive等多种计算架构。然而,在相同或不同架构的数据库之间实现数据一致性的实时性差。
发明内容
本公开的一个方面提供了一种数据同步方法,包括在对第一数据库集群中的第一数据库执行SQL操作时,将上述SQL操作记录到上述第一数据库集群中的源操作文件中;将记录到上述源操作文件中的上述SQL操作同步到第二数据库集群中的目的操作文件中;以及对上述第二数据库集群中的第二数据库执行同步到上述目的操作文件中的上述SQL操作,以实现上述第一数据库与上述第二数据库之间数据同步。
可选地,上述源操作文件存储在上述第一数据库集群中的第三数据库中,上述目的操作文件存储在上述第二数据库集群中的第四数据库中,其中,上述第三数据库与上述第四数据库具有主从关系,并且,上述第三数据库为主数据库,上述第四数据库为上述主数据库的从数据库。
可选地,将上述SQL操作记录到上述第一数据库集群中的源操作文件中包括在对上述第一数据库执行上述SQL操作后,判断上述第一数据库中的数据是否发生变化;以及若上述第一数据库中的数据发生变化,则将上述SQL操作记录到上述源操作文件中。
可选地,将上述SQL操作记录到上述源操作文件中包括将上述SQL操作记录到上述源操作文件中的数据表中,上述数据表中设置有第一字段和第二字段,其中:上述第一字段用于记录上述SQL操作;以及上述第二字段用于记录上述SQL操作所针对的数据所在的文件的位置信息。
可选地,对上述第二数据库集群中的第二数据库执行同步到上述目的操作文件中的上述SQL操作包括根据上述第二字段中记录的文件的位置信息判断是否需要从上述第一数据库中复制上述SQL操作所针对的数据;若需要从上述第一数据库中复制上述SQL操作所针对的数据,则复制该数据;以及根据复制的数据和同步到上述目的操作文件中的上述SQL操作,对上述第二数据库执行对应的SQL操作。
可选地,上述第一数据库包括Hive架构,且上述第二数据库包括Hive架构;以及上述第三数据库包括Mysql架构,且上述第四数据库包括Mysql架构。
本公开的另一个方面还提供了一种服务器集群,包括至少一个处理器;以及至少一个存储器,其上存储有计算机可读程序,当上述程序被上述至少一个处理器执行时,使得上述至少一个处理器执行:在对第一数据库集群中的第一数据库执行SQL操作时,将上述SQL操作记录到上述第一数据库集群中的源操作文件中;将记录到上述源操作文件中的上述SQL操作同步到第二数据库集群中的目的操作文件中;以及对上述第二数据库集群中的第二数据库执行同步到上述目的操作文件中的上述SQL操作,以实现上述第一数据库与上述第二数据库之间数据同步。
可选地,上述源操作文件存储在上述第一数据库集群中的第三数据库中,上述目的操作文件存储在上述第二数据库集群中的第四数据库中,其中,上述第三数据库与上述第四数据库具有主从关系,并且,上述第三数据库为主数据库,上述第四数据库为上述主数据库的从数据库;其中,上述至少一个处理器执行将上述SQL操作记录到上述第一数据库集群中的源操作文件中包括:在对上述第一数据库执行上述SQL操作后,判断上述第一数据库中的数据是否发生变化;以及若上述第一数据库中的数据发生变化,则将上述SQL操作记录到上述源操作文件中。
可选地,上述至少一个处理器执行将上述SQL操作记录到上述源操作文件中包括将上述SQL操作记录到上述源操作文件中的数据表中,上述数据表中设置有第一字段和第二字段,其中:上述第一字段用于记录上述SQL操作;以及上述第二字段用于记录上述SQL操作所针对的数据所在的文件的位置信息。
可选地,上述至少一个处理器执行对上述第二数据库集群中的第二数据库执行同步到上述目的操作文件中的上述SQL操作包括:根据上述第二字段中记录的文件的位置信息判断是否需要从上述第一数据库中复制上述SQL操作所针对的数据;若需要从上述第一数据库中复制上述SQL操作所针对的数据,则复制该数据;以及根据复制的数据和同步到上述目的操作文件中的上述SQL操作,对上述第二数据库执行对应的SQL操作;上述第一数据库包括Hive架构,且上述第二数据库包括Hive架构;以及上述第三数据库包括Mysql架构,且上述第四数据库包括Mysql架构。
本公开的另一个方面还提供了一种数据同步系统,包括记录模块,用于在对第一数据库集群中的第一数据库执行SQL操作时,将上述SQL操作记录到上述第一数据库集群中的源操作文件中;同步模块,用于将记录到上述源操作文件中的上述SQL操作同步到第二数据库集群中的目的操作文件中;以及执行模块,用于对上述第二数据库集群中的第二数据库执行同步到上述目的操作文件中的上述SQL操作,以实现上述第一数据库与上述第二数据库之间数据同步。
可选地,上述源操作文件存储在上述第一数据库集群中的第三数据库中,上述目的操作文件存储在上述第二数据库集群中的第四数据库中,其中,上述第三数据库与上述第四数据库具有主从关系,并且,上述第三数据库为主数据库,上述第四数据库为上述主数据库的从数据库。
可选地,上述记录模块包括第一判断单元,用于在对上述第一数据库执行上述SQL操作后,判断上述第一数据库中的数据是否发生变化;以及第一记录单元,用于在上述第一数据库中的数据发生变化的情况下,则将上述SQL操作记录到上述源操作文件中。
可选地,上述记录模块包括第二记录单元,用于将上述SQL操作记录到上述源操作文件中的数据表中,上述数据表中设置有第一字段和第二字段,其中:上述第一字段用于记录上述SQL操作;以及上述第二字段用于记录上述SQL操作所针对的数据所在的文件的位置信息。
可选地,上述执行模块包括第二判断单元,用于根据上述第二字段中记录的文件的位置信息判断是否需要从上述第一数据库中复制上述SQL操作所针对的数据;复制单元,用于若需要从上述第一数据库中复制上述SQL操作所针对的数据,则复制该数据;以及执行单元,用于根据复制的数据和同步到上述目的操作文件中的上述SQL操作,对上述第二数据库执行对应的SQL操作。
可选地,上述第一数据库包括Hive架构,且上述第二数据库包括Hive架构;以及上述第三数据库包括Mysql架构,且上述第四数据库包括Mysql架构。
本公开的另一方面提供了一种非易失性存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现如上任一项所述的数据同步方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上任一项所述的数据同步方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的数据同步方法和服务器集群的应用场景图;
图2示意性示出了根据本公开实施例的数据同步方法的流程图;
图3A示意性示出了根据本公开实施例的将SQL操作记录到第一数据库集群中的源操作文件中的流程图;
图3B示意性示出了根据本公开实施例的对第二数据库集群中的第二数据库执行同步到目的操作文件中的SQL操作的流程图;
图4示意性示出了根据本公开实施例的数据同步系统的框图;
图5A示意性示出了根据本公开实施例的记录模块的框图;
图5B示意性示出了根据本公开实施例的执行模块的框图;以及
图6示意性示出了根据本公开实施例的服务器集群的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
本公开的实施例提供了一种用于数据库之间的数据同步方法和一种服务器集群。该方法包括在对第一数据库集群中的第一数据库执行SQL(Structured Query Language,结构化查询语言)操作时,将SQL操作记录到第一数据库集群中的源操作文件中;将记录到源操作文件中的SQL操作同步到第二数据库集群中的目的操作文件中;以及对第二数据库集群中的第二数据库执行同步到目的操作文件中的SQL操作,以实现第一数据库与第二数据库之间数据同步。
图1示意性示出了根据本公开实施例的数据同步方法和服务器集群的应用场景图。
具体地,如图1所示,服务器集群100可以包括多个服务器110以及网络120。网络120用以在服务器110之间提供通信链路的介质。网络120可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。服务器110可以是提供各种服务的服务器,例如存放数据表、提供查询功能、修改功能等的服务器,但不限于此。服务器集群100可以通过本公开实施例的方法实现不同数据库之间的数据同步。
应该理解,图1中的架构仅仅是示例,具体架构中包含的组件可以根据具体情况调整,根据实现需要,可以具有任意数目的网络和计算节点。
下面参照图2对本公开实施例的数据同步方法进行说明。
图2示意性示出了根据本公开实施例的数据同步方法的流程图。
如图2所示,该方法包括操作S201~操作S203。其中:
在操作S201,在对第一数据库集群中的第一数据库执行SQL操作时,将SQL操作记录到第一数据库集群中的源操作文件中。
在操作S202,将记录到源操作文件中的SQL操作同步到第二数据库集群中的目的操作文件中。
在操作S203,对第二数据库集群中的第二数据库执行同步到目的操作文件中的SQL操作,以实现第一数据库与第二数据库之间数据同步。
根据本公开的实施例,第一数据库集群中可以包括至少一个数据库,第二数据库集群中也可以包括至少一个数据库。在数据库中可以存储有文档文件以及图像文件等其它文件信息。SQL操作可以包括多种操作,例如,可以是删除操作,写入操作,覆盖原数据库中的数据的操作。对第一数据库执行SQL操作可以是对第一数据库中的文件下的某一行或某些行的数据进行删除操作,写入操作,覆盖原数据库中的数据操作。需要说明的是,SQL操作类型不限于上述列举的操作种类,其它对数据库进行的操作也可以是本公开的一种SQL操作。
对第一数据库执行的SQL操作可以记录在第一数据库集群中的源操作文件中,其中,源操作文件可以保存在第一数据库中,也可以保存在第一数据库集群中的其他数据库中。
根据本公开的实施例,在将SQL操作记录到源操作文件中后,通过源操作文件与目的操作文件的关联关系,可以将记录到源操作文件中的SQL操作同步到第二数据库集群中的目的操作文件中,进而对第二数据库集群中的第二数据库执行同步到目的操作文件中的SQL操作。其中,目的操作文件可以保存在第二数据库中,也可以保存在第二数据库集群中的其他数据库中。
根据本公开的实施例,由于将对数据库执行的SQL操作记录在源操作文件中,通过源操作文件与目的操作文件的关联关系,可以将记录到源操作文件中的SQL操作同步到目的操作文件中,进而对第二数据库集群中的第二数据库执行同步到目的操作文件中的SQL操作,解决了数据库之间进行数据同步的问题,提高了数据库之间数据一致性的实时性。并且整个同步数据过程不需要人工操作,减少了人力成本。
根据本公开的实施例,源操作文件存储在第一数据库集群中的第三数据库中,目的操作文件存储在第二数据库集群中的第四数据库中,其中,第三数据库与第四数据库具有主从关系,并且,第三数据库为主数据库,第四数据库为主数据库的从数据库。
根据本公开的实施例,利用多个数据库之间的主从机制,可以使得当其中一个或多个数据库中存储的数据发生变化时,同步具有主从关系的数据库中的数据,使得不同数据库中存储的数据保持一致性。
根据本公开的实施例,将源操作文件存储在第一数据库集群中的第三数据库中,目的操作文件存储在第二数据库集群中的第四数据库中,由于第三数据库与第四数据库具有主从关系,可以使得当源操作文件中记录有使数据库中的数据发生变化的SQL操作时,将该SQL操作同步到目的操作文件中。需要说明的是,将记录到源操作文件中的SQL操作同步到第二数据库集群中的目的操作文件中的方法还包括数据库自动检测是否执行SQL操作,在自动检测执行SQL操作的情况下,将SQL操作同时记录到源操作文件中和目的操作文件中。因此,将记录到源操作文件中的SQL操作同步到第二数据库集群中的目的操作文件中的方法包括多种,不限于上述记载的方式。
下面参考图3A~图3B,结合具体实施例对图2所示的方法做进一步说明。
图3A示意性示出了根据本公开实施例的将SQL操作记录到第一数据库集群中的源操作文件中的流程图。在该实施例中,除了包括上文参考图2描述的操作S201~S203之外,还包括操作S301~S302。为了描述的简洁起见,这里省略对操作S201~S203的描述。
具体地,如图3A所示,将SQL操作记录到第一数据库集群中的源操作文件中包括操作S301~操作S302。其中:
在操作S301,在对第一数据库执行SQL操作后,判断第一数据库中的数据是否发生变化。
在操作S302,若第一数据库中的数据发生变化,则将SQL操作记录到源操作文件中。
根据本公开的实施例,SOL操作除了可以是删除操作,写入操作,覆盖原数据库中的数据的操作之外,还可以是对数据库中的数据进行移动,更改数据存储的位置。根据本公开的实施例,在对第一数据库执行SQL操作后,判断第一数据库中的数据是否发生变化。在SQL操作是使第一数据库中的数据发生变化的情况下,第一数据库中的数据发生变化,则将SQL操作记录到源操作文件中。若SQL操作不能使第一数据库中的数据发生变化,则可以不用将SQL操作记录到源操作文件中。
根据本公开的实施例,通过判断第一数据库中的数据是否发生变化,并且在第一数据库中的数据发生变化的情况下,将SQL操作记录到源操作文件中。因此,减少了将SQL操作记录到源操作文件中的次数,节约了系统的资源。
根据本公开的实施例,将到源操作文件中包括将SQL操作记录到源操作文件中的数据表中,数据表中设置有第一字段和第二字段,其中,第一字段用于记录SQL操作;以及第二字段用于记录SQL操作所针对的数据所在的文件的位置信息。
根据本公开的实施例,在源操作文件中的数据表可以用于记录SQL操作,数据表中设置有第一字段和第二字段,其中,第一字段用于记录SQL操作。第二字段用于记录SQL操作所针对的数据所在的文件的位置信息,SQL操作所针对的数据所在的文件的位置信息可以是在第一数据库集群中的第一数据库中,也可以是在第一数据库集群中的其他数据库中。
图3B示意性示出了根据本公开实施例的对第二数据库集群中的第二数据库执行同步到目的操作文件中的SQL操作的流程图。
具体地,如图3B所示,对第二数据库集群中的第二数据库执行同步到目的操作文件中的SQL操作包括操作S303~操作S305。其中:
在操作S303,根据第二字段中记录的文件的位置信息判断是否需要从第一数据库中复制SQL操作所针对的数据。
在操作S304,若需要从第一数据库中复制SQL操作所针对的数据,则复制该数据。
在操作S305,根据复制的数据和同步到目的操作文件中的SQL操作,对第二数据库执行对应的SQL操作。
根据本公开的实施例,由于第二字段中记录的文件的位置信息可能是为空,也可能是实际的存储地址。因此,根据第二字段中记录的文件的位置信息可以判断是否需要从第一数据库中复制SQL操作所针对的数据。当第二字段中记录的文件的位置信息不为空时,可以从第一数据库中复制SQL操作所针对的数据,根据复制的数据和同步到目的操作文件中的SQL操作,对第二数据库执行对应的SQL操作。当第二字段中记录的文件的位置信息为空时,就不需要从第一数据库中复制SQL操作所针对的数据。
根据本公开的实施例,例如,当SQL操作为对第一数据库中的数据进行运算的操作时,可以在第一字段记录SQL操作,第二字段记录SQL操作所针对的数据所在的文件的位置信息,SQL操作所针对的数据所在的文件的位置信息在第一数据库集群中的第一数据库中。因此,可以从第一数据库集群中的第一数据库中复制SQL操作所针对的数据。
根据本公开的实施例,例如,当SQL操作为添加数据至第一数据库中的操作时,可以在第一字段记录SQL操作,第二字段记录SQL操作所针对的数据所在的文件的位置信息,SQL操作所针对的数据所在的文件的位置信息可以是在第一数据库集群中的其他数据库中。因此,可以从第一数据库集群中的其他数据库中复制SQL操作所针对的数据。
根据本公开的实施例,通过第二字段中记录的文件的位置信息可以判断是否需要从第一数据库中复制SQL操作所针对的数据,也可以判断是否需要从其他数据库中复制SQL操作所针对的数据,简化了数据处理流程,提高了数据处理效率。
根据本公开的实施例,第一数据库包括Hive架构,且第二数据库包括Hive架构。第三数据库包括Mysql架构,且第四数据库包括Mysql架构。
根据本公开的实施例,当第三数据库和第四数据库为Mysql架构的数据库时,可以利用Mysql架构的数据库之间的主从机制,提高Hive架构的第一数据库和第二数据库之间的数据同步的一致性。
图4示意性示出了根据本公开实施例的数据同步系统的框图。
如图4所示,数据同步系统400包括记录模块401、同步模块402和执行模块403。该数据同步系统400可以执行上面参考图2~图3B描述的方法。
具体地,记录模块401用于在对第一数据库集群中的第一数据库执行SQL操作时,将SQL操作记录到第一数据库集群中的源操作文件中。
同步模块402用于将记录到源操作文件中的SQL操作同步到第二数据库集群中的目的操作文件中。
执行模块403用于对第二数据库集群中的第二数据库执行同步到目的操作文件中的SQL操作,以实现第一数据库与第二数据库之间数据同步。
根据本公开的实施例,由于将对数据库执行的SQL操作记录在源操作文件中,通过源操作文件与目的操作文件的关联关系,可以将记录到源操作文件中的SQL操作同步到目的操作文件中,进而对第二数据库集群中的第二数据库执行同步到目的操作文件中的SQL操作,解决了数据库之间进行数据同步的问题,提高了数据库之间数据一致性的实时性。并且整个同步数据过程不需要人工操作,减少了人力成本。
根据本公开的实施例,源操作文件存储在第一数据库集群中的第三数据库中,目的操作文件存储在第二数据库集群中的第四数据库中,其中,第三数据库与第四数据库具有主从关系,并且,第三数据库为主数据库,第四数据库为主数据库的从数据库。
图5A示意性示出了根据本公开实施例的记录模块的框图。
如图5A所示,记录模块401包括第一判断单元4011和第一记录单元4012。
第一判断单元4011用于在对第一数据库执行SQL操作后,判断第一数据库中的数据是否发生变化。
第一记录单元4012用于在第一数据库中的数据发生变化的情况下,则将SQL操作记录到源操作文件中。
根据本公开的实施例,记录模块401包括第二记录单元,用于将SQL操作记录到源操作文件中的数据表中,数据表中设置有第一字段和第二字段。其中,第一字段用于记录SQL操作。第二字段用于记录SQL操作所针对的数据所在的文件的位置信息。
图5B示意性示出了根据本公开实施例的执行模块的框图。
如图5B所示,执行模块403包括第二判断单元4031、复制单元4032和执行单元4033。其中:
第二判断单元4031用于根据第二字段中记录的文件的位置信息判断是否需要从第一数据库中复制SQL操作所针对的数据。
复制单元4032用于若需要从第一数据库中复制SQL操作所针对的数据,则复制该数据。
执行单元4033用于根据复制的数据和同步到目的操作文件中的SQL操作,对第二数据库执行对应的SQL操作。
根据本公开的实施例,第一数据库包括Hive架构,且第二数据库包括Hive架构。第三数据库包括Mysql架构,且第四数据库包括Mysql架构。
可以理解的是,记录模块401、同步模块402和执行模块403可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,记录模块401、同步模块402和执行模块403中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,记录模块401、同步模块402和执行模块403中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
图6示意性示出了根据本公开实施例的服务器集群的框图。
如图6所示,服务器集群500包括处理器510和存储器520。该服务器集群500可以执行上面参考图2~图3B描述的方法。
存储器520上存储有计算机可读程序,当程序被至少一个处理器执行时,使得至少一个处理器执行:在对第一数据库集群中的第一数据库执行SQL操作时,将SQL操作记录到第一数据库集群中的源操作文件中;将记录到源操作文件中的SQL操作同步到第二数据库集群中的目的操作文件中;以及对第二数据库集群中的第二数据库执行同步到目的操作文件中的SQL操作,以实现第一数据库与第二数据库之间数据同步。
根据本公开的实施例,由于将对数据库执行的SQL操作记录在源操作文件中,通过源操作文件与目的操作文件的关联关系,可以将记录到源操作文件中的SQL操作同步到目的操作文件中,进而对第二数据库集群中的第二数据库执行同步到目的操作文件中的SQL操作,解决了数据库之间进行数据同步的问题,提高了数据库之间数据一致性的实时性。并且整个同步数据过程不需要人工操作,减少了人力成本。
根据本公开的实施例,源操作文件存储在第一数据库集群中的第三数据库中,目的操作文件存储在第二数据库集群中的第四数据库中,其中,第三数据库与第四数据库具有主从关系,并且,第三数据库为主数据库,第四数据库为主数据库的从数据库;其中,至少一个处理器执行将SQL操作记录到第一数据库集群中的源操作文件中包括:在对第一数据库执行SQL操作后,判断第一数据库中的数据是否发生变化;以及若第一数据库中的数据发生变化,则将SQL操作记录到源操作文件中。
根据本公开的实施例,利用多个数据库之间的主从机制,可以使得当其中一个或多个数据库中存储的数据发生变化时,同步具有主从关系的数据库中的数据,使得不同数据库中存储的数据保持一致性。通过判断第一数据库中的数据是否发生变化,并且在第一数据库中的数据发生变化的情况下,将SQL操作记录到源操作文件中。因此,减少了将SQL操作记录到源操作文件中的次数,节约了系统的资源。
根据本公开的实施例,至少一个处理器执行将SQL操作记录到源操作文件中包括将SQL操作记录到源操作文件中的数据表中,数据表中设置有第一字段和第二字段,其中:第一字段用于记录SQL操作;以及第二字段用于记录SQL操作所针对的数据所在的文件的位置信息。
根据本公开的实施例,至少一个处理器执行对第二数据库集群中的第二数据库执行同步到目的操作文件中的SQL操作包括根据第二字段中记录的文件的位置信息判断是否需要从第一数据库中复制SQL操作所针对的数据;若需要从第一数据库中复制SQL操作所针对的数据,则复制该数据;以及根据复制的数据和同步到目的操作文件中的SQL操作,对第二数据库执行对应的SQL操作;第一数据库包括Hive架构,且第二数据库包括Hive架构;以及第三数据库包括Mysql架构,且第四数据库包括Mysql架构。
根据本公开的实施例,通过第二字段中记录的文件的位置信息可以判断是否需要从第一数据库中复制SQL操作所针对的数据,也可以判断是否需要从其他数据库中复制SQL操作所针对的数据,简化了数据处理流程,提高了数据处理效率。根据本公开的实施例,当第三数据库和第四数据库为Mysql架构的数据库时,可以利用Mysql架构的数据库之间的主从机制,提高Hive架构的第一数据库和第二数据库之间的数据同步的一致性。
具体地,处理器510例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器510还可以包括用于缓存用途的板载存储器。处理器510可以是用于执行参考图2~图3B描述的根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
存储器520,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
存储器520可以包括计算机程序521,该计算机程序521可以包括代码/计算机可执行指令,其在由处理器510执行时使得处理器510执行例如上面结合图2~图3B所描述的方法流程及其任何变形。
计算机程序521可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序521中的代码可以包括一个或多个程序模块,例如包括521A、模块521B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器510执行时,使得处理器510可以执行例如上面结合图2~图3B所描述的方法流程及其任何变形。
根据本发明的实施例,记录模块401、同步模块402和执行模块403中的至少一个可以实现为参考图6描述的计算机程序模块,其在被处理器510执行时,可以实现上面描述的相应操作。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (10)
1.一种数据同步方法,包括:
在对第一数据库集群中的第一数据库执行SQL操作时,将所述SQL操作记录到所述第一数据库集群中的源操作文件中;
将记录到所述源操作文件中的所述SQL操作同步到第二数据库集群中的目的操作文件中;以及
对所述第二数据库集群中的第二数据库执行同步到所述目的操作文件中的所述SQL操作,以实现所述第一数据库与所述第二数据库之间数据同步。
2.根据权利要求1所述的方法,所述源操作文件存储在所述第一数据库集群中的第三数据库中,所述目的操作文件存储在所述第二数据库集群中的第四数据库中,其中,所述第三数据库与所述第四数据库具有主从关系,并且,所述第三数据库为主数据库,所述第四数据库为所述主数据库的从数据库。
3.根据权利要求1所述的方法,其中,将所述SQL操作记录到所述第一数据库集群中的源操作文件中包括:
在对所述第一数据库执行所述SQL操作后,判断所述第一数据库中的数据是否发生变化;以及
若所述第一数据库中的数据发生变化,则将所述SQL操作记录到所述源操作文件中。
4.根据权利要求1或3所述的方法,其中,将所述SQL操作记录到所述源操作文件中包括:
将所述SQL操作记录到所述源操作文件中的数据表中,所述数据表中设置有第一字段和第二字段,其中:
所述第一字段用于记录所述SQL操作;以及
所述第二字段用于记录所述SQL操作所针对的数据所在的文件的位置信息。
5.根据权利要求4所述的方法,其中,对所述第二数据库集群中的第二数据库执行同步到所述目的操作文件中的所述SQL操作包括:
根据所述第二字段中记录的文件的位置信息判断是否需要从所述第一数据库中复制所述SQL操作所针对的数据;
若需要从所述第一数据库中复制所述SQL操作所针对的数据,则复制该数据;以及
根据复制的数据和同步到所述目的操作文件中的所述SQL操作,对所述第二数据库执行对应的SQL操作。
6.根据权利要求2所述的方法,其中:
所述第一数据库包括Hive架构,且所述第二数据库包括Hive架构;以及
所述第三数据库包括Mysql架构,且所述第四数据库包括Mysql架构。
7.一种服务器集群,包括:
至少一个处理器;以及
至少一个存储器,其上存储有计算机可读程序,当所述程序被所述至少一个处理器执行时,使得所述至少一个处理器执行:
在对第一数据库集群中的第一数据库执行SQL操作时,将所述SQL操作记录到所述第一数据库集群中的源操作文件中;
将记录到所述源操作文件中的所述SQL操作同步到第二数据库集群中的目的操作文件中;以及
对所述第二数据库集群中的第二数据库执行同步到所述目的操作文件中的所述SQL操作,以实现所述第一数据库与所述第二数据库之间数据同步。
8.根据权利要求7所述的集群,所述源操作文件存储在所述第一数据库集群中的第三数据库中,所述目的操作文件存储在所述第二数据库集群中的第四数据库中,其中,所述第三数据库与所述第四数据库具有主从关系,并且,所述第三数据库为主数据库,所述第四数据库为所述主数据库的从数据库;
其中,所述至少一个处理器执行将所述SQL操作记录到所述第一数据库集群中的源操作文件中包括:
在对所述第一数据库执行所述SQL操作后,判断所述第一数据库中的数据是否发生变化;以及
若所述第一数据库中的数据发生变化,则将所述SQL操作记录到所述源操作文件中。
9.根据权利要求7或8所述的集群,其中,所述至少一个处理器执行将所述SQL操作记录到所述源操作文件中包括:
将所述SQL操作记录到所述源操作文件中的数据表中,所述数据表中设置有第一字段和第二字段,其中:
所述第一字段用于记录所述SQL操作;以及
所述第二字段用于记录所述SQL操作所针对的数据所在的文件的位置信息。
10.根据权利要求9所述的集群,其中,所述至少一个处理器执行对所述第二数据库集群中的第二数据库执行同步到所述目的操作文件中的所述SQL操作包括:
根据所述第二字段中记录的文件的位置信息判断是否需要从所述第一数据库中复制所述SQL操作所针对的数据;
若需要从所述第一数据库中复制所述SQL操作所针对的数据,则复制该数据;以及
根据复制的数据和同步到所述目的操作文件中的所述SQL操作,对所述第二数据库执行对应的SQL操作;
所述第一数据库包括Hive架构,且所述第二数据库包括Hive架构;以及
所述第三数据库包括Mysql架构,且所述第四数据库包括Mysql架构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710626940.5A CN107451245B (zh) | 2017-07-27 | 2017-07-27 | 数据同步方法及服务器集群 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710626940.5A CN107451245B (zh) | 2017-07-27 | 2017-07-27 | 数据同步方法及服务器集群 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107451245A true CN107451245A (zh) | 2017-12-08 |
CN107451245B CN107451245B (zh) | 2021-02-19 |
Family
ID=60489694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710626940.5A Active CN107451245B (zh) | 2017-07-27 | 2017-07-27 | 数据同步方法及服务器集群 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107451245B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101615199A (zh) * | 2009-07-31 | 2009-12-30 | 深圳市珍爱网信息技术有限公司 | 异构数据库同步方法及系统 |
CN102254031A (zh) * | 2011-08-03 | 2011-11-23 | 无锡浙潮科技有限公司 | 基于批处理请求的Microsoft SQL Server数据库集群 |
CN104462483A (zh) * | 2014-12-18 | 2015-03-25 | 北京奇虎科技有限公司 | 数据同步方法、装置及系统 |
US20160283335A1 (en) * | 2015-03-24 | 2016-09-29 | Xinyu Xingbang Information Industry Co., Ltd. | Method and system for achieving a high availability and high performance database cluster |
CN106341454A (zh) * | 2016-08-23 | 2017-01-18 | 世纪龙信息网络有限责任公司 | 跨机房多活分布式数据库管理系统和方法 |
CN106844682A (zh) * | 2017-01-25 | 2017-06-13 | 北京百分点信息科技有限公司 | 数据交换方法、装置及系统 |
CN106951456A (zh) * | 2017-02-24 | 2017-07-14 | 广东广信通信服务有限公司 | 一种内存数据库系统及数据处理系统 |
-
2017
- 2017-07-27 CN CN201710626940.5A patent/CN107451245B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101615199A (zh) * | 2009-07-31 | 2009-12-30 | 深圳市珍爱网信息技术有限公司 | 异构数据库同步方法及系统 |
CN102254031A (zh) * | 2011-08-03 | 2011-11-23 | 无锡浙潮科技有限公司 | 基于批处理请求的Microsoft SQL Server数据库集群 |
CN104462483A (zh) * | 2014-12-18 | 2015-03-25 | 北京奇虎科技有限公司 | 数据同步方法、装置及系统 |
US20160283335A1 (en) * | 2015-03-24 | 2016-09-29 | Xinyu Xingbang Information Industry Co., Ltd. | Method and system for achieving a high availability and high performance database cluster |
CN106341454A (zh) * | 2016-08-23 | 2017-01-18 | 世纪龙信息网络有限责任公司 | 跨机房多活分布式数据库管理系统和方法 |
CN106844682A (zh) * | 2017-01-25 | 2017-06-13 | 北京百分点信息科技有限公司 | 数据交换方法、装置及系统 |
CN106951456A (zh) * | 2017-02-24 | 2017-07-14 | 广东广信通信服务有限公司 | 一种内存数据库系统及数据处理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107451245B (zh) | 2021-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10866967B2 (en) | Multi-replica asynchronous table replication | |
JP6816297B2 (ja) | ブロックチェーンネットワークにおけるデータ分離 | |
US9584358B2 (en) | Global production rules for distributed data | |
US20150149409A1 (en) | Dml replication with logical log shipping | |
CN107733977A (zh) | 一种基于Docker的集群管理方法及装置 | |
CN109831500A (zh) | Kubernetes集群中配置文件与Pod的同步方法 | |
CN109379432A (zh) | 数据处理方法、装置、服务器及计算机可读存储介质 | |
CN106503791A (zh) | 用于有效神经网络部署的系统和方法 | |
CN107590277A (zh) | 数据同步方法、装置、电子设备及存储介质 | |
JP2013033583A (ja) | 連想メモリ更新のためのシステム | |
CN107463692B (zh) | 超大文本数据同步到搜索引擎的方法和系统 | |
US11556496B2 (en) | Outputting map-reduce jobs to an archive file | |
CN107766147A (zh) | 分布式的数据分析任务调度系统 | |
WO2015085901A1 (zh) | 一种文件传输方法、设备以及相关系统 | |
CN107609061A (zh) | 一种数据同步的方法和装置 | |
CN108427728A (zh) | 元数据的管理方法、设备及计算机可读介质 | |
CN103077070A (zh) | 云计算管理系统以及云计算系统的管理方法 | |
CN104572941B (zh) | 数据存储方法、装置和设备 | |
US11949653B2 (en) | Automated syncing of data between security domains | |
CN104461929B (zh) | 基于拦截器的分布式数据缓存方法 | |
CN103970512B (zh) | 多核处理器及其并行重放方法 | |
CN105978712A (zh) | 一种云计算管理系统的方法 | |
US20150178328A1 (en) | Client-Side Directed Commands to a Loosely Coupled Database | |
US20220036206A1 (en) | Containerized distributed rules engine | |
CN107526838A (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 |