基于广播机制实现数据同步的方法及装置与流程

文档序号:14717833发布日期:2018-06-16 01:57阅读:480来源:国知局
基于广播机制实现数据同步的方法及装置与流程

本发明涉及计算机网络及计算机软件领域,具体涉及一种基于广播机制实现数据同步的方法及装置。



背景技术:

随着大数据信息时代的到来,任何行业的数据都是以暴涨的形式增长,并且企业的各业务系统之间的数据同步,以及各子业务系统与核心业务系统之间数据同步的需求也日渐凸显。

目前对于大数据同步方案大致包括:

(1)导出数据源的数据文件;

(2)将数据源的数据文件复制到目标节点上;

(3)在目标节点上将数据文件导入到目标数据源中。

然而,上述现有技术也存在如下缺点:

(1)该方案仅支持一对一操作,无法将数据源的数据文件同步到多个目标数据源中;

(2)操作过程中容易出错,一旦出错将到时导致数据丢失、错误;

(3)如果数据源的数据量很大,则将消耗大量的CUP、内存、带宽等资源。



技术实现要素:

有鉴于此,本发明的目的在于提供一种基于广播机制实现数据同步的方法及装置,以解决现有技术中存在的上述缺陷。

本发明的技术方案是提供一种基于广播机制实现数据同步的方法,该方法包括:

获取待同步的数据文件;

压缩所述数据文件;

将经压缩的所述数据文件平均分割为多个文件块,并将分割得到的文件块映射到对应的数据结构中,所述数据结构的每个节点对应一个文件块;

将所述文件块以数据消息的形式广播至与所述数据文件的业务类型对应的目标节点,其中,所述目标节点根据所述数据结构中节点的顺序将接收的所述文件块合并,并解压缩合并后的所述文件块,从而得到所述数据文件。

可选地,所述数据结构包括但不限于:集合、链表、堆栈。

可选地,在将所述文件块映射到对应的所述链表的过程中,按照预设命名规则对所述文件块命名,所述链表的存储格式为key-value型。

可选地,该方法还包括:在将接收的所述文件块合并生成所述数据文件的过程中,将所述文件块按照所述预设命名规则合并和解压缩,生成所述数据文件。

本发明还提供一种基于广播机制实现数据同步的装置,所述装置包括:

数据采集模块,用于获取待同步的数据文件;

数据压缩模块,用于压缩所述数据文件;

数据分割模块,用于将经压缩的所述数据文件平均分割为多个文件块,并将分割得到的文件块映射到对应的数据结构中,所述数据结构的每个节点对应一个文件块;

数据同步模块,用于将所述文件块以数据消息的形式广播至与所述数据文件的业务类型对应的目标节点,其中,所述目标节点根据所述数据结构中节点的顺序将接收的所述文件块合并,并解压缩合并后的所述文件块,从而得到所述数据文件。

可选地,所述数据结构包括但不限于:集合、链表、堆栈。

可选地,所述数据分割模块还用于:在将所述文件块映射到对应的所述链表的过程中,按照预设命名规则对所述文件块命名,所述链表的存储格式为key-value型。

可选地,所述数据同步模块还用于:在将接收的所述文件块合并生成所述数据文件的过程中,将所述文件块按照所述预设命名规则合并和解压缩,生成所述数据文件。

通过本发明提供的基于广播机制实现数据同步的方法及装置,能够有效自动实现将待同步的数据进行高效压缩,并通过分布式应用进行分块处理,然后使用广播将分块数据分发到多个目标节点,最后在目标节点中合并和解压缩,最终实现数据文件的同步,保证了数据同步的性能和数据安全的可靠性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明一实施例的基于广播机制实现数据同步的方法流程示意图;

图2为本发明一实施例的基于广播机制实现数据同步的装置的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

在本文中,需要理解的是,所涉及的术语中:

NDE:是一种数据压缩算法,并且是无损算法,实现的程序是线程安全的。

Hadoop:Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

NoSQL数据库:泛指非关系型的数据库。

SQL数据库:SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。

示例性方法

下面参考图1对本发明示例性实施方式的基于广播机制实现数据同步的方法进行介绍。该方法包括:

步骤S101:获取待同步的数据文件;

步骤S102:压缩所述数据文件;

步骤S103:将经压缩的所述数据文件平均分割为多个文件块,并将分割得到的文件块映射到对应的数据结构中,所述数据结构的每个节点对应一个文件块;

步骤S104:将所述文件块以数据消息的形式广播至与所述数据文件的业务类型对应的目标节点,其中,所述目标节点根据所述数据结构中节点的顺序将接收的所述文件块合并,并解压缩合并后的所述文件块,从而得到所述数据文件。

可选地,所述数据结构包括但不限于:集合、链表、堆栈。

可选地,在将所述文件块映射到对应的所述链表的过程中,按照预设命名规则对所述文件块命名,所述链表的存储格式为key-value型。

可选地,该方法还包括:在将接收的所述文件块合并生成所述数据文件的过程中,将所述文件块按照所述预设命名规则合并和解压缩,生成所述数据文件。

实施例

下面结合一个具体实施例对本发明进行具体描述,然而值得注意的是该具体实施例仅是为了更好地描述本发明,并不构成对本发明的不当限定。

首先,获取需要同步的数据并转换为文件。

在本发明一实施例中,获取待同步的数据文件包括但不限于如下形式,SQLserver数据库使用BCP命令获取,hadoop使用hadoopfs命令获取,MySQL数据库使用mysqldump命令获取,MongDB使用mongoexport命令获取。由于上述方法对于本领域的技术人员能够轻易知晓,故不在此详述。

其次,压缩所述数据文件。

具体来说,利用数据压缩算法对该数据文件进行数据压缩。在本发明一实施例中,根据数据文件的大小调整NDE压缩比率,以使数据压缩的过程简单、解压速度和消耗内存达到最优值。

然后,将经压缩的所述数据文件平均分割为多个文件块,并将分割得到的文件块映射到链表中,链表的每个节点对应一个文件块。

下面以数据结构为链表对数据分割的方法进行详细描述。

首先,根据数据文件预先配置的节点数量对该数据文件进行平均分割。

然后,遍历链表的每个节点,并将该数据文件分割后的文件块映射到链表上。

其中,链表中每个文件块的存储格式为:(KEY:节点标识,VALUE:被分割的文件块)。

同时,按分割顺序修改该些文件块的命名规则:原文件名_分块索引_分割文件总个数。

最后,将所述文件块以数据消息的形式广播至与所述数据文件的业务类型对应的目标节点,其中,所述目标节点根据所述链表中节点的顺序将接收的所述文件块合并,并解压缩合并后的所述文件块,从而得到所述数据文件。

首先,通过遍历链表上每一个节点存储的文件块,将每个文件块通过MQ消息的形式发送至广播中心。

其次,广播中心接收到所有文件块后,查找订阅节点,并将与订阅的业务类型对应的文件块下发到目标数据源的某一订阅节点。

然后,该订阅节点接收所有文件块后,解析这些文件块的命名规则,判断是否接收到某一个数据源的全部文件块。待收到全部文件块时,按分块索引的顺序合并这些文件块生成该数据文件。

最后,将合并的该数据文件解压,并根据不同的源数据类型导入到目标数据源中。

在本发明一实施例,导入到目标数据源的方式包括但不限于如下形式:SQLserver数据源使用BCP命令导入,hadoop使用hadoopfs命令导入,MySQL数据库使用mysqlimport命令导入,mongdb使用mongoimport命令导入等。

本发明还提供了一种基于广播机制实现数据同步的装置2,该装置2包括:

数据采集模块21,用于获取待同步的数据文件;

数据压缩模块22,用于压缩所述数据文件;

数据分割模块23,用于将经压缩的所述数据文件平均分割为多个文件块,并将分割得到的文件块映射到对应的数据结构中,所述数据结构的每个节点对应一个文件块;

数据同步模块24,用于将所述文件块以数据消息的形式广播至与所述数据文件的业务类型对应的目标节点,其中,所述目标节点根据所述数据结构中节点的顺序将接收的所述文件块合并,并解压缩合并后的所述文件块,从而得到所述数据文件。

可选地,所述数据结构包括但不限于:集合、链表、堆栈。

可选地,所述数据分割模块23还用于:在将所述文件块映射到对应的所述链表的过程中,按照预设命名规则对所述文件块命名,所述链表的存储格式为key-value型。

可选地,所述数据同步模块24还用于:在将接收的所述文件块合并生成所述数据文件的过程中,将所述文件块按照所述预设命名规则合并和解压缩,生成所述数据文件。

由于本发明提供的基于广播机制实现数据同步的装置是上述方法对应的装置,故在此不再赘述。

通过本发明提供的基于广播机制实现数据同步的方法及装置,能够有效自动实现将待同步的数据进行高效压缩,并通过分布式应用进行分块处理,然后使用广播将分块数据分发到多个目标节点,最后在目标节点中合并和解压缩,最终实现数据文件的同步,保证了数据同步的性能和数据安全的可靠性。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1