CN109241182B - 大数据实时同步方法、装置、计算机设备及存储介质 - Google Patents
大数据实时同步方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN109241182B CN109241182B CN201810921097.8A CN201810921097A CN109241182B CN 109241182 B CN109241182 B CN 109241182B CN 201810921097 A CN201810921097 A CN 201810921097A CN 109241182 B CN109241182 B CN 109241182B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- change
- synchronization
- sub
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000008859 change Effects 0.000 claims abstract description 201
- 230000001360 synchronised effect Effects 0.000 claims abstract description 21
- 238000004458 analytical method Methods 0.000 claims description 49
- 238000004590 computer program Methods 0.000 claims description 14
- 230000008676 import Effects 0.000 claims description 9
- 230000004048 modification Effects 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 238000007792 addition Methods 0.000 claims description 3
- 238000000926 separation method Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 210000001072 colon Anatomy 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种大数据实时同步方法、装置、计算机设备及存储介质,包括:获取数据库的数据变更消息,所述数据变更消息包括数据库类型、变更数据和变更数据量;根据所述变更数据量和数据节点容量,计算同步节点数量;根据所述同步节点数量获取数据同步节点;将所述变更数据分配至所述数据同步节点;根据所述数据库类型,控制所述数据同步节点对所述变更数据进行解析,得到更新数据;将所述更新数据同步至大数据平台。采用该大数据实时同步方法,能够提高将数据库中的数据同步至大数据平台时的速度,提高了在数据处理中数据同步的效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种大数据实时同步方法、装置、计算机设备及存储介质。
背景技术
目前,在将数据库的数据更新同步至大数据平台中时,通常是通过人工进行同步,例如:通过sqoop进行离线批量导入。然而,通过人工进行将数据库的数据更新同步至大数据平台的操作时,会不可避免地导致数据的更新效率较低。尤其当数据量较大时,人工操作的工作量也会加大,数据同步时导入大数据平台的时间也会较长。
发明内容
本发明实施例提供一种大数据实时同步方法、装置、计算机设备及存储介质,以解决将数据库的数据同步至大数据平台时效率不高的问题。
一种大数据实时同步方法,包括:
获取数据库的数据变更消息,所述数据变更消息包括数据库类型、变更数据和变更数据量;
根据所述变更数据量和数据节点容量,计算同步节点数量;
根据所述同步节点数量获取数据同步节点;
将所述变更数据分配至所述数据同步节点;
根据所述数据库类型,控制所述数据同步节点对所述变更数据进行解析,得到更新数据;
将所述更新数据同步至大数据平台。
一种大数据实时同步装置,包括:
计算模块,用于根据所述变更数据量和数据节点容量,计算同步节点数量;
节点获取模块,用于根据所述同步节点数量获取数据同步节点;
分配模块,用于将所述变更数据分配至所述数据同步节点;
解析模块,用于根据所述数据库类型,控制所述数据同步节点对所述变更数据进行解析,得到更新数据;
同步模块,用于将所述更新数据同步至大数据平台。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述大数据实时同步方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述大数据实时同步方法的步骤。
上述大数据实时同步方法、装置、计算机设备及存储介质中,通过获取各个数据库中的数据变更消息,确定需要进行同步的数据,在接收到变更数据后,根据变更数据量和数据节点容量来计算同步节点数量,并且根据同步节点数量获取数据同步节点,数据同步节点对变更数据进行解析,再将解析后得到的更新数据同步至大数据平台。该方法实现了数据库到大数据平台的实时同步,也避免了人工操作时出错的风险。同时,根据变更数据量建立数据同步节点,构建分布式进行操作,能够提高将数据库中的数据同步至大数据平台时的速度,提高了在数据处理中数据同步的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中大数据实时同步方法的一应用环境示意图;
图2是本发明一实施例中大数据实时同步方法的一流程图;
图3是本发明一实施例中大数据实时同步方法中步骤S40的一流程图;
图4是本发明一实施例中大数据实时同步方法中步骤S50的一流程图;
图5是本发明一实施例中大数据实时同步方法中步骤S50的另一流程图;
图6是本发明一实施例中大数据实时同步方法中步骤S60的一流程图;
图7是本发明一实施例中大数据实时同步方法中步骤S62的一流程图;
图8是本发明一实施例中大数据实时同步装置的一示意图;
图9是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供的大数据实时同步方法,可应用在如图1的应用环境中,其中,客户端(计算机设备)通过网络与服务端进行通信。客户端获取数据变更消息,将该数据变更消息发送至服务端。服务端获取到数据变更消息后,将该变更数据进行解析后,更新至大数据平台。其中,客户端(计算机设备)可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。大数据平台是指用于存储服务端集群中各个数据库的数据,并对数据进行计算、分析或处理等操作的平台。
在一实施例中,如图2所示,提供一种大数据实时同步方法,以该方法应用在图1中的服务端为例进行说明,包括如下步骤:
S10:获取数据库的数据变更消息,数据变更消息包括数据库类型、变更数据和变更数据量。
在本实施例中,数据变更消息是指数据库中的数据表格中的数据发生变更后,由变更数据的信息组合成的消息。具体地,该数据变更消息包括数据库类型、变更数据和变更数据量。
数据库类型用于标识该变更数据来源于哪一类数据库。需要说明的是,在本实施例中,数据库属于关系型数据库,例如:Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access或者MySQL等。
变更数据量是指变更数据的数据量大小。具体地,可以通过SQL中的select语句获取变更数据的变更数据量,例如:
select t.tablespace_name,
round(sum(bytes/(1024*1024)),0)total_space
from dba_data_files;
其中,t.tablespace_name为变更数据的名称,对变更数据通过语句“round(sum(bytes/(1024*1024)),0)bytes”计算该变更数据的变更数据量的大小。其中,“bytes/(1024*1024)”是将变更数据量的单位从Bytes转换为MBytes,round()函数是指四舍五入函数,而round()函数中的“0”是指四舍五入到小数点0位,即只保留整数部分。因此,通过上述语句得到的变更数据量是以MBytes为单位,并用整数表示。具体地,可以根据实际使用情况,定义变更数据量的单位和数值精确度。而上述语句中的“total_space”表示计算的范围为整个变更数据的空间。dba_data_files为数据属性表格,数据属性表格记录的是变更数据的信息,这些信息包括数据文件的名称、大小和所属表空间等信息,即从数据属性表格中获取变更数据的信息,再利用变更数据的信息计算得到变更数据的变更数据量。
可选地,在每个数据库中添加数据触发器,每当数据库中有数据表格发生数据变更,则将数据表格中的变更数据进行记录并复制,将变更数据的信息组合成数据变更消息,再发送至服务端。
优选地,可以在服务端中设置数据接收的接口,用于接收各个数据库发送的数据变更消息。该接口可以是通过Kafka实现,其中,Kafka是一种高吞吐量的分布式发布订阅消息系统,在本实施例中,Kafka用于接收并解析该数据变更消息,并将解析后的变更数据同步至大数据平台。
S20:根据变更数据量和数据节点容量,计算同步节点数量。
在本实施例中,数据节点是指该Kafka的节点,各个数据节点可以对变更数据进行接收、解析和同步的操作。该数据节点容量是指一个数据节点能够对该变更数据进行该接收、解析和同步操作的最大数据量。
具体地,在计算同步节点数量时可以按照如下公式计算:
同步节点数量=roundup((变更数据量/数据节点容量)+1,0);
在上述公式中,在计算出(变更数据量/数据节点容量)之后还包括了一个“+1”的部分,这是由于在进行该接收、解析和同步的操作之前,需要选举一个主节点对该接收、解析和同步的操作进行监控管理,因此,通过(变更数据量/数据节点容量)计算得到的结果为实际进行该接收、解析和同步的操作的数据节点的数量,而在此基础上增加的一个节点是主节点,用于对变更数据的接收、解析和同步的操作进行监控管理。而roundup()函数是一个向上舍入函数,即给指定的位数进行进一操作,并在进一操作后舍去多余的部分。而上式中roundup()函数中的“0”表示对第一个小数位进行进一操作,因此,通过上述公式得到的同步节点数量为整数。
S30:根据同步节点数量获取数据同步节点。
在本实施例中,数据同步节点是指对变更数据进行接收、解析和同步操作的子节点以及对子节点进行监控的主节点。
具体地,获取数据同步节点的方法可以是:将同步节点数量作为zookeeper集群中数据同步节点的数量。其中,zookeeper为分布式框架,在本实施例中,zookeeper是为Kafka的节点提供运行的框架,即Kafka的运行需要依赖该zookeeper集群。
进一步地,在zookeeper集群中构建Kafka集群。每一个Kafka的节点都有唯一的IP地址,因此,在建立好Kafka集群后,根据同步节点数量确定出数据同步节点的数量,再通过该Kafka中的节点的IP地址,获取到对应的数据同步节点。
S40:将变更数据分配至数据同步节点。
在本实施例中,在获取到数据同步节点之后将变更数据逐一分配至每一个数据同步节点,并进行解析和同步操作。其中,逐一分配是指在将一个变更数据分配至一个数据同步节点后,再继续分配下一个变更数据,直到将所有的变更数据都分配至数据同步节点中。可选地,根据数据库类型和变更数据量,将变更数据分配至数据同步节点。
具体地,优先将同一个数据库类型的变更数据分配到同一个数据同步节点中。若一个数据同步节点中分配到的同一个数据库类型的变更数据的变更数据量没有超过该数据同步节点的数据节点容量,则继续将下一个数据库类型的变更数据分配至该数据同步节点。若某一数据库类型的变更数据的变更数据量超过了数据同步节点的数据节点容量,则将该数据库类型的变更数据中超过数据同步节点的数据节点容量的部分分配至另一个数据同步节点。在分配变更数据时,优先将同一个数据库类型的变更数据分配到同一个数据同步节点中,可以保证后续数据解析时的效率。
S50:根据数据库类型,控制数据同步节点对变更数据进行解析,得到更新数据。
在本实施例中,更新数据是指该变更数据经过数据同步节点解析后,得到的数据。具体地,根据该数据库类型的不同,控制数据同步节点调用相应的解析函数,对该变更数据的进行解析。其中,解析函数是用于对变更数据进行解析的函数,通过该解析函数,将该变更数据解析成能够被大数据平台识别的更新数据。可以预先针对不同的数据库类型编写好对应的解析函数并进行存储,以方便在数据同步节点对变更数据进行解析时可以直接调用对应的解析函数。
S60:将更新数据同步至大数据平台。
在本实施例中,大数据平台是指用于存储该服务端集群中各个数据库的数据,并对数据进行计算、分析或处理等操作的平台。具体地,在对变更数据进行解析得到更新数据后,将该更新数据同步至大数据平台。
在本实施例中,通过获取各个数据库中的数据变更消息,确定需要进行同步的数据,在接收到变更数据后,根据变更数据量和数据节点容量来计算同步节点数量,并且根据同步节点数量获取数据同步节点,数据同步节点对变更数据进行解析,再将解析后得到的更新数据同步至大数据平台。该方法实现了数据库到大数据平台的实时同步,也避免了人工操作时出错的风险。同时,根据变更数据量建立数据同步节点,构建分布式进行操作,能够提高将数据库中的数据同步至大数据平台时的速度,提高了在数据处理中数据同步的效率。
在一实施例中,如图3所示,步骤S40中,即将变更数据分配至数据同步节点,具体包括如下步骤:
S41:在数据同步节点中进行选举,得到主节点和子节点。
在本实施例中,数据同步节点包括主节点和子节点。子节点用于对变更数据进行接收、解析和同步的操作;主节点用于监控各个子节点的数据处理情况。
具体地,选举的方法可以是在建立数据同步节点的时候,根据数据同步节点的数量,在该数据同步节点中对不同的节点分别设置唯一的节点ID,例如,有三个数据同步节点,则可以用0、1和2分别作为这三个数据同步节点的节点ID。在第一次选举主节点和子节点时,将节点ID最大的所对应的数据同步节点设置为主节点,其余的数据同步节点为子节点。
需要说明的是,为了保证在选举主节点时,有超过半数的数据同步节点拥护主节点,当计算得到的同步节点数量为偶数时,则将该同步节点数量再进行加1操作,确保该同步节点数量为奇数。
进一步地,当其中一个子节点检测到主节点出现故障时,若该检测到主节点出现故障的子节点的节点ID最大,则宣布自己为主节点;若该节点ID不是最大,则向节点ID最大的子节点发起选举,即该检测到主节点出现故障的子节点向节点ID最大的子节点发出主节点选举消息,若该节点ID最大的子节点回应了该主节点消息,则该节点ID最大的子节点成为新的主节点。若发起选举没有收到回应,则宣布自己为新的主节点。在宣布新的主节点之后,该新的主节点发出新增子节点的消息,请求服务端增加新的子节点,由该新的子节点继续对新的主节点的变更数据进行接收、解析和同步的操作。
S42:根据数据库类型和变更数据量,将变更数据分配通过主节点至子节点中。
具体地,将数据库类型相同的变更数据分配至同一个子节点中,在进行分配时,先根据该数据库类型,将数据库类型相同的变更数据分为一类。优选地,在分类结束后,还可以根据变更数据量,获取每一个数据库类型的变更数据的变更数据量,根据每一个数据库类型的变更数据的变更数据量从大到小的顺序,将对应数据库类型的变更数据分配至子节点。
进一步地,在分配变更数据时,将数据库类型相同的变更数据的变更数据量进行叠加,若叠加后的变更数据量超过该子节点的数据节点容量时,该子节点向主节点发出数据节点容量已满的消息,主节点在接收到该消息后,控制该子节点停止该叠加操作,并去掉最后叠加的变更数据,确保叠加后的变更数据量小于该数据节点容量。在分配完一个子节点后,主节点控制下一个子节点继续进行分配操作。
进一步地,在将数据库类型相同的变更数据分配完后,继续分配下一个数据库类型的变更数据。该继续分配的操作可以在同一个子节点进行,即在前一个数据库类型的变更数据分配完后,若该子节点的数据节点容量还有剩余,则向主节点发出继续分配消息,主节点在接收到该继续分配消息后,控制该子节点继续对下一个数据库类型的变更数据进行分配操作。
本实施例中,通过在建立多个子节点,对变更数据同时进行解析和同步的操作,能够提升进行该解析和同步的操作的效率。且通过选举出主节点,对子节点的工作情况进行监测,能够在有子节点出现故障时,及时进行反馈。同时,将数据库类型相同的变更数据,优先分配至同一个数据同步节点,能够提升对对变更数据解析的效率。
在一实施例中,如图4所示,步骤S50中,即根据数据库类型,控制数据同步节点对变更数据进行解析,得到更新数据,具体包括如下步骤:
S511:根据数据库类型,获取变更数据的格式。
在本实施例中,变更数据的格式是指该变更数据所在的数据库中代码语句的格式。其中,不同的数据库类型,对应的变更数据的格式也可能不同。
例如,获取到的数据库类型是Orcale数据库,而Orcale数据库的代码语句的格式为JSON格式。因此,在获取到该变更数据的数据库类型后,根据该数据库类型获取对应的变更数据的格式。
S512:将变更数据中的解析字段进行分隔,得到解析元素。
在本实施例中,解析字段是指该变更数据的代码字段。元素是指该解析字段中的任意值,在对该解析字段中的元素进行分隔后,得到该解析元素。
具体地,将该解析字段中的元素用分隔符分开,例如,对于JSON格式中的代码字段,用{}包含一系列无序的key–Value键值对表示,其中Key和Value之间用冒号分割,每个key-value之间用逗号分割;使用[]包含所有数组类型的元素,每个元素用逗号分隔。
进一步地,在对该解析字段中的元素分隔后,得到解析元素。
S513:将解析元素进行封装,并根据变更数据的格式解析该解析元素,得到更新数据。
在本实施例中,更新数据是指在对解析元素进行解析后,得到的数据,该数据的格式为大数据平台能够识别的统一格式。
具体地,根据与解析字段对应的代码字段的层级,从第一层级中的解析元素开始进行封装,对该第一层级的解析元素封装结束后,再继续对下一层级的解析元素进行封装,直到所有的解析元素都封装完毕。
例如,对于JSON格式的代码字段,首先,对第一层{}中的元素进行封装;其次,对[]中的元素进行封装;最后,对[]中{}内的元素进行封装。
进一步地,可以使用spring boot对解析元素进行解析,根据该数据库类型,从spring boot中提取与该变更数据的格式相对应的解析函数,将该解析元素解析成统一格式。其中spring是一个开放源代码的设计层面框架,用于解决业务逻辑层和其他各层的松耦合问题,而spring boot是用来简化spring应用的初始搭建以及开发过程的框架。调用spring boot中的解析函数,对封装好的解析元素进行解析,得到更新数据。
在本实施例中,根据不同的数据库类型的变更数据对应的格式,对变更数据进行解析,得到统一的格式,能够使该变更数据能够被大数据平台识别。
在一实施例中,如图5所示,步骤S50中,即根据数据库类型,控制数据同步节点对变更数据进行解析,得到更新数据,具体还包括如下步骤:
S521:控制数据同步节点中的主节点定时向子节点发送心跳包,检测每一个子节点是否返回反馈消息。
在本实施例中,心跳包是指主节点检测子节点工作状态的数据包,该数据包按照一定的时间间隔发送。反馈消息是指子节点向主节点反馈自己是处于正常工作状态的消息。
S522:将没有返回反馈消息的子节点作为故障子节点,将返回反馈消息的子节点作为正常子节点。
在本实施例中,故障子节点是指在接收到主节点发送心跳包之后,没有向主节点返回该反馈消息的子节点。正常子节点是指在接收到主节点发送心跳包消息后,向主节点返回该反馈消息的子节点。
S523:获取故障子节点中还未解析的变更数据,作为待分配变更数据。
在本实施例中,还未解析的变更数据是指在该故障子节点的变更数据中,还未完成解析的变更数据,该还未完成解析的变更数据包括还没开始进行解析的变更数据和正在进行解析的变更数据。
待分配变更数据是指在需要将还未解析的变更数据重新分配至正常子节点,继续进行解析和同步的操作的变更数据。
S524:获取每一个正常子节点的剩余容量,根据每一个正常子节点的剩余容量的比例划分待分配变更数据。
在本实施例中,每一正常子节点的剩余容量是指该正常子节点的数据节点容量减去该正常子节点中还未解析的变更数据的变更数据量。
具体地,在将该待分配变更数据重新配置到正常子节点之前,需要获取每一正常子节点的剩余容量。在获取到每一正常子节点的剩余容量后,则根据该剩余容量的比例将该待分配变更数据进行划分。例如,该待分配变更数据的数据量为600mb,现有三个正常子节点,分别为正常子节点A、正常子节点B和正常子节点C,该三个正常子节点的剩余容量比例为A:B:C=3:2:1,则按照该比例对该600mb的待分配变更数据进行划分,得到300mb、200mb和100mb的待分配变更数据。
S525:将划分后的待分配变更数据发送至对应的正常子节点中。
具体地,在对该待分配变更数据进行划分后,按照该正常子节点的剩余容量对应的比例,分配至对应的正常子节点中。
在本实施例中,主节点定时检测是否有子节点出现故障,当检测到有故障子节点时,则对该故障子节点中还未解析的变更数据进行重新分配。能够减轻人工检测子节点工作状态的工作量,提升在对变更数据进行解析过程中的效率。
在一实施例中,如图6所示,步骤S60中,即根据数据库类型,控制数据同步节点对变更数据进行解析,得到更新数据,具体包括如下步骤:
S61:获取更新数据的更新类型,其中,更新类型包括修改、增加或删除。
在本实施例中,该更新类型中包括的修改是指对于数据表格内的数据进行修改;该更新类型中包括的增加是指对数据表格中的数据进行增加;该更新类型中包括的删除是指对数据表格中的数据进行删除。
具体地,每个更新类型都含有固定的代码语句,例如,对数据表格修改的代码语句含有“alter_table”;对数据表格增加的代码语句含有“create_table”;对数据表格修改的代码语句含有“drop_table”。
在获取该更新类型时,可以根据上述更新类型含有的固定代码语句为关键词,在更新数据中进行检索,若检索出对应的代码语句,则可以确定出该更新数据的更新类型。
S62:根据更新类型,将更新数据同步至大数据平台。
具体地,将更新数据发送至大数据平台,根据该更新类型,对该更新数据进行存储。
在本实施例中,通过获取更新数据的更新类型,并根据该更新类型对更新数据在大数据平台中同步,能够减少大数据平台的存储空间消耗,保证数据同步的准确性。
在一实施例中,如图7所示,步骤S62中,即根据更新类型,将更新数据同步至大数据平台,具体包括如下步骤:
S621:若更新类型是修改,则采用覆盖导入的方式将更新类型是修改的更新数据覆盖大数据平台中原有的数据。
在本实施例中,覆盖导入是指用更新数据替换掉大数据平台中原有的数据。
具体地,获取该更新数据的数据标识,根据该数据标识,查询出在大数据平台中原有的数据,并可以使用SQL的替换语句,将该更新数据替换掉该原有的数据。
S622:若更新类型是增加,则采用增量导入的方式将更新类型是增加的更新数据添加至大数据平台。
在本实施例中,增量导入是指将更新数据添加至大数据平台。
具体地,获取该更新数据在大数据平台中的存储路径,根据该存储路径,查询出该更新数据所在的数据表格,并通过将该更新数据添加至该查询出来的数据表格的方法,将该更新数据添加至大数据平台。获取该存储路径的方式可以是,指定该更新数据在大数据平台中存储的数据库,获取该数据库的存储路径,作为该更新数据的存储路径。
S623:若更新类型是删除,则获取更新类型是删除的更新数据的数据标识,根据数据标识,在大数据平台中将数据标识对应的数据删除。
具体地,获取该更新数据的数据标识,根据该数据标识,查询出在大数据平台中原有的数据,并可以使用SQL的删除语句,将该原有的数据在大数据平台中删除。
在本实施例中,通过根据更新类型的不同,采用不同的方式将更新数据同步至大数据平台,能够提升数据同步的准确性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种大数据实时同步装置,该大数据实时同步装置与上述实施例中大数据实时同步方法一一对应。如图8所示,该大数据实时同步装置包括数据变更获取模块81、计算模块82、节点获取模块83、分配模块84、解析模块85和同步模块86。各功能模块详细说明如下:
数据变更获取模块81,用于获取数据库的数据变更消息,数据变更消息包括数据库类型、变更数据和变更数据量;
计算模块82,用于根据变更数据量和数据节点容量,计算同步节点数量;
节点获取模块83,用于根据同步节点数量获取数据同步节点;
分配模块84,用于将变更数据分配至数据同步节点;
解析模块85,用于根据数据库类型,控制数据同步节点对变更数据进行解析,得到更新数据;
同步模块86,用于将更新数据同步至大数据平台。
优选地,分配模块84包括:
选举子模块841,用于在数据同步节点中进行选举,得到主节点和子节点;
分配子模块842,用于根据数据库类型和变更数据量,将变更数据分配通过主节点至子节点中。
优选地,解析模块85包括:
格式获取子模块8511,用于根据数据库类型,获取变更数据的格式;
分隔子模块8512,用于将变更数据中的解析字段进行分隔,得到解析元素;
解析子模块8513,用于将解析元素进行封装,并根据变更数据的格式解析该解析元素,得到更新数据。
优选地,解析模块85还包括:
心跳包发送子模块8521,用于控制数据同步节点中的主节点定时向子节点发送心跳包,检测每一个子节点是否返回反馈消息;
子节点判断子模块8522,用于将没有返回反馈消息的子节点作为故障子节点,将返回反馈消息的子节点作为正常子节点;
获取子模块8523,用于获取故障子节点中还未解析的变更数据,作为待分配变更数据;
划分子模块8524,用于获取每一个正常子节点的剩余容量,根据每一个正常子节点的剩余容量的比例划分待分配变更数据;
发送子模块8525,用于将划分后的待分配变更数据发送至对应的正常子节点中。
优选地,同步模块86包括:
更新类型获取子模块861,用于获取更新数据的更新类型,其中,更新类型包括修改、增加或删除;
同步子模块862,用于根据更新类型,将更新数据同步至大数据平台。
优选地,同步子模块862包括:
修改子单元8621,用于若更新类型是修改,则采用覆盖导入的方式将更新类型是修改的更新数据覆盖大数据平台中原有的数据;
增加子单元8622,用于若更新类型是增加,则采用增量导入的方式将更新类型是增加的更新数据添加至大数据平台;
删除子单元8623,用于若更新类型是删除,则获取更新类型是删除的更新数据的数据标识,根据数据标识,在大数据平台中将数据标识对应的数据删除。
关于大数据实时同步装置的具体限定可以参见上文中对于大数据实时同步方法的限定,在此不再赘述。上述大数据实时同步装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据变更消息和更新数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种大数据实时同步方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取数据库的数据变更消息,数据变更消息包括数据库类型、变更数据和变更数据量;
根据变更数据量和数据节点容量,计算同步节点数量;
根据同步节点数量获取数据同步节点;
将变更数据分配至数据同步节点;
根据数据库类型,控制数据同步节点对变更数据进行解析,得到更新数据;
将更新数据同步至大数据平台。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取数据库的数据变更消息,数据变更消息包括数据库类型、变更数据和变更数据量;
根据变更数据量和数据节点容量,计算同步节点数量;
根据同步节点数量获取数据同步节点;
将变更数据分配至数据同步节点;
根据数据库类型,控制数据同步节点对变更数据进行解析,得到更新数据;
将更新数据同步至大数据平台。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (6)
1.一种大数据实时同步方法,其特征在于,所述大数据实时同步方法包括:
获取数据库的数据变更消息,所述数据变更消息包括数据库类型、变更数据和变更数据量;
根据所述变更数据量和数据节点容量,计算同步节点数量;
根据所述同步节点数量获取数据同步节点;
将所述变更数据分配至所述数据同步节点;
根据所述数据库类型,控制所述数据同步节点对所述变更数据进行解析,得到更新数据;
将所述更新数据同步至大数据平台;
所述将所述变更数据分配至所述数据同步节点中,包括:
在所述数据同步节点中进行选举,得到主节点和子节点;
根据所述数据库类型和所述变更数据量,将所述变更数据通过所述主节点分配至所述子节点中;
所述根据所述数据库类型,控制所述数据同步节点对所述变更数据进行解析,得到更新数据,包括:
根据所述数据库类型,获取所述变更数据的格式;
将所述变更数据中的解析字段进行分隔,得到解析元素;
将所述解析元素进行封装,并根据所述变更数据的格式解析所述解析元素,得到更新数据;
所述根据所述数据库类型,控制所述数据同步节点对所述变更数据进行解析,得到更新数据的步骤还包括:
控制所述数据同步节点中的主节点定时向子节点发送心跳包,检测每一个所述子节点是否返回反馈消息;
将没有返回反馈消息的子节点作为故障子节点,将返回反馈消息的子节点作为正常子节点;
获取故障子节点中还未解析的变更数据,作为待分配变更数据;
获取每一个所述正常子节点的剩余容量,根据每一个所述正常子节点的剩余容量的比例划分所述待分配变更数据;
将划分后的所述待分配变更数据发送至对应的所述正常子节点中。
2.如权利要求1所述的大数据实时同步方法,其特征在于,所述将所述更新数据同步至大数据平台,包括:
获取所述更新数据的更新类型,其中,所述更新类型包括修改、增加或删除;
根据所述更新类型,将所述更新数据同步至大数据平台。
3.如权利要求2所述的大数据实时同步方法,其特征在于,所述根据所述更新类型,将所述更新数据同步至大数据平台,包括:
若所述更新类型是修改,则采用覆盖导入的方式将所述更新类型是修改的更新数据覆盖大数据平台中原有的数据;
若所述更新类型是增加,则采用增量导入的方式将所述更新类型是增加的更新数据添加至大数据平台;
若所述更新类型是删除,则获取所述更新类型是删除的更新数据的数据标识,根据所述数据标识,在大数据平台中将所述数据标识对应的数据删除。
4.一种大数据实时同步装置,其特征在于,所述大数据实时同步装置包括:
数据变更获取模块,用于获取数据库的数据变更消息,所述数据变更消息包括数据库类型、变更数据和变更数据量;
计算模块,用于根据所述变更数据量和数据节点容量,计算同步节点数量;
节点获取模块,用于根据所述同步节点数量获取数据同步节点;
分配模块,用于将所述变更数据分配至所述数据同步节点;
解析模块,用于根据所述数据库类型,控制所述数据同步节点对所述变更数据进行解析,得到更新数据;
同步模块,用于将所述更新数据同步至大数据平台;
所述分配模块包括:
选举子模块,用于在数据同步节点中进行选举,得到主节点和子节点;
分配子模块,用于根据数据库类型和变更数据量,将变更数据分配通过主节点至子节点中;
所述解析模块包括:
格式获取子模块,用于根据数据库类型,获取变更数据的格式;
分隔子模块,用于将变更数据中的解析字段进行分隔,得到解析元素;
解析子模块,用于将解析元素进行封装,并根据变更数据的格式解析该解析元素,得到更新数据;
所述解析模块还包括:
心跳包发送子模块,用于控制所述数据同步节点中的主节点定时向子节点发送心跳包,检测每一个所述子节点是否返回反馈消息;
子节点判断子模块,用于将没有返回反馈消息的子节点作为故障子节点,将返回反馈消息的子节点作为正常子节点;
获取子模块,用于获取故障子节点中还未解析的变更数据,作为待分配变更数据;
划分子模块,用于获取每一个所述正常子节点的剩余容量,根据每一个所述正常子节点的剩余容量的比例划分所述待分配变更数据;
发送子模块,用于将划分后的所述待分配变更数据发送至对应的所述正常子节点中。
5.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3任一项所述大数据实时同步方法的步骤。
6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述大数据实时同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810921097.8A CN109241182B (zh) | 2018-08-14 | 2018-08-14 | 大数据实时同步方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810921097.8A CN109241182B (zh) | 2018-08-14 | 2018-08-14 | 大数据实时同步方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109241182A CN109241182A (zh) | 2019-01-18 |
CN109241182B true CN109241182B (zh) | 2024-02-02 |
Family
ID=65071568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810921097.8A Active CN109241182B (zh) | 2018-08-14 | 2018-08-14 | 大数据实时同步方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109241182B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188111A (zh) * | 2019-05-30 | 2019-08-30 | 上海优扬新媒信息技术有限公司 | 一种离线数据批量更新方法、装置和分布式存储系统 |
CN110309164B (zh) * | 2019-06-27 | 2023-05-09 | 深圳前海微众银行股份有限公司 | 信息更新方法、装置、设备与计算机可读存储介质 |
CN111930515B (zh) * | 2020-09-16 | 2021-09-10 | 北京达佳互联信息技术有限公司 | 数据获取及分配方法、装置、服务器、存储介质 |
CN114564485A (zh) * | 2022-04-28 | 2022-05-31 | 深圳竹云科技股份有限公司 | 基于Elastic Search的用户数据处理方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103024094A (zh) * | 2012-11-15 | 2013-04-03 | 中国科学院计算机网络信息中心 | 一种安全可靠的dns区文件信息下发更新方法及系统 |
CN104933132A (zh) * | 2015-06-12 | 2015-09-23 | 广州巨杉软件开发有限公司 | 基于操作序列号的分布式数据库有权重选举方法 |
WO2016148771A1 (en) * | 2015-03-17 | 2016-09-22 | Sikorsky Aircraft Corporation | Systems and methods for remotely triggered data acquisition |
CN108255592A (zh) * | 2017-12-19 | 2018-07-06 | 武汉市烽视威科技有限公司 | 一种Quartz集群定时任务处理系统及方法 |
CN108322533A (zh) * | 2018-01-31 | 2018-07-24 | 广州鼎甲计算机科技有限公司 | 基于操作日志的分布式集群节点间配置同步方法 |
CN108363786A (zh) * | 2018-02-12 | 2018-08-03 | 苏州朗动网络科技有限公司 | 加载数据的方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10089307B2 (en) * | 2014-12-31 | 2018-10-02 | International Business Machines Corporation | Scalable distributed data store |
-
2018
- 2018-08-14 CN CN201810921097.8A patent/CN109241182B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103024094A (zh) * | 2012-11-15 | 2013-04-03 | 中国科学院计算机网络信息中心 | 一种安全可靠的dns区文件信息下发更新方法及系统 |
WO2016148771A1 (en) * | 2015-03-17 | 2016-09-22 | Sikorsky Aircraft Corporation | Systems and methods for remotely triggered data acquisition |
CN104933132A (zh) * | 2015-06-12 | 2015-09-23 | 广州巨杉软件开发有限公司 | 基于操作序列号的分布式数据库有权重选举方法 |
CN108255592A (zh) * | 2017-12-19 | 2018-07-06 | 武汉市烽视威科技有限公司 | 一种Quartz集群定时任务处理系统及方法 |
CN108322533A (zh) * | 2018-01-31 | 2018-07-24 | 广州鼎甲计算机科技有限公司 | 基于操作日志的分布式集群节点间配置同步方法 |
CN108363786A (zh) * | 2018-02-12 | 2018-08-03 | 苏州朗动网络科技有限公司 | 加载数据的方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109241182A (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109241182B (zh) | 大数据实时同步方法、装置、计算机设备及存储介质 | |
US11010358B2 (en) | Data migration method and system | |
US11888599B2 (en) | Scalable leadership election in a multi-processing computing environment | |
CN109064345B (zh) | 消息处理方法、系统以及计算机可读存储介质 | |
US8954391B2 (en) | System and method for supporting transient partition consistency in a distributed data grid | |
CN104486445B (zh) | 一种基于云平台的分布式可扩展资源监控系统 | |
US10324942B2 (en) | Segment data visibility and management in a distributed database of time stamped records | |
US20110153570A1 (en) | Data replication and recovery method in asymmetric clustered distributed file system | |
US9201747B2 (en) | Real time database system | |
US20150169653A1 (en) | System and method for supporting persistent store versioning and integrity in a distributed data grid | |
CN105493474B (zh) | 用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法 | |
CN104506625A (zh) | 一种提升云数据库元数据节点可靠性的方法 | |
CN112579692B (zh) | 一种数据同步方法、装置、系统、设备及存储介质 | |
CN105701099A (zh) | 用于在分布式环境中执行任务的方法、装置及系统 | |
CN103716384A (zh) | 跨数据中心实现云存储数据同步的方法和装置 | |
CN108140035B (zh) | 分布式系统的数据库复制方法及装置 | |
WO2017157111A1 (zh) | 防止内存数据丢失的的方法、装置和系统 | |
CN113934792B (zh) | 分布式数据库的处理方法、装置、网络设备和存储介质 | |
US20150269086A1 (en) | Storage System and Storage Method | |
US10860580B2 (en) | Information processing device, method, and medium | |
CN112685486B (zh) | 数据库集群的数据管理方法、装置、电子设备及存储介质 | |
CN113672665A (zh) | 数据处理方法、数据采集系统、电子设备和存储介质 | |
CN114510529A (zh) | 数据同步方法、装置、计算机设备和存储介质 | |
CN108023914B (zh) | 一种内存数据共享系统、内存数据的写入以及读取方法 | |
US20150324416A1 (en) | Management apparatus and management system |
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 |