CN109379398A - 一种数据同步方法及装置 - Google Patents

一种数据同步方法及装置 Download PDF

Info

Publication number
CN109379398A
CN109379398A CN201811012757.7A CN201811012757A CN109379398A CN 109379398 A CN109379398 A CN 109379398A CN 201811012757 A CN201811012757 A CN 201811012757A CN 109379398 A CN109379398 A CN 109379398A
Authority
CN
China
Prior art keywords
server cluster
data table
dummy node
preset data
memory
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
CN201811012757.7A
Other languages
English (en)
Other versions
CN109379398B (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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201811012757.7A priority Critical patent/CN109379398B/zh
Publication of CN109379398A publication Critical patent/CN109379398A/zh
Application granted granted Critical
Publication of CN109379398B publication Critical patent/CN109379398B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据同步方法及装置,属于网络技术领域。其中,第一服务器集群可以划分多个虚拟节点并为每个虚拟节点分配对应量的内存,利用多个虚拟节点中的每个节点,将每个虚拟节点在第一服务器集群中对应的分区中的目标数据加载至虚拟节点的内存中,进而提高从第一服务器集群中获取目标数据的效率,利用多个虚拟节点将内存中的目标数据写入预设数据表对应的分区中,进而省略第二服务器集群对目标数据进行加载的操作,进一步提高数据同步效率,控制第二服务器集群根据目标数据对预设数据表进行更新,使得后续步骤中能够通过该预设数据表识别到同步至第二服务器集群的目标数据,进而保证所同步的数据能够被正常进行处理。

Description

一种数据同步方法及装置
技术领域
本发明属于网络技术领域,特别是涉及一种数据同步方法及装置。
背景技术
随着网络技术的不断发展,网络中产生的数据越来越多,为了便于对数据进行管理,这些数据往往会存储在服务器集群的文件系统中的不同分区中。由于数据中包含有大量有价值的信息,因此经常需要对数据进行分析,而在对数据进行分析之前,往往需要对数据进行同步,例如,将第一服务器集群上的数据同步到第二服务器集群上。
现有技术中,在将第一服务器集群上的数据同步到第二服务器集群上时,通常是对第一服务器集群的各个分区依次进行扫描来获取需要同步的数据,然后将获取的需要同步的数据存储至第一服务器集群的某个磁盘中,在获取到所有需要进行同步的数据之后,再将这个磁盘中的数据拷贝至第二服务器集群的磁盘中,然后第二服务器集群再将这个磁盘中的数据分别加载到对应的分区中,整个操作过程较为繁琐,效率较低。
发明内容
本发明提供一种数据同步方法及装置,以便解决数据同步操作较为繁琐,效率较低的问题。
依据本发明的第一方面,提供了一种数据同步方法,应用于第一服务器集群,该方法包括:
根据预先定义的节点数及各个节点对应的内存量,将所述第一服务器集群的处理资源划分为多个虚拟节点并为每个虚拟节点分配对应量的内存;
利用所述多个虚拟节点中的每个虚拟节点,将每个虚拟节点在所述第一服务器集群中对应的分区中的目标数据加载至所述虚拟节点的内存中;其中,每个虚拟节点对应至少一个分区;
根据第二服务器集群的预设数据表,利用所述多个虚拟节点将所述内存中的目标数据写入所述预设数据表对应的分区中;所述预设数据表用于指示所述目标数据中的各部分数据对应的分区;
控制所述第二服务器集群根据所述目标数据对所述预设数据表进行更新。
可选的,所述根据第二服务器集群的预设数据表,利用所述多个虚拟节点将所述内存中的目标数据写入所述预设数据表对应的分区中,包括:
对于每个虚拟节点,在所述虚拟节点对应的内存的占用率大于预设占用率阈值时,调用所述第二服务器集群的文件系统接口;
通过所述文件系统接口,将所述目标数据以列式存储格式写入所述第二服务器集群中所述预设数据表对应的分区中;
释放所述虚拟节点对应的内存。
可选的,所述利用所述多个虚拟节点将所述内存中的目标数据写入所述预设数据表对应的分区中之前,所述方法还包括:
检测所述第二服务器集群中是否存在所述预设数据表;
若所述第二服务器集群中不存在所述预设数据表,则在所述第二服务器集群中建立所述预设数据表。
可选的,所述控制所述第二服务器集群根据所述目标数据对所述预设数据表进行更新,包括:
向所述第二服务器集群发送修复命令,以使所述第二服务器集群将所述目标数据的字段信息写入所述预设数据表的元信息中。
可选的,所述在所述第二服务器集群中建立所述预设数据表,包括:
根据所述目标数据中的各部分数据在所述第一服务器集群中所对应的分区,生成所述预设数据表并存储至所述第二服务器集群中。:
依据本发明的第二方面,提供了一种数据同步装置,应用于第一服务器集群,该装置包括:
划分模块,用于根据预先定义的节点数及各个节点对应的内存量,将所述第一服务器集群的处理资源划分为多个虚拟节点并为每个虚拟节点分配对应量的内存;
加载模块,用于利用所述多个虚拟节点中的每个虚拟节点,将每个虚拟节点在所述第一服务器集群中对应的分区中的目标数据加载至所述虚拟节点的内存中;其中,每个虚拟节点对应至少一个分区;
写入模块,用于根据第二服务器集群的预设数据表,利用所述多个虚拟节点将所述内存中的目标数据写入所述预设数据表对应的分区中;所述预设数据表用于指示所述目标数据中的各部分数据对应的分区;
控制模块,用于控制所述第二服务器集群根据所述目标数据对所述预设数据表进行更新。
可选的,所述加载模块,用于:
对于每个虚拟节点,在所述虚拟节点对应的内存的占用率大于预设占用率阈值时,调用所述第二服务器集群的文件系统接口;
通过所述文件系统接口,将所述目标数据以列式存储格式写入所述第二服务器集群中所述预设数据表对应的分区中;
释放所述虚拟节点对应的内存。
可选的,所述装置还包括:
检测模块,用于检测所述第二服务器集群中是否存在所述预设数据表;
建立模块,用于若所述第二服务器集群中不存在所述预设数据表,则在所述第二服务器集群中建立所述预设数据表。
可选的,所述控制模块,用于:
向所述第二服务器集群发送修复命令,以使所述第二服务器集群将所述目标数据的字段信息写入所述预设数据表的元信息中。
可选的,所述建立模块,用于:
根据所述目标数据中的各部分数据在所述第一服务器集群中所对应的分区,生成所述预设数据表并存储至所述第二服务器集群中。
第三方面,本发明实施例提供了一种移动终端,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的数据同步方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的数据同步方法的步骤。
针对在先技术,本发明具备如下优点:
第一服务器集群可以根据预先定义的节点数及各个节点对应的内存量,将第一服务器集群的处理资源划分为多个虚拟节点并为每个虚拟节点分配对应量的内存,然后利用多个虚拟节点中的每个节点,同时将每个虚拟节点在第一服务器集群中对应的分区中的目标数据加载至虚拟节点的内存中,这样,通过同时对多个分区进行处理可以提高从第一服务器集群中获取目标数据的效率,进一步地,可以根据第二服务器集群的预设数据表,利用多个虚拟节点将内存中的目标数据写入预设数据表对应的分区中,进而省略第二服务器集群对目标数据进行加载的操作,进一步提高数据同步效率,最后,控制第二服务器集群根据目标数据对预设数据表进行更新,使得后续步骤中,能够通过该预设数据表识别到同步至第二服务器集群的目标数据,进而保证所同步的数据能够被正常进行处理。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施例一提供的一种数据同步方法的步骤流程图;
图2是本发明实施例二提供的一种数据同步方法的步骤流程图;
图3是本发明实施例三提供的一种数据同步装置的框图;
图4是本发明实施例四提供的一种数据同步装置的框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
实施例一
图1是本发明实施例一提供的一种数据同步方法的步骤流程图,该方法可以应用于第一服务器集群,如图1所示,该方法可以包括:
步骤101、根据预先定义的节点数及各个节点对应的内存量,将所述第一服务器集群的处理资源划分为多个虚拟节点并为每个虚拟节点分配对应量的内存。
本发明实施例中,节点数及各个节点对应的内存量可以是开发人员根据第一服务器集群中所包含的所有服务器的性能以及第一服务器集群中包括的分区数量确定的,示例的,在定义节点数时,可以设置不大于分区数的数值作为节点数,进一步地,在设定对应内存量时,可以设置所有节点对应的内存量总在第一服务器集群内存资源的占比不大于预设比值,以保证不会影响第一服务器集群进行其他处理任务,示例的,该预设比例可以为40%,当然,该预设比例也可以被设置为其他数值,本发明实施例对此不作限定。
进一步地,该虚拟节点可以由服务器集群的部分处理资源构成,具体的,可以将部分处理资源作为一个虚拟节点来执行处理任务,并根据该虚拟节点对应的内存量,为其分配对应量的内存。其中,部分处理资源可以指的是第一服务器集群中部分服务器的中央处理器(Central Processing Unit,CPU)。
步骤102、利用所述多个虚拟节点中的每个虚拟节点,将每个虚拟节点在所述第一服务器集群中对应的分区中的目标数据加载至所述虚拟节点的内存中;其中,每个虚拟节点对应至少一个分区。
本发明实施例中,可以利用多个虚拟节点每次对第一服务器集群中的多个分区进行处理,即,同时从多个分区中获取并加载目标数据,其中,不同的应用场景中,目标数据的具体内容可以不同,例如,该目标数据可以是业务方提供的使用日志,本发明实施例对此不作限定,进一步地,虚拟节点对应的分区可以为多个分区中的任一分区,进而可以提高从第一服务器集群中获取目标数据的效率,进而提高数据同步操作的效率。示例的,假设有10个虚拟节点,第一服务器集群中存在100个分区,那么可以利用这个10个虚拟节点先对其中的10个分区进行处理,然后再对另外10个分区进行处理,以此类推,完成对中100个分区的处理。进一步地,本发明实施例中的内存又称为内存储器,通常也泛称为主存储器,相对于外存而言的,由于内存的存取速度快,因此,本发明实施例中通过为虚拟节点分配内存,并将数据存储至内存中,可以提高加载获取的目标数据的效率。
步骤103、根据第二服务器集群的预设数据表,利用所述多个虚拟节点将所述内存中的目标数据写入所述预设数据表对应的分区中;所述预设数据表对应的分区中。
本发明实施例中,预设数据表中可以定义有不同数据条件参数及其对应的分区标识,其中,该数据条件参数可以为时间、地区,等等,示例的,以地区为例,该预设数据表中可以定义有数据条件参数:A地区及其对应的分区标识1;B地区及其对应的分区标识2,等等。相应地,目标数据对应的分区是由该目标数据的属性决定的,虚拟节点可以将其内存中符合某个分区标识对应的数据条件参数的这部分数据,写入该分区标识所指示的分区中。示例的,假设虚拟节点a内存中的目标数据是A地区产生的日志,那么虚拟节点a可以将其内存中的目标数据写入标识为1的分区中,其中,分区可以为文件夹,分区标识可以标识文件夹的名称。
具体的,第一服务器集群中的多个虚拟节点可以是在内存占用量达到一定程度时,将其内存中的目标数据写入第二服务器集群中预设数据表对应的分区中。进一步地,第一服务器集群可以在对每个分区都处理完成之后,或者获取到需要进行同步的所有目标数据之后,确认完成数据同步操作。
步骤104、控制所述第二服务器集群根据所述目标数据对所述预设数据表进行更新。
本发明实施例中,由于第一服务器集群在各个的分区中存储了新的数据,因此,第一服务器集群可以向第二服务器集群发送一控制指令,以使该第二服务器集群将各个分区中具体存储的数据的字段信息写入该预设数据表中,其中,该字段信息可以是目标数据的标识,具体的,可以是建立该分区标识与该分区标识对应的分区中新存储的数据的字段信息的对应关系,进而使得后续步骤中,第二服务器集群能够通过该预设数据表确定同步至第二服务器集群的目标数据,便于进行数据管理。
综上所述,本发明实施例一提供的数据同步方法,第一服务器集群可以根据预先定义的节点数及各个节点对应的内存量,将第一服务器集群的处理资源划分为多个虚拟节点并为每个虚拟节点分配对应量的内存,然后利用多个虚拟节点中的每个节点,将每个虚拟节点在第一服务器集群中对应的分区中的目标数据加载至虚拟节点的内存中,这样,通过每次对多个分区进行处理可以提高从第一服务器集群中获取目标数据的效率,进一步地,可以根据第二服务器集群的预设数据表,利用多个虚拟节点将内存中的目标数据写入预设数据表对应的分区中,进而省略第二服务器集群对目标数据进行加载的操作,进一步提高数据同步效率,最后,控制第二服务器集群根据目标数据对预设数据表进行更新,使得后续步骤中,能够通过该预设数据表识别到同步至第二服务器集群的目标数据,进而保证所同步的数据能够被正常进行处理。
实施例二
图2是本发明实施例二提供的一种数据同步方法的步骤流程图,该方法可以应用于第一服务器集群,如图2所示,该方法可以包括:
步骤201、根据预先定义的节点数及各个节点对应的内存量,将所述第一服务器集群的处理资源划分为多个虚拟节点并为每个虚拟节点分配对应量的内存。
具体的,本步骤的实现方式可以参考上述步骤101,本发明实施例在此不做赘述。
步骤202、检测所述第二服务器集群中是否存在所述预设数据表。
本步骤中,第一服务器集群可以通过连接至第二服务器集群对外暴露的服务,来实现检测是否存在预设数据表,示例的,以该预设数据表是基于数据仓库管理工具Hive生成的为例,第一服务器集群可以连接第二服务器集群中部署的Hive工具提供的Hiveserver服务,其中,该Hive工具是基于分布式文件系统的一个数据仓库工具,一般用于对数据进行管理,该Hive server服务可以是由第二服务器集群中的Hive工具提供的一个对外暴露的服务,进一步地,第一服务器集群可以是通过数据库连接接口(Java DataBaseConnectivity,JDBC)与第二服务器集群的Hive server服务连接。
步骤203、若所述第二服务器集群中不存在所述预设数据表,则在所述第二服务器集群中建立所述预设数据表。
本步骤中,在建立预设数据表时,可以根据目标数据中的各部分数据在第一服务器集群中所对应的分区,生成预设数据表并存储至第二服务器集群中,具体的,第一服务器集群可以先对器内部存储的数据进行扫描,进而确定出需要同步的数据所在的分区的标识,并根据这些数据的属性确定出数据条件参数,生成预设数据表。进一步地,在本发明的另一可选实施例中,也可以是通过下述方式实现建立预设数据表:在检测到第二服务器集群中不存在预设数据表时,向控制终端发送一数据表建立提醒,使得开发人员通过该控制终端手动建立预设数据表,并发送至第二服务器集群,具体的,开发人员可以根据实际需求,在控制终端中手动输入各个数据条件参数以及其对应的分区标识来建立预设数据表并发送给第二服务器集群。本发明实施例中,通过预先检测是否存在预设数据表,并在不存在预设数据表时,建立预设数据表,保证后续步骤中根据预设数据表执行的写入操作能够正常进行。
步骤204、利用所述多个虚拟节点中的每个节点,将每个虚拟节点在所述第一服务器集群中对应的分区中的目标数据加载至所述虚拟节点的内存中;其中,每个虚拟节点对应至少一个分区。
具体的,本步骤的实现方式可以参考上述步骤102,本发明实施例在此不做赘述。
步骤205、根据第二服务器集群的预设数据表,利用所述多个虚拟节点将所述内存中的目标数据写入所述预设数据表对应的分区中。
具体的,本步骤可以通过下述子步骤(1)~子步骤(3)实现:
子步骤(1):对于每个虚拟节点,在所述虚拟节点对应的内存的占用率大于预设占用率阈值时,调用所述第二服务器集群的文件系统接口。
本步骤中,该预设占用量阈值可以是开发人员根据实际需求设置的,示例的,为了保证为虚拟节点分配的内存能够被充分利用,该预设占用率阈值可以设置为100%,当然,该预设占用率阈值也可以设置为其他数值,例如,90%等等,本发明实施例对此不作限定。由于为每个虚拟节点分配的内存大小可能不同且每个虚拟节点加载数据的速度也可能不同,这样,每个虚拟节点对应的内存的占用率达到该预设占用率阈值的时间可能不同,对于每个虚拟节点,只要该虚拟节点对应的内存的占用率达到该预设占用率阈值,该虚拟节点即可执行调用第二服务器集群的文件系统接口的步骤。
进一步地,该文件系统接口可以是第二服务器集群上所部署的文件系统提供的接口,示例的,以第二服务器集群上所部署的文件系统为基于分布式文件系统设计的适合运行在通用硬件上的文件系统(Hadoop Distributed File System,HDFS)为例,该文件系统接口可以为WebHDFS接口。
子步骤(2):通过所述文件系统接口,将所述目标数据以列式存储格式写入所述第二服务器集群中所述预设数据表对应的分区中。
本步骤中,第一服务器集群可以通过调用的文件系统接口与第二服务器集群建立连接,进而使得可以向第二服务器集群中的分区中写入目标数据,实际应用中,每个分区可以为预设数据表对应的一个文件夹。进一步地,列式存储格式可以为parquet格式,其中,parquet格式表示一种按列进行数据存储的方式,与其相对的为行式存储,一般,以行式存储方式进行存储时,不同预设数据表的数据之间不存在明显分界,而以列式存储方式进行存储时,不同预设数据表的数据会存在明显分界,这样,在对数据进行查询时,可以精准的仅对某几列的数据进行扫描。进一步地,由于列式存储方式中的每一列中都是类型相同的数据,进而可以更为高效的对数据进行压缩编码,因此,本发明实施例中以列式存储格式进行写入操作,使得后续过程中对写入第二服务器集群的数据进行处理时,可以进行高效的压缩以及精确的查询,进而提高后续针对数据的处理效率。
子步骤(3):释放所述虚拟节点对应的内存。
本步骤中,虚拟节点通过将内存中的这部分目标数据写入第二服务器集群中并释放内存,使得该虚拟节点可以空出内存来对其他分区继续进行处理,另一方面,若此时没有需要进行处理分区或者已经获取到所有的目标数据,那么通过释放内存可以减少对第一服务器集群的内存占用,进而节省第一服务器集群的内存空间。
进一步地,现有技术中,将数据先存储至磁盘中,然后再进行拷贝或加载操作的方式,会导致第一服务器集群中多出一份存储于第一服务器集群的磁盘上的目标数据的副本,以及第二服务器集群中多出一份存储于第二服务器集群的磁盘上的目标数据的副本,进而对第一服务器集群及第二服务器集群的存储空间造成不必要的浪费,本发明实施例中,通过将目标数据直接加载至内存中,并直接写入第二服务器集群的对应分区中,且在完成写入操作之后释放内存的方式,可以避免在数据同步的过程中产生不必要的副本,进而可以避免对存储空间造成不必要的浪费。
步骤206、控制所述第二服务器集群根据所述目标数据对所述预设数据表进行更新。
本步骤中,第一服务器集群可以向第二服务器集群发送修复命令,以使第二服务器集群将目标数据的字段信息写入预设数据表的元信息中。其中,该修复命令可以为msck命令,该修复命令的具体语法可以为:msck repair table,进一步地,元信息可以是预设数据表包括的另一组成部分,具体的,元信息是用来描述数据的数据,一般用于存储表结构以及字段信息之类的数据。由于上述步骤中向预设数据表对应的分区中增加了目标数据,因此,相应地,可以向第二服务器集群发送修复命令,以使第二服务器集群将目标数据的字段信息写入预设数据表的元信息中,使得该预设数据表的元信息能够精准的描述该预设数据表的分区中存储的数据。
需要说明的是,本发明实施例中示出的上述方法步骤在实际实现时,可能是通过部署在第一服务器集群上的组件实现的,其中,该组件可以是基于Spark sql代码框架开发的,本发明实施例对此不作限定。进一步地,实际应用中,还可以将该组件部署在其他服务器集群中,例如,可以将该组件部署在第三服务器集群中,第一服务器集群可以在需要进行数据同步时,向第三服务器集群发送一控制指令,使得第三服务器集群通过该组件执行上述方法步骤,本发明实施例中对此不作限定。但是,由于需要同步的数据量往往很多,而通过其他集群实现数据同步的过程中,需要与第一服务器集群建立连接,然后从第一服务器集群中获取目标数据加载至内存中,这样,由于网络延迟等原因,会导致获取数据速度很慢,因此,直接通过第一服务器集群来进行处理可以保证获取数据的速率,进而保证数据同步的效率。进一步地,该组件可以在第一服务器集群采用MYSQL数据库管理工具对第一服务器集群中的数据进行管理时,通过JDBC来加载目标数据,在第一服务器集群采用Hive工具对第一服务器集群中的数据进行管理时,通过Hive server来加载目标数据。进一步地,实际应用中,在将目标数据同步至第二服务器集群之后,往往会利用Impala数据分析系统对这些数据做一些联机分析处理(Online Analytical Processing,OLAP),因此,本发明实施例在向第二服务器集群中同步目标数据之后,还可以通过JDBC访问Impala,然后利用invalidate metadata命令,或者refresh命令,对应更新Impala的数据表中的元数据,使得Impala能够识别新增加的目标数据,并对其进行分析。
综上所述,本发明实施例二提供的数据同步方法,第一服务器集群可以根据预先定义的节点数及各个节点对应的内存量,将第一服务器集群的处理资源划分为多个虚拟节点并为每个虚拟节点分配对应量的内存,然后检测所述第二服务器集群中是否存在预设数据表,并在不存在预设数据表时,建立预设数据表,接着,利用多个虚拟节点中的每个节点,将每个虚拟节点在第一服务器集群中对应的分区中的目标数据加载至虚拟节点的内存中,这样,通过每次对多个分区进行处理可以提高从第一服务器集群中获取目标数据的效率,进一步地,可以根据第二服务器集群的预设数据表,利用多个虚拟节点将内存中的目标数据写入预设数据表对应的分区中,进而省略第二服务器集群对目标数据进行加载的操作,进一步提高数据同步效率,最后,控制第二服务器集群根据目标数据对预设数据表进行更新,使得后续步骤中,能够通过该预设数据表识别到同步至第二服务器集群的目标数据,进而保证所同步的数据能够被正常进行处理。
实施例三
图3是本发明实施例三提供的一种数据同步装置的框图,如图3所示,该装置30可以包括:
划分模块301,用于根据预先定义的节点数及各个节点对应的内存量,将所述第一服务器集群的处理资源划分为多个虚拟节点并为每个虚拟节点分配对应量的内存。
加载模块302,用于利用所述多个虚拟节点中的每个虚拟节点,将每个虚拟节点在所述第一服务器集群中对应的分区中的目标数据加载至所述虚拟节点的内存中;其中,每个虚拟节点对应至少一个分区。
写入模块303,用于根据第二服务器集群的预设数据表,利用所述多个虚拟节点将所述内存中的目标数据写入所述预设数据表对应的分区中;所述预设数据表用于指示所述目标数据中的各部分数据对应的分区。
控制模块304,用于控制所述第二服务器集群根据所述目标数据对所述预设数据表进行更新。
综上所述,本发明实施例三提供的数据同步装置,划分模块可以根据预先定义的节点数及各个节点对应的内存量,将第一服务器集群的处理资源划分为多个虚拟节点并为每个虚拟节点分配对应量的内存,然后加载模块可以利用多个虚拟节点中的每个节点,将每个虚拟节点在第一服务器集群中对应的分区中的目标数据加载至虚拟节点的内存中,这样,通过每次对多个分区进行处理可以提高从第一服务器集群中获取目标数据的效率,进一步地,写入模块可以根据第二服务器集群的预设数据表,利用多个虚拟节点将内存中的目标数据写入预设数据表对应的分区中,进而省略第二服务器集群对目标数据进行加载的操作,进一步提高数据同步效率,最后,控制模块可以控制第二服务器集群根据目标数据对预设数据表进行更新,使得后续步骤中,能够通过该预设数据表识别到同步至第二服务器集群的目标数据,进而保证所同步的数据能够被正常进行处理。
实施例四
图4是本发明实施例四提供的一种数据同步装置的框图,如图4所示,该装置40可以包括:
划分模块401,用于根据预先定义的节点数及各个节点对应的内存量,将所述第一服务器集群的处理资源划分为多个虚拟节点并为每个虚拟节点分配对应量的内存。
加载模块402,用于利用所述多个虚拟节点中的每个虚拟节点,将每个虚拟节点在所述第一服务器集群中对应的分区中的目标数据加载至所述虚拟节点的内存中;其中,每个虚拟节点对应至少一个分区。
写入模块403,用于根据第二服务器集群的预设数据表,利用所述多个虚拟节点将所述内存中的目标数据写入所述预设数据表对应的分区中;所述预设数据表用于指示所述目标数据中的各部分数据对应的分区。
控制模块404,用于控制所述第二服务器集群根据所述目标数据对所述预设数据表进行更新。
可选的,所述加载模块402,用于:
对于每个虚拟节点,在所述虚拟节点对应的内存的占用率大于预设占用率阈值时,调用所述第二服务器集群的文件系统接口。
通过所述文件系统接口,将所述目标数据以列式存储格式写入所述第二服务器集群中所述预设数据表对应的分区中。
释放所述虚拟节点对应的内存。
可选的,所述装置40还包括:
检测模块405,用于检测所述第二服务器集群中是否存在所述预设数据表。
建立模块406,用于若所述第二服务器集群中不存在所述预设数据表,则在所述第二服务器集群中建立所述预设数据表。
可选的,所述控制模块404,用于:
向所述第二服务器集群发送修复命令,以使所述第二服务器集群将所述目标数据的字段信息写入所述预设数据表的元信息中。
可选的,所述建立模块406,用于:
根据所述目标数据中的各部分数据在所述第一服务器集群中所对应的分区,生成所述预设数据表并存储至所述第二服务器集群中。
综上所述,本发明实施例四提供的数据同步装置,划分模块可以根据预先定义的节点数及各个节点对应的内存量,将第一服务器集群的处理资源划分为多个虚拟节点并为每个虚拟节点分配对应量的内存,然后检测模块可以检测第二服务器集群中是否存在预设数据表,建立模块可以在不存在预设数据表时,建立预设数据表,接着,加载模块可以利用多个虚拟节点中的每个节点,将每个虚拟节点在第一服务器集群中对应的分区中的目标数据加载至虚拟节点的内存中,这样,通过每次对多个分区进行处理可以提高从第一服务器集群中获取目标数据的效率,进一步地,写入模块可以根据第二服务器集群的预设数据表,利用多个虚拟节点将内存中的目标数据写入预设数据表对应的分区中,进而省略第二服务器集群对目标数据进行加载的操作,进一步提高数据同步效率,最后,控制模块可以控制第二服务器集群根据目标数据对预设数据表进行更新,使得后续步骤中,能够通过该预设数据表识别到同步至第二服务器集群的目标数据,进而保证所同步的数据能够被正常进行处理。
对于上述装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
优选的,本发明实施例还提供一种移动终端,包括处理器,存储器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述数据同步方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述数据同步方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
在此提供的数据同步方法不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造具有本发明方案的系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的数据同步方法中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种数据同步方法,应用于第一服务器集群,其特征在于,所述方法包括:
根据预先定义的节点数及各个节点对应的内存量,将所述第一服务器集群的处理资源划分为多个虚拟节点并为每个虚拟节点分配对应量的内存;
利用所述多个虚拟节点中的每个虚拟节点,将每个虚拟节点在所述第一服务器集群中对应的分区中的目标数据加载至所述虚拟节点的内存中;其中,每个虚拟节点对应至少一个分区;
根据第二服务器集群的预设数据表,利用所述多个虚拟节点将所述内存中的目标数据写入所述预设数据表对应的分区中;所述预设数据表用于指示所述目标数据中的各部分数据对应的分区;
控制所述第二服务器集群根据所述目标数据对所述预设数据表进行更新。
2.根据权利要求1所述的方法,其特征在于,所述根据第二服务器集群的预设数据表,利用所述多个虚拟节点将所述内存中的目标数据写入所述预设数据表对应的分区中,包括:
对于每个虚拟节点,在所述虚拟节点对应的内存的占用率大于预设占用率阈值时,调用所述第二服务器集群的文件系统接口;
通过所述文件系统接口,将所述目标数据以列式存储格式写入所述第二服务器集群中所述预设数据表对应的分区中;
释放所述虚拟节点对应的内存。
3.根据权利要求1所述的方法,其特征在于,所述利用所述多个虚拟节点将所述内存中的目标数据写入所述预设数据表对应的分区中之前,所述方法还包括:
检测所述第二服务器集群中是否存在所述预设数据表;
若所述第二服务器集群中不存在所述预设数据表,则在所述第二服务器集群中建立所述预设数据表。
4.根据权利要求1所述的方法,其特征在于,所述控制所述第二服务器集群根据所述目标数据对所述预设数据表进行更新,包括:
向所述第二服务器集群发送修复命令,以使所述第二服务器集群将所述目标数据的字段信息写入所述预设数据表的元信息中。
5.根据权利要求3所述的方法,其特征在于,所述在所述第二服务器集群中建立所述预设数据表,包括:
根据所述目标数据中的各部分数据在所述第一服务器集群中所对应的分区,生成所述预设数据表并存储至所述第二服务器集群中。
6.一种数据同步装置,应用于第一服务器集群,其特征在于,所述装置包括:
划分模块,用于根据预先定义的节点数及各个节点对应的内存量,将所述第一服务器集群的处理资源划分为多个虚拟节点并为每个虚拟节点分配对应量的内存;
加载模块,用于利用所述多个虚拟节点中的每个虚拟节点,将每个虚拟节点在所述第一服务器集群中对应的分区中的目标数据加载至所述虚拟节点的内存中;其中,每个虚拟节点对应至少一个分区;
写入模块,用于根据第二服务器集群的预设数据表,利用所述多个虚拟节点将所述内存中的目标数据写入所述预设数据表对应的分区中;所述预设数据表用于指示所述目标数据中的各部分数据对应的分区;
控制模块,用于控制所述第二服务器集群根据所述目标数据对所述预设数据表进行更新。
7.根据权利要求6所述的装置,其特征在于,所述加载模块,用于:
对于每个虚拟节点,在所述虚拟节点对应的内存的占用率大于预设占用率阈值时,调用所述第二服务器集群的文件系统接口;
通过所述文件系统接口,将所述目标数据以列式存储格式写入所述第二服务器集群中所述预设数据表对应的分区中;
释放所述虚拟节点对应的内存。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
检测模块,用于检测所述第二服务器集群中是否存在所述预设数据表;
建立模块,用于若所述第二服务器集群中不存在所述预设数据表,则在所述第二服务器集群中建立所述预设数据表。
9.根据权利要求6所述的装置,其特征在于,所述控制模块,用于:
向所述第二服务器集群发送修复命令,以使所述第二服务器集群将所述目标数据的字段信息写入所述预设数据表的元信息中。
10.根据权利要求8所述的装置,其特征在于,所述建立模块,用于:
根据所述目标数据中的各部分数据在所述第一服务器集群中所对应的分区,生成所述预设数据表并存储至所述第二服务器集群中。
CN201811012757.7A 2018-08-31 2018-08-31 一种数据同步方法及装置 Active CN109379398B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811012757.7A CN109379398B (zh) 2018-08-31 2018-08-31 一种数据同步方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811012757.7A CN109379398B (zh) 2018-08-31 2018-08-31 一种数据同步方法及装置

Publications (2)

Publication Number Publication Date
CN109379398A true CN109379398A (zh) 2019-02-22
CN109379398B CN109379398B (zh) 2021-03-12

Family

ID=65404091

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811012757.7A Active CN109379398B (zh) 2018-08-31 2018-08-31 一种数据同步方法及装置

Country Status (1)

Country Link
CN (1) CN109379398B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110209516A (zh) * 2019-04-24 2019-09-06 深圳点猫科技有限公司 一种基于教育平台的自动修复分区表的方法及电子设备
CN110471896A (zh) * 2019-06-21 2019-11-19 深圳中琛源科技股份有限公司 一种数据处理方法、系统及服务器
CN111866041A (zh) * 2019-04-28 2020-10-30 杭州海康威视系统技术有限公司 业务设备选取、云存储集群更新的方法、装置及存储介质
CN112291081A (zh) * 2020-09-29 2021-01-29 新华三信息安全技术有限公司 云管理平台审计控制器集群数据的方法、系统及存储介质
CN112632189A (zh) * 2020-12-26 2021-04-09 中国农业银行股份有限公司 一种数据同步系统及方法
WO2021121041A1 (zh) * 2019-12-20 2021-06-24 深圳前海微众银行股份有限公司 数据传输优化方法、设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102938001A (zh) * 2012-12-10 2013-02-20 曙光信息产业(北京)有限公司 数据加载装置和数据加载方法
US20130198561A1 (en) * 2011-04-26 2013-08-01 International Business Machines Corporation Migrating virtual machines across sites
CN105468473A (zh) * 2014-07-16 2016-04-06 北京奇虎科技有限公司 数据迁移方法及数据迁移装置
CN107977462A (zh) * 2017-12-21 2018-05-01 泰康保险集团股份有限公司 数据迁移方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130198561A1 (en) * 2011-04-26 2013-08-01 International Business Machines Corporation Migrating virtual machines across sites
CN102938001A (zh) * 2012-12-10 2013-02-20 曙光信息产业(北京)有限公司 数据加载装置和数据加载方法
CN105468473A (zh) * 2014-07-16 2016-04-06 北京奇虎科技有限公司 数据迁移方法及数据迁移装置
CN107977462A (zh) * 2017-12-21 2018-05-01 泰康保险集团股份有限公司 数据迁移方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
续龙飞 等: "一种基于实时数据缓存技术数据访问组件的设计与实现", 《信息化研究》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110209516A (zh) * 2019-04-24 2019-09-06 深圳点猫科技有限公司 一种基于教育平台的自动修复分区表的方法及电子设备
CN111866041A (zh) * 2019-04-28 2020-10-30 杭州海康威视系统技术有限公司 业务设备选取、云存储集群更新的方法、装置及存储介质
CN111866041B (zh) * 2019-04-28 2023-05-02 杭州海康威视系统技术有限公司 业务设备选取、云存储集群更新的方法、装置及存储介质
CN110471896A (zh) * 2019-06-21 2019-11-19 深圳中琛源科技股份有限公司 一种数据处理方法、系统及服务器
CN110471896B (zh) * 2019-06-21 2023-11-28 陕西融华电子科技有限公司 一种数据处理方法、系统及服务器
WO2021121041A1 (zh) * 2019-12-20 2021-06-24 深圳前海微众银行股份有限公司 数据传输优化方法、设备及可读存储介质
CN112291081A (zh) * 2020-09-29 2021-01-29 新华三信息安全技术有限公司 云管理平台审计控制器集群数据的方法、系统及存储介质
CN112291081B (zh) * 2020-09-29 2022-06-28 新华三信息安全技术有限公司 云管理平台审计控制器集群数据的方法、系统及存储介质
CN112632189A (zh) * 2020-12-26 2021-04-09 中国农业银行股份有限公司 一种数据同步系统及方法

Also Published As

Publication number Publication date
CN109379398B (zh) 2021-03-12

Similar Documents

Publication Publication Date Title
CN109379398A (zh) 一种数据同步方法及装置
CN109697500B (zh) 数据处理方法、装置、电子设备及存储介质
CN103605747B (zh) 文件表单的处理方法和装置
CN108197306A (zh) Sql语句处理方法、装置、计算机设备和存储介质
CN105426375B (zh) 一种关系网络的计算方法及装置
CN106557307B (zh) 业务数据的处理方法及处理系统
CN112559525B (zh) 数据检查系统、方法、装置和服务器
CN106354536A (zh) 在Windows系统中加载Linux系统ELF文件的方法及装置
CN110532180A (zh) 一种测试数据的生成方法及装置
CN114443780A (zh) 数据处理方法、装置、设备和存储介质
US9760470B2 (en) Device, method, and program analysis of new source code to be added to execution program to check for bug
CN112860412B (zh) 业务数据处理方法、装置、电子设备及存储介质
CN113190576A (zh) 数据处理方法、装置、计算机设备和可读存储介质
CN108897858A (zh) 分布式集群索引分片的评估方法及装置、电子设备
CN117235182A (zh) 基于数据库的数据处理方法、装置及设备
CN116841906A (zh) 智能合约的检测方法、装置及电子设备
CN103902445A (zh) 一种回归测试对象确定方法及装置
CN116010389A (zh) 数据校验方法、装置、设备及存储介质
CN115543967A (zh) 一种数据迁移方法、装置、电子设备及计算机可读介质
CN110019448A (zh) 一种数据交互方法及装置
CN109284268A (zh) 一种快速解析日志的方法、系统及电子设备
CN114942905A (zh) 一种迁移数据验证方法、装置、设备和存储介质
CN109902067B (zh) 文件处理方法、装置、存储介质及计算机设备
CN113672557A (zh) 数据迁移至分布式系统方法、系统、设备、介质、产品
CN113127359A (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