数据同步方法和集群节点的制作方法
【技术领域】
[0001]本发明实施例涉及计算机技术领域,并且更具体地,涉及一种数据同步方法和集群节点。
【背景技术】
[0002]Impala作为分布式系统基础架构(如Hadoop)的新型查询系统,提供SQL (Structured Query Language,结构化查询语言)语义。相较于使用MapReduce编程模型的Hive (基于Hadoop的一个数据仓库工具),Impala能够以低延时查询存储在Hadoop的HDFS (Hadoop Distributed File System,分布式文件系统)中的PB级大数据,为依托于数据分析的决策提供了更高效的支撑。
[0003]但是,在现有的数据同步过程中,分布式系统Hadoop采用Hive手工以文件方式导入数据,再对数据的有效性或完整性进行判断,因此,不仅人力成本大且效率低下。
【发明内容】
[0004]本发明实施例提供一种数据同步方法和集群节点,能够有效地降低人力成本,并且提高数据同步的效率。
[0005]第一方面,提供了一种数据同步方法,该方法包括:在生成源数据的集群节点生成源数据的集群节点上对所述源数据的完整性进行验证;若验证所述源数据为完整的,则获取所述源数据;根据所述源数据对数据表进行更新;其中所述源数据为完整的表示所述生成源数据的集群节点生成源数据的集群节点已完成生成所述源数据的过程,所述数据表用于记录所述源数据的元信息。
[0006]结合第一方面,在一种可能的实现方式中,所述在源数据所在集群节点上对所述源数据的完整性进行验证,包括:当通过对所述生成源数据的集群节点生成源数据的集群节点进行轮询,获取到完整标记时,验证所述源数据为完整的;或者当接收到所述生成源数据的集群节点生成源数据的集群节点提交的完整标记时,验证所述源数据为完整的;其中所述完整标记是由所述生成源数据的集群节点生成源数据的集群节点在所述源数据生成完成之后广生的。
[0007]结合第一方面或其上述实现方式中的任一种实现方式,在另一种可能的实现方式中,所述在源数据所在集群节点上对所述源数据的完整性进行验证,包括:当所述源数据的大小在预定的时间范围内没有改变时,验证所述源数据为完整的。
[0008]进一步地,所述当所述源数据的大小在预定的时间范围内没有改变时,验证所述源数据为完整的,包括:多次检测所述源数据的大小,每次间隔一定的时间,所述预定的时间范围是指首次与最后一次检测所述源数据的大小的时间间隔;如果多次检测到的所述源数据的大小都是一致的,则表示所述源数据的大小在预定的时间范围内没有改变,验证所述源数据为完整的。
[0009]结合第一方面或其上述实现方式中的任一种实现方式,在另一种可能的实现方式中,在所述根据所述源数据对数据表进行更新之前,所述方法还包括:对所述源数据进行过滤,以过滤掉无效数据。
[0010]结合第一方面或其上述实现方式中的任一种实现方式,在另一种可能的实现方式中,在所述获取所述源数据之后,所述方法还包括:分区创建所述源数据的表结构,所述表结构记录了从所述生成源数据的集群节点生成源数据的集群节点到目标集群节点上的存储位置的映射关系,所述目标集群节点指的是获取所述源数据的集群节点。
[0011]结合第一方面或其上述实现方式中的任一种实现方式,在另一种可能的实现方式中,所述数据表米用全量表,时间分区表或拉链表的形式。
[0012]第二方面,提供了一种数据同步方法,该方法包括:生成源数据;
[0013]在目标集群节点验证所述源数据为完整的之后,向所述目标集群节点上传所述源数据,以便所述目标集群节点根据所述源数据对数据表进行更新;其中所述源数据为完整的表示所述生成源数据的集群节点生成源数据的集群节点已完成生成所述源数据的过程,所述数据表用于记录所述源数据的元信息。
[0014]结合第二方面,在一种可能的实现方式中,在所述向所述目标集群节点上传所述源数据之前,所述方法还包括:在源数据生成完成之后,生成完整标记,所述完整标记用于指示所述源数据为完整的;向所述目标集群节点提交所述完整标记。
[0015]第三方面,提供了一种数据同步的集群节点,该集群节点包括:验证模块,用于在生成源数据的集群节点上对所述源数据的完整性进行验证;获取模块,用于若所述验证模块验证所述源数据为完整的,则获取所述源数据;更新模块,用于根据所述获取模块获取的所述源数据对数据表进行更新;其中所述源数据为完整的表示所述生成源数据的集群节点已完成生成所述源数据的过程,所述数据表用于记录所述源数据的元信息。
[0016]结合第三方面,在一种可能的实现方式中,所述验证模块具体用于:当通过对所述生成源数据的集群节点进行轮询,获取到完整标记时,验证所述源数据为完整的;或者所述验证模块具体用于:当接收到所述生成源数据的集群节点提交的完整标记时,验证所述源数据为完整的;其中所述完整标记是由所述生成源数据的集群节点在所述源数据生成完成之后产生的。
[0017]结合第三方面或其上述实现方式中的任一种实现方式,在另一种可能的实现方式中,所述验证模块具体用于:当所述源数据的大小在预定的时间范围内没有改变时,验证所述源数据为完整的。
[0018]结合第三方面或其上述实现方式中的任一种实现方式,在另一种可能的实现方式中,所述验证模块具体用于:多次检测所述源数据的大小,每次间隔一定的时间,如果多次检测到的所述源数据的大小都是一致的,则表示所述源数据的大小在预定的时间范围内没有改变,验证所述源数据为完整的,其中所述预定的时间范围是指首次与最后一次检测所述源数据的大小的时间间隔。
[0019]结合第三方面或其上述实现方式中的任一种实现方式,在另一种可能的实现方式中,所述更新模块还用于:对所述源数据进行过滤,以过滤掉无效数据。
[0020]结合第三方面或其上述实现方式中的任一种实现方式,在另一种可能的实现方式中,所述集群节点还包括:创建模块,用于分区创建所述源数据的表结构,所述表结构记录了从所述生成源数据的集群节点到目标集群节点上的存储位置的映射关系,所述目标集群节点指的是获取所述源数据的集群节点。
[0021]第四方面,提供了一种生成源数据的集群节点,该集群节点包括:生成模块,用于生成源数据;上传模块,用于在目标集群节点验证所述源数据为完整的之后,向所述目标集群节点上传所述生成模块生成的所述源数据,以便所述目标集群节点根据所述源数据对数据表进行更新;其中所述源数据为完整的表示所述生成源数据的集群节点已完成生成所述源数据的过程,所述数据表用于记录所述源数据的元信息。
[0022]结合第四方面,在一种可能的实现方式中,所述生成模块还用于:在源数据生成完成之后,生成完整标记,所述完整标记用于指示所述源数据为完整的;所述上传模块还用于:向所述目标集群节点提交所述生成模块生成的所述完整标记。
[0023]在本发明实施例中,通过在生成源数据的集群节点上来实现源数据完整性的验证,在源数据完整的情况下,从生成源数据的集群节点上