首页 / 专利库 / 专利权 / 专利合作条约 / 第I章 / 国际申请 / 说明书 / 本技术领域的技术人员 / 一种数据同步的方法、装置、终端设备及存储介质

一种数据同步的方法、装置、终端设备及存储介质

阅读:1026发布:2020-11-14

专利汇可以提供一种数据同步的方法、装置、终端设备及存储介质专利检索,专利查询,专利分析的服务。并且本 发明 适用于计算机技术领域,提供了一种数据同步的方法、装置、终端设备及存储介质,所述方法包括:根据同步完成时间,确定源数据文件的校验时间和同步执行时间;在当前时间到达校验时间时,获取源数据文件;在当前时间早于或到达同步执行时间时,若源数据文件获取成功并且源数据文件的文件大小在当前时间之前的预定时间范围内保持不变,则确认所述源数据文件已准备好,并对源数据文件进行数据同步;若在当前时间到达同步执行时间时源数据文件未准备好,则向预设的维护人员发送告警信息。本发明的技术方案有效提高数据同步的准确性和完整性;并通过预警机制及时向预设的维护人员发送告警信息,使得相关维护人员能够及时排查和解决故障。,下面是一种数据同步的方法、装置、终端设备及存储介质专利的具体信息内容。

1.一种数据同步的方法,其特征在于,所述方法包括:
接收数据同步请求,其中,所述数据同步请求包括源数据文件的标识信息以及同步完成时间;所述同步完成时间是指将数据从源数据集群同步到目标数据集群的同步操作的完成时间;
根据所述标识信息,确定源数据文件的源文件名称,以及所述源文件名称对应的提取路径;
根据所述同步完成时间,确定所述源数据文件的校验时间和同步执行时间;所述校验时间为开始判断源数据文件是否已经准备好的时间,所述同步执行时间为执行数据同步操作命令的最迟启动时间;
在当前时间到达所述校验时间时,根据所述源文件名称和所述提取路径,获取所述源数据文件;
在所述当前时间早于或到达所述同步执行时间时,若所述源数据文件获取成功并且所述源数据文件的文件大小在所述当前时间之前的预定时间范围内保持不变,则确认所述源数据文件已准备好,否则,确认所述源数据文件未准备好;
若所述源数据文件已准备好,则对所述源数据文件进行数据同步;
若在所述当前时间到达所述同步执行时间时所述源数据文件未准备好,则向预设的维护人员发送告警信息。
2.如权利要求1所述的方法,其特征在于,所述在当前时间到达所述校验时间时,根据所述源文件名称和所述提取路径,获取所述源数据文件包括:
在当前时间到达所述校验时间时,判断在所述提取路径下是否存在所述源文件名称;
若在所述提取路径下存在所述源文件名称,则确认所述源数据文件存在;
若在所述提取路径下不存在所述源文件名称,则在所述当前时间到达所述同步执行时间前,每隔预定的第一时间间隔继续判断在所述提取路径下是否存在所述源文件名称,直到确认所述源数据文件存在或者所述当前时间到达所述同步执行时间为止;
若所述当前时间到达所述同步执行时间并且在所述提取路径下不存在所述源文件名称,则确认所述源数据文件不存在;
若所述源数据文件存在,则根据所述源文件名称获取所述源数据文件,否则,若所述源数据文件不存在,则确认所述源数据文件获取失败。
3.如权利要求1所述的方法,其特征在于,所述在所述当前时间早于或到达所述同步执行时间时,若所述源数据文件获取成功并且所述源数据文件的文件大小在所述当前时间之前的预定时间范围内保持不变,则确认所述源数据文件已准备好,否则确认所述源数据文件未准备好包括:
在所述当前时间早于或到达所述同步执行时间时,若所述源数据文件获取成功,则间隔预定的第二时间间隔读取所述源数据文件的文件大小;
若连续预设次数读取的所述源数据文件的文件大小保持不变,则确认所述源数据文件已准备好,否则,若所述当前时间到达所述同步执行时间时连续所述预设次数读取的所述源数据文件的文件大小仍存在变化,则确认所述源数据文件未准备好。
4.如权利要求3所述的方法,其特征在于,所述对所述源数据文件进行数据同步包括:
使用distcp命令将所述源数据文件从源数据集群同步到目标数据集群。
5.如权利要求3所述的方法,其特征在于,所述告警信息包括所述源文件名称、所述提取路径,以及间隔所述第二时间间隔读取到的所述源数据文件的文件大小,所述向预设的维护人员发送告警信息包括:
获取所述源数据文件的重要性等级;
根据所述重要性等级确定所述源数据文件的告警级别;
获取所述告警级别对应的告警接收方信息和告警方式;
按照所述告警接收方信息和所述告警方式发送所述告警信息。
6.一种数据同步的装置,其特征在于,所述装置包括:
请求接收模,用于接收数据同步请求,其中,所述数据同步请求包括源数据文件的标识信息以及同步完成时间;所述同步完成时间是指将数据从源数据集群同步到目标数据集群的同步操作的完成时间;
源文件确定模块,用于根据所述标识信息,确定源数据文件的源文件名称,以及所述源文件名称对应的提取路径;
时间确定模块,用于根据所述同步完成时间,确定所述源数据文件的校验时间和同步执行时间;所述校验时间为开始判断源数据文件是否已经准备好的时间,所述同步执行时间为执行数据同步操作命令的最迟启动时间;
源数据获取模块,用于在当前时间到达所述校验时间时,根据所述源文件名称和所述提取路径,获取所述源数据文件;
源数据校验模块,用于在所述当前时间早于或到达所述同步执行时间时,若所述源数据文件获取成功并且所述源数据文件的文件大小在所述当前时间之前的预定时间范围内保持不变,则确认所述源数据文件已准备好,否则,确认所述源数据文件未准备好;
数据同步模块,用于若所述源数据文件已准备好,则对所述源数据文件进行数据同步;
告警模块,用于若在所述当前时间到达所述同步执行时间时所述源数据文件未准备好,则向预设的维护人员发送告警信息。
7.如权利要求6所述的装置,其特征在于,所述源数据获取模块包括:
第一判断子模块,用于在当前时间到达所述校验时间时,判断在所述提取路径下是否存在所述源文件名称;
判断成功子模块,用于若在所述提取路径下存在所述源文件名称,则确认所述源数据文件存在;
判断失败子模块,用于若在所述提取路径下不存在所述源文件名称,则在所述当前时间到达所述同步执行时间前,每隔预定的第一时间间隔继续判断在所述提取路径下是否存在所述源文件名称,直到确认所述源数据文件存在或者所述当前时间到达所述同步执行时间为止;
第二判断子模块,用于若所述当前时间到达所述同步执行时间并且在所述提取路径下不存在所述源文件名称,则确认所述源数据文件不存在;
文件获取子模块,用于若所述源数据文件存在,则根据所述源文件名称获取所述源数据文件,否则,若所述源数据文件不存在,则确认所述源数据文件获取失败。
8.如权利要求6所述的装置,其特征在于,所述源数据校验模块包括:
读取子模块,用于在所述当前时间早于或到达所述同步执行时间时,若所述源数据文件获取成功,则间隔预定的第二时间间隔读取所述源数据文件的文件大小;
确认子模块,用于若连续预设次数读取的所述源数据文件的文件大小保持不变,则确认所述源数据文件已准备好,否则,若所述当前时间到达所述同步执行时间时连续所述预设次数读取的所述源数据文件的文件大小仍存在变化,则确认所述源数据文件未准备好。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。

说明书全文

一种数据同步的方法、装置、终端设备及存储介质

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种数据同步的方法、装置、终端设备及存储介质。

背景技术

[0002] 目前,大数据集群之间在进行数据同步时,无法判断待同步的源数据是否已经准备好,可能待同步的源数据正在进行更新,此时进行数据同步会导致同步后的目标数据与源数据存在不一致的情况,或者直接导致同步失败,影响数据同步的准确性。
[0003] 同时,在发生同步失败或者同步数据不准确的情况下,并没有预警机制,往往都是在同步操作已经完成,甚至在对同步后的数据的使用过程中才发现同步出错,但此时已经对数据使用造成了严重的影响。

发明内容

[0004] 本发明实施例提供一种数据同步的方法、装置、终端设备及存储介质,以解决现有的大数据集群之间的数据同步准确性低以及没有及时预警机制的问题。
[0005] 第一方面,本发明实施例提供一种数据同步的方法,包括:
[0006] 接收数据同步请求,其中,所述数据同步请求包括源数据文件的标识信息以及同步完成时间;
[0007] 根据所述标识信息,确定源数据文件的源文件名称,以及所述源文件名称对应的提取路径;
[0008] 根据所述同步完成时间,确定所述源数据文件的校验时间和同步执行时间;
[0009] 在当前时间到达所述校验时间时,根据所述源文件名称和所述提取路径,获取所述源数据文件;
[0010] 在所述当前时间早于或到达所述同步执行时间时,若所述源数据文件获取成功并且所述源数据文件的文件大小在所述当前时间之前的预定时间范围内保持不变,则,则确认所述源数据文件已准备好,否则,确认所述源数据文件未准备好;
[0011] 若所述源数据文件已准备好,对所述源数据文件进行数据同步;
[0012] 若在所述当前时间到达所述同步执行时间时所述源数据文件未准备好,则向预设的维护人员发送告警信息。
[0013] 第二方面,本发明实施例提供一种数据同步的装置,包括:
[0014] 请求接收模,用于接收数据同步请求,其中,所述数据同步请求包括源数据文件的标识信息以及同步完成时间;
[0015] 源文件确定模块,用于根据所述标识信息,确定源数据文件的源文件名称,以及所述源文件名称对应的提取路径;
[0016] 时间确定模块,用于根据所述同步完成时间,确定所述源数据文件的校验时间和同步执行时间;
[0017] 源数据获取模块,用于在当前时间到达所述校验时间时,根据所述源文件名称和所述提取路径,获取所述源数据文件;
[0018] 源数据校验模块,用于在所述当前时间早于或到达所述同步执行时间时,若所述源数据文件获取成功并且所述源数据文件的文件大小在所述当前时间之前的预定时间范围内保持不变,则确认所述源数据文件已准备好,否则,确认所述源数据文件未准备好;
[0019] 数据同步模块,用于若所述源数据文件已准备好,则对所述源数据文件进行数据同步;
[0020] 告警模块,用于若在所述当前时间到达所述同步执行时间时所述源数据文件未准备好,则向预设的维护人员发送告警信息。
[0021] 第三方面,本发明实施例提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述数据同步的方法的步骤。
[0022] 第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述数据同步的方法的步骤。
[0023] 本发明实施例与现有技术相比具有如下优点:本发明实施例所提供的数据同步的方法、装置、终端设备及存储介质中,一方面,通过同步完成时间确定源数据文件的校验时间和同步执行时间,在校验时间和同步执行时间之间持续的对源数据文件进行校验,及时判断源数据文件是否准备好,并在源数据准备好的情况下在当前时间到达同步执行时间之前或到达同步执行时间时启动对源数据文件的数据同步,确保同步操作能够在同步完成时间到达之前顺利执行完成,从而有效提高数据同步的准确性和完整性;另一方面,在当前时间到达同步执行时间时,如果源数据仍然没有准备好,则通过预警机制及时向预设的维护人员发送告警信息,使得相关维护人员能够及时排查和解决故障,确保在同步完成时间到达之前能够及时完成数据同步,从而使数据使用者能够正常使用同步后的数据,避免同步失败或者同步数据错误造成的影响。附图说明
[0024] 为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0025] 图1是本发明实施例提供的数据同步的方法的实现流程图
[0026] 图2是本发明实施例提供的数据同步的方法中步骤S4的实现流程图;
[0027] 图3是本发明实施例提供的数据同步的方法中步骤S5的实现流程图;
[0028] 图4是本发明实施例提供的数据同步的方法中步骤S7中向预设的维护人员发送告警信息的实现流程图;
[0029] 图5是本发明实施例提供的数据同步的装置的示意图;
[0030] 图6是本发明实施例提供的终端设备的示意图。

具体实施方式

[0031] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0032] 请参阅图1,图1示出了本发明实施例提供的数据同步的方法的实现流程。详述如下:
[0033] S1:接收数据同步请求,其中,该数据同步请求包括源数据文件的标识信息以及同步完成时间。
[0034] 在本发明实施例中,大数据集群中的数据以文件的形式存放在预定的路径下。若需要将数据从源数据集群同步到目标数据集群,可以触发数据同步请求,在数据同步请求中包含了待同步的数据对应的源数据文件的标识信息,以及同步完成时间。
[0035] 源数据文件的标识信息用于唯一标识该源数据文件,其具体可以是标识码或者其他标识字符串等信息。根据该标识信息可以唯一确定源数据文件的文件名称和存放路径。
[0036] 待同步的数据的同步完成时间是指将数据从源数据集群同步到目标数据集群的同步操作的完成时间,该同步完成时间由待同步的数据的类型或者属性,以及数据使用者对该数据的使用时间要求决定。例如,待同步的数据为每日的业务报表数据,若业务处理部需要在每日上午10点开始对前一日的业务报表数据进行统计处理,那么前一日的业务报表数据的同步完成时间即为每日上午10点。
[0037] S2:根据源数据文件的标识信息,确定源数据文件的源文件名称,以及该源文件名称对应的提取路径。
[0038] 在本发明实施例中,根据预先存储的标识信息与文件名称和存放路径之间的对应关系,在已知源数据文件的标识信息的情况下,通过该对应关系,可以查询到该源数据文件对应的源文件名称和存放路径,该存放路径即为该源文件名称对应的提取路径。
[0039] S3:根据同步完成时间,确定源数据文件的校验时间和同步执行时间。
[0040] 在本发明实施例中,由于在大数据集群之间进行数据同步的数据量巨大,为了确保同步操作能够在同步完成时间到达之前顺利执行完成,并且在执行同步操作时源数据已经准备好,需要根据同步完成时间以及源数据的规模,确定对源数据文件的校验时间和同步执行时间。校验时间为开始判断源数据文件是否已经准备好的时间,同步执行时间为执行数据同步操作命令的最迟启动时间。
[0041] 以待同步的数据为每日的业务报表数据为例,该业务报表数据的同步完成时间为每日上午10点,那么根据业务报表数据的同步数据量进行分析,估算出数据同步操作大约需要4个小时,那么可以将源数据文件的校验时间确定为凌晨1点,将同步执行时间确定为凌晨4点,即最迟凌晨4点要开始进行数据同步,才能确保在上午10点之前完成该业务报表数据的同步。
[0042] S4:在当前时间到达源数据文件的校验时间时,根据源文件名称和提取路径,获取该源数据文件。
[0043] 在本发明实施例中,根据步骤S3确定的校验时间,在当前时间到达该校验时间时,从提取路径获取该源文件名称对应的源数据文件。
[0044] S5:在当前时间早于或到达同步执行时间时,若源数据文件获取成功并且该源数据文件的大小在当前时间之前的预定时间范围内保持不变,则确认所述源数据文件已准备好,否则,确认所述源数据文件未准备好。
[0045] 在本发明实施例中,在当前时间到达或超过校验时间,并且早于或到达同步执行时间时,若步骤S4中从提取路径获取源数据文件成功,并且该源数据文件在当前时间之前的预定时间范围内其文件大小保持不变,则确认源数据文件已经准备好,可以对源数据文件进行数据同步的操作。
[0046] 在当前时间到达或超过校验时间,并且早于或到达同步执行时间时,若步骤S4中从提取路径获取源数据文件失败,即在提取路径下没有获取到该源数据文件,或者虽然源数据文件获取成功但是该源数据文件在当前时间之前的预定时间范围内其文件大小存在变化,例如其文件大小在不断增加,则说明当前源数据文件尚未准备好,在当前时间早于或到达同步执行时间时,可以持续执行对源数据文件的获取,以及对该源数据文件在当前时间之前的预定时间范围内的文件大小是否保持不变的判断,只要在当前时间到达同步执行时间之前或者当前时间达到同步执行时间时,源数据文件获取成功并且该源数据文件的大小在当前时间之前的预定时间范围内保持不变,即可确认源数据文件已经准备好,可以对源数据文件进行数据同步的操作。
[0047] 需要说明的是,预定时间范围具体可以设置为30分钟,但并不限于此,其具体可以根据实际应用的需要进行设置,此处不做限制。例如,若当前时间为上午9点,并且预定时间范围为30分钟,则源数据文件的大小在当前时间之前的预定时间范围内保持不变具体是指在上午8点30分至9点这一时间段内源数据文件的大小保持不变。
[0048] S6:若源数据文件已准备好,则对该源数据文件进行数据同步。
[0049] 在本发明实施例中,若根据步骤S5判断源数据文件已经准备好,则可以对该源数据文件进行数据同步。
[0050] 需要说明的是,在源数据文件已经准备好的情况下,可以立即对源数据文件进行数据同步的操作,也可以在当前时间到达同步执行时间时才进行对源数据文件的数据同步操作,此处不做限制。
[0051] 在对该源数据文件进行数据同步后,流程结束。
[0052] S7:若在当前时间到达同步执行时间时源数据文件未准备好,则向预设的维护人员发送告警信息。
[0053] 在本发明实施例中,若在在当前时间到达同步执行时间时,源数据文件仍然获取失败,即在提取路径下一直无法获取到该源数据文件,或者虽然源数据文件获取成功但是该源数据文件的文件大小一直在变化,则说明源数据文件尚未准备好,此时需要向预设的维护人员发送告警信息,及时通知相关维护人员,以便维护人员能够及时排查和解决故障,确保在同步完成时间到达之前能够及时完成数据同步,从而使数据使用者能够正常使用同步后的数据。
[0054] 在图1对应的实施例中,根据数据同步请求包含的待同步的源数据文件的标识信息,确定源数据文件的源文件名称和提取路径,并根据同步请求包含的同步完成时间确定对源数据文件的校验时间和同步执行时间,在当前时间到达该校验时间时根据源文件名称和提取路径获取源数据文件,在当前时间早于或到达同步执行时间时,如果源数据文件获取成功并且该源数据文件的大小在当前时间之前的预定时间范围内保持不变,则确认该源数据文件已经准备好,可以对该源数据文件进行数据同步,如果在当前时间到达同步执行时间时,源数据文件一直获取失败或者该源数据文件的大小一直在发生变化,则说明该源数据文件一直未准备好,向预设的维护人员发送告警信息。一方面,通过同步完成时间确定源数据文件的校验时间和同步执行时间,在校验时间和同步执行时间之间持续的对源数据文件进行校验,及时判断源数据文件是否准备好,并在源数据准备好的情况下在当前时间到达同步执行时间之前或者到达同步执行时间时,启动对源数据文件的数据同步,确保同步操作能够在同步完成时间到达之前顺利执行完成,从而有效提高数据同步的准确性和完整性;另一方面,在当前时间到达同步执行时间时,如果源数据仍然没有准备好,则通过预警机制及时向预设的维护人员发送告警信息,使得相关维护人员能够及时排查和解决故障,确保在同步完成时间到达之前能够及时完成数据同步,从而使数据使用者能够正常使用同步后的数据,避免同步失败或者同步数据错误造成的影响。
[0055] 接下来,在图1对应的实施例的基础之上,下面通过一个具体的实施例来对步骤S4中所提及的在当前时间到达校验时间时,根据源文件名称和提取路径获取该源数据文件的具体实现方法进行详细说明。
[0056] 请参阅图2,图2示出了本发明实施例提供的步骤S4的具体实现流程,详述如下:
[0057] S401:在当前时间到达源数据文件的校验时间时,判断在提取路径下是否存在源文件名称。
[0058] 在本发明实施例中,在当前时间到达源数据文件的校验时间时,根据步骤S2得到的源文件名称和提取路径,判断在该提取路径下是否存在该源文件名称。
[0059] S402:若在提取路径下存在源文件名称,则确认源数据文件存在。
[0060] 在本发明实施例中,若根据步骤S401的判断结果确定在提取路径下存在源文件名称,则确认该源数据文件存在,流程跳转到步骤S405继续执行。
[0061] S403:若在提取路径下不存在源文件名称,则在当前时间到达同步执行时间前,每隔预定的第一时间间隔继续判断在提取路径下是否存在该源文件名称,直到确认源数据文件存在或者当前时间到达同步执行时间为止。
[0062] 在本发明实施例中,若根据步骤S401的判断结果确定在提取路径下不存在源文件名称,则确认当前在提取路径下尚未生成该源文件名称对应的源数据文件,即源数据文件尚未准备好,此时,在当前时间到达同步执行时间之前,每隔第一时间间隔继续判断在该提取路径下是否存在该源文件名称。若存在,则确认源数据文件存在,流程跳转到步骤S405继续执行,若当前时间到达同步执行时间,则停止判断,并继续执行步骤S404。
[0063] 需要说明的是,预定的第一时间间隔的值可以根据应用的需要进行设置,此处不做限制。
[0064] S404:若当前时间到达同步执行时间并且在提取路径下不存在源文件名称,则确认源数据文件不存在。
[0065] 在本发明实施例中,若在当前时间到达同步执行时间时,在提取路径下仍然不存在源文件名称,则确认源数据文件不存在。
[0066] S405:若源数据文件存在,则根据源文件名称获取该源数据文件,否则,若源数据文件不存在,则确认该源数据文件获取失败。
[0067] 在本发明实施例中,若根据步骤S402或步骤S403确认源数据文件存在,则在提取路径下获取源文件名称对应的源数据文件,若根据步骤S404确认源数据文件不存在,则直接确认该源数据文件获取失败。
[0068] 在图2对应的实施例中,在到达源数据文件的校验时间时,通过判断在源数据文件的提取路径下是否能够成功获取该源数据文件,确定当前源数据文件是否已经准备好,并在获取失败的情况下通过周期获取的方式来避免误判断,从而确保对当前源数据文件的状态能够做出准确判断的基础上进行进一步的后续处理,有效提高在数据同步之前对源数据状态的判断准确性。
[0069] 在图1对应的实施例的基础之上,下面通过一个具体的实施例来对步骤S5中所提及的在当前时间早于或到达同步执行时间时,若源数据文件获取成功并且该源数据文件的大小在当前时间之前的预定时间范围内保持不变,则确认该源数据文件已准备好,否则确认该源数据文件未准备好的具体实现方法进行详细说明。
[0070] 请参阅图3,图3示出了本发明实施例提供的步骤S5的具体实现流程,详述如下:
[0071] S501:在当前时间早于或到达同步执行时间时,若源数据文件获取成功,则间隔预定的第二时间间隔读取该源数据文件的文件大小。
[0072] 在本发明实施例中,当前时间早于或到达同步执行时间时,若根据步骤S4获取源数据文件成功,则间隔第二时间间隔读取该源数据文件的文件大小。
[0073] 若步骤S4获取源数据文件失败,则在到达同步执行时间前可以继续按照步骤S4执行对源数据文件的获取。
[0074] 如果到达同步执行时间,依然无法获取到源数据文件,则确认该源数据文件尚未准备好。
[0075] 需要说明的是,预定的第二时间间隔的值可以根据应用的需要进行设置,此处不做限制。可以理解的是,第一时间间隔和第二时间间隔可以相同,也可以不相同,此处不做限制。
[0076] S502:若连续预设次数读取的源数据文件的文件大小保持不变,则确认该源数据文件已准备好,否则,若当前时间到达同步执行时间时连续预设次数读取的源数据文件的文件大小仍存在变化,则确认该源数据文件未准备好。
[0077] 在本发明实施例中,在当前时间早于或到达同步执行时间时,若源数据文件获取成功,并且连续预设次数读取到的源数据文件的文件大小保持不变,则确认该源数据文件已经准备好。
[0078] 在当前时间早于或到达同步执行时间时,若源数据文件获取成功,但是在连续预设次数读取到的源数据文件的文件大小发生变化,则在到达同步执行时间之前,可以继续判断源数据文件的文件大小是否保存不变。
[0079] 如果到达同步执行时间时,连续预设次数读取到的源数据文件的文件大小仍然在变化,则确认该源数据文件尚未准备好。例如,假设预设次数为5次,每次读取到的源数据文件的文件大小为10M,12M,12M,14M,15M,则确认该源数据文件尚未准备好。
[0080] 需要说明的是,预设次数可以根据应用的需要进行设置,此处不做限制,可以用预定时间范围与第二时间间隔的商作为预设次数。
[0081] 若源数据文件已经准备好,则可以对该源数据文件进行数据同步。
[0082] 进一步地,对源数据文件进行数据同步的过程可以通过如下方式实现:
[0083] 使用distcp命令将源数据文件从源数据集群同步到目标数据集群。
[0084] distcp命令是一种分布式拷贝命令,使用distcp命令将源数据文件从源数据集群A同步到目标数据集群B的过程如下:
[0085] (1)将源数据文件所在的提取路径从源数据集群A复制到目标数据集群B:
[0086] Hadoop distcp hdfs://namenodeA/data hdfs://namenodeB/data
[0087] 其中,hdfs://namenodeA/data为源数据集群A下源数据文件所在的提取路径,hdfs://namenodeB/data为目标数据集群B对应的提取路径。
[0088] 若在目标数据集群B中已经存在该提取路径,则可以使用如下命令覆盖目标数据集群B的该提取路径下已经存在的文件:
[0089] hadoop distcp–overwrite hdfs://namenodeA/data hdfs://namenodeB/data[0090] (2)同步源数据集群A和目标数据集群B之间的data文件夹
[0091] hadoop distcp–update hdfs://namenodeA/data hdfs://namenodeB/data[0092] 具体地,该distcp命令将源数据集群A中data文件夹中包含的源数据文件先被复制为一个临时文件,并且启动只有map过程没有reduce过程的MapReduce作业来实现源数据集群A和目标数据集群B之间的数据复制。通常情况下,每个map可以分配到一个256MB的数据块文件。例如,如果data文件夹总大小为10GB,则可以启动40个map,每个map复制大约256MB的数据。
[0093] 需要说明的是,map的数量可以根据实际应用的需要进行设置。例如,若设置10个map进行数据同步,则如果data文件夹的总大小是10GB,那么每个map复制大约1GB的数据,具体设置方法如下:
[0094] hadoop distcp–m 10hdfs://namenodeA/data hdfs://namenodeB/data[0095] 由于distcp命令启动只有map过程没有reduce过程的MapReduce作业来进行数据同步,能够把闲置的集群资源利用起来,从而提高数据同步的效率。
[0096] 为了更好的理解本实施例,下面用一个具体的应用实例加以说明。例如,某业务部门要求每天10点之前将前一日的业务数据从大数据集群A同步到大数据集群B,即同步完成时间为上午10点,按照业务数据的规模和同步时间推算出最晚需在每日凌晨4点之前将大数据集群A中的源数据准备好,那么源数据文件的校验时间可以设置为凌晨1点,同步执行时间设置为凌晨4点,即从凌晨1点开始按照本发明实施例的过程持续判断源数据是否准备好,如果在凌晨4点之前源数据已经准备好,则直接进行数据同步,如果到凌晨4点时源数据仍然没有准备好,则发送告警,提醒相关维护人员尽快排查错误原因,解决问题,以便能够尽快进行业务数据的同步。
[0097] 在图3对应的实施例中,在当前时间早于或到达同步执行时间时,若源数据文件获取成功并且连续预设次数读取到的源数据文件的文件大小保持不变,则确认该源数据文件已经准备好,可以开始对源数据文件进行数据同步,实现了对源数据文件是否准备好的及时判断,确保同步操作能够在同步完成时间到达之前顺利执行完成,从而有效提高数据同步的准确性和完整性;同时,使用distcp命令将源数据文件从源数据集群同步到目标数据集群,利用distcp命令启动只有map过程没有reduce过程的MapReduce作业来进行数据同步的特点,将闲置的集群资源利用起来,从而提高数据同步的效率。
[0098] 在以上实施例的基础之上,下面通过一个具体的实施例来对步骤S6中所提及的向预设的维护人员发送告警信息的具体实现方法进行详细说明。
[0099] 在本发明实施例中,告警信息包括源文件名称、提取路径,以及间隔第二时间间隔读取到的源数据文件的文件大小。
[0100] 请参阅图4,图4示出了本发明实施例提供的步骤S7中向预设的维护人员发送告警信息的具体实现流程,详述如下:
[0101] S701:获取源数据文件的重要性等级。
[0102] 在本发明实施例中,根据源数据文件的源文件名称和提取路径,获取源数据文件的重要性等级。
[0103] 具体地,预设的数据重要性关系对照表中保存了在每个提取路径下的原文件名称对应的源数据文件的重要性等级。通过查询该数据重要性关系对照表,获取源数据文件的重要性等级。
[0104] S702:根据源数据文件的重要性等级确定该源数据文件的告警级别。
[0105] 在本发明实施例中,预先设置了重要性等级与告警级别的对应关系,在该对应关系中,根据源数据文件的重要性等级,可以获取到该重要性等级对应的告警级别。
[0106] 具体地,重要性等级可以包括“非常重要”、“重要”、“一般”和“不重要”,告警级别可以包括一级告警、二级告警、三级告警和不告警。其中,对应关系为“非常重要”对应一级告警,“重要”对应二级告警,“一般”对应三级告警,“不重要”对应“不告警”。
[0107] S703:获取源数据文件的告警级别对应的告警接收方信息和告警方式。
[0108] 在本发明实施例中,根据步骤S702确定的告警级别,按照预先为每种告警级别设置的告警接收方信息和告警方式,获取该告警级别对应的告警接收方信息和告警方式。
[0109] 告警接收方信息具体可以包括接收告警的维护人员的联系信息,该联系信息可以是电话号码、即时通讯号码或者邮箱地址等,告警方式具体可以包括电话告警、即时消息告警或者邮件告警等。
[0110] 不同的告警级对应不同的告警接收方信息和告警方式,例如,一级告警对应的告警接收方信息可以包括相关领导人员的联系信息,其对应的告警方式可以是直接电话告警,而三级告警对应的告警接收方信息可以包括普通维护人员的联系信息,其对应的告警方式可以是邮件告警。
[0111] S704:按照告警接收方信息和告警方式发送告警信息。
[0112] 在本发明实施例中,根据步骤S703确定的告警接收方信息和告警方式发送告警信息。例如,若告警方式为邮件告警,则将告警信息按照告警接收方的邮箱地址,通过邮件方式发动到告警接收方的维护人员。
[0113] 告警信息包括源数据文件的源文件名称、提取路径,以及间隔第二时间间隔读取到的源数据文件的文件大小。将间隔第二时间间隔连续读取到的源数据文件的文件大小发送给维护人员,有助于维护人员对源数据文件状态的了解,并能够依据文件大小的变化情况分析故障原因,提高维护人员故障排查的效率。
[0114] 需要说明的是,在向维护人员发送告警信息后,如果维护人员一直没有响应,则可以定时持续发送,直到接收到维护人员的响应后停止发送该告警信息。
[0115] 在图4对应的实施例中,根据源数据文件的重要性等级确定其对应的告警级别,并根据告警级别对应的告警接收方信息和告警方式,向维护人员发送告警信息,实现了通过预警机制及时向预设的维护人员发送告警信息,并通过不同的告警级别有针对性的发送告警信息,使得相关维护人员能够及时排查和解决故障,确保在同步完成时间到达之前能够及时完成数据同步,从而使数据使用者能够正常使用同步后的数据,避免同步失败或者同步数据错误造成的影响。
[0116] 应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0117] 对应于上文实施例所述的数据同步的方法,图5示出了本发明实施例提供的数据同步的装置的结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。
[0118] 请参阅图5,该数据同步的装置包括:请求接收模块51、源文件确定模块52、时间确定模块53、源数据获取模块54、源数据校验模块55、数据同步模块56和告警模块57,各功能模块详细说明如下:
[0119] 请求接收模块51,用于接收数据同步请求,其中,该数据同步请求包括源数据文件的标识信息以及同步完成时间;
[0120] 源文件确定模块52,用于根据源数据文件的标识信息,确定源数据文件的源文件名称,以及该源文件名称对应的提取路径;
[0121] 时间确定模块53,用于根据同步完成时间,确定源数据文件的校验时间和同步执行时间;
[0122] 源数据获取模块54,用于在当前时间到达校验时间时,根据源文件名称和提取路径,获取源数据文件;
[0123] 源数据校验模块55,用于在当前时间早于或到达同步执行时间时,若源数据文件获取成功并且该源数据文件的文件大小在当前时间之前的预定时间范围内保持不变,则确认该源数据文件已准备好,否则,确认该源数据文件未准备好;
[0124] 数据同步模块56,用于若源数据文件已准备好,则对该源数据文件进行数据同步;
[0125] 告警模块57,用于若在当前时间到达同步执行时间时源数据文件未准备好,则向预设的维护人员发送告警信息。
[0126] 进一步地,源数据获取模块54包括:
[0127] 第一判断子模块541,用于在当前时间到校验时间时,判断在提取路径下是否存在源文件名称;
[0128] 判断成功子模块542,用于若在提取路径下存在源文件名称,则确认源数据文件存在;
[0129] 判断失败子模块543,用于若在提取路径下不存在源文件名称,则在当前时间到达同步执行时间前,每隔预定的第一时间间隔继续判断在该提取路径下是否存在该源文件名称,直到确认源数据文件存在或者当前时间到达同步执行时间为止;
[0130] 第二判断子模块544,用于若当前时间到达同步执行时间并且在提取路径下不存在源文件名称,则确认源数据文件不存在;
[0131] 文件获取子模块545,用于若源数据文件存在,则根据源文件名称获取该源数据文件,否则,若源数据文件不存在,则确认该源数据文件获取失败。
[0132] 进一步地,源数据校验模块55包括:
[0133] 读取子模块551,用于在当前时间早于或到达同步执行时间时,若源数据文件获取成功,则间隔预定的第二时间间隔读取源数据文件的文件大小;
[0134] 确认子模块552,用于若连续预设次数读取的源数据文件的文件大小保持不变,则确认该源数据文件已准备好,否则,若当前时间到达同步执行时间时连续预设次数读取的源数据文件的文件大小仍存在变化,则确认该源数据文件未准备好。
[0135] 进一步地,数据同步模块56还用于:
[0136] 使用distcp命令将所述源数据文件从源数据集群同步到目标数据集群。
[0137] 进一步地,告警信息包括源文件名称、提取路径,以及间隔第二时间间隔读取到的源数据文件的文件大小,告警模块57包括:
[0138] 重要等级子模块571,用于获取源数据文件的重要性等级;
[0139] 告警级别子模块572,用于根据重要性等级确定源数据文件的告警级别;
[0140] 告警方式子模块573,用于获取告警级别对应的告警接收方信息和告警方式;
[0141] 告警发送子模块574,用于按照告警接收方信息和告警方式发送告警信息。
[0142] 本实施例提供的一种数据同步的装置中各模块实现各自功能的过程,具体可参考前述方法实施例的描述,此处不再赘述。
[0143] 本实施例还提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现前述方法实施例中的数据同步的方法,或者,该计算机程序被处理器执行时前述装置实施例中数据同步的装置中各模块/单元的功能,为避免重复,这里不再赘述。
[0144] 请参阅图6,图6是本发明一实施例提供的终端设备的示意图。如图6所示,该实施例的终端设备6包括:处理器60、存储器61以及存储在存储器61中并可在处理器60上运行的计算机程序62,例如数据同步程序。处理器60执行计算机程序62时实现上述各个数据同步的方法实施例中的步骤,例如图1所示的步骤S1至步骤S7。或者,处理器60执行计算机程序62时实现上述各装置实施例中各单元的功能,例如图5所示模块51至模块57的功能。
[0145] 示例性的,计算机程序62可以被分割成一个或多个单元,一个或者多个单元被存储在存储器61中,并由处理器60执行,以完成本发明。一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序62在所述终端设备6中的执行过程。例如,计算机程序62可以被分割成请求接收模块、源文件确定模块、时间确定模块、源数据获取模块、源数据校验模块、数据同步模块和告警模块,各模块具体功能如下:
[0146] 请求接收模块,用于接收数据同步请求,其中,该数据同步请求包括源数据文件的标识信息以及同步完成时间;
[0147] 源文件确定模块,用于根据源数据文件的标识信息,确定源数据文件的源文件名称,以及该源文件名称对应的提取路径;
[0148] 时间确定模块,用于根据同步完成时间,确定源数据文件的校验时间和同步执行时间;
[0149] 源数据获取模块,用于在当前时间到达校验时间时,根据源文件名称和提取路径,获取源数据文件;
[0150] 源数据校验模块,用于在当前时间早于或到达同步执行时间时,若源数据文件获取成功并且该源数据文件的文件大小在当前时间之前的预定时间范围内保持不变,则确认该源数据文件已准备好,否则,确认该源数据文件未准备好;
[0151] 数据同步模块,用于若源数据文件已准备好,则对该源数据文件进行数据同步;
[0152] 告警模块,用于若在当前时间到达同步执行时间时源数据文件未准备好,则向预设的维护人员发送告警信息。
[0153] 进一步地,源数据获取模块包括:
[0154] 第一判断子模块,用于在当前时间到校验时间时,判断在提取路径下是否存在源文件名称;
[0155] 判断成功子模块,用于若在提取路径下存在源文件名称,则确认源数据文件存在;
[0156] 判断失败子模块,用于若在提取路径下不存在源文件名称,则在当前时间到达同步执行时间前,每隔预定的第一时间间隔继续判断在该提取路径下是否存在该源文件名称,直到确认源数据文件存在或者当前时间到达同步执行时间为止;
[0157] 第二判断子模块,用于若当前时间到达同步执行时间并且在提取路径下不存在源文件名称,则确认源数据文件不存在;
[0158] 文件获取子模块,用于若源数据文件存在,则根据源文件名称获取该源数据文件,否则,若源数据文件不存在,则确认该源数据文件获取失败。
[0159] 进一步地,源数据校验模块包括:
[0160] 读取子模块,用于在当前时间早于或到达同步执行时间时,若源数据文件获取成功,则间隔预定的第二时间间隔读取源数据文件的文件大小;
[0161] 确认子模块,用于若连续预设次数读取的源数据文件的文件大小保持不变,则确认该源数据文件已准备好,否则,若当前时间到达同步执行时间时连续预设次数读取的源数据文件的文件大小仍存在变化,则确认该源数据文件未准备好。
[0162] 进一步地,数据同步模块还用于:
[0163] 使用distcp命令将所述源数据文件从源数据集群同步到目标数据集群。
[0164] 进一步地,告警信息包括源文件名称、提取路径,以及间隔第二时间间隔读取到的源数据文件的文件大小,告警模块包括:
[0165] 重要等级子模块,用于获取源数据文件的重要性等级;
[0166] 告警级别子模块,用于根据重要性等级确定源数据文件的告警级别;
[0167] 告警方式子模块,用于获取告警级别对应的告警接收方信息和告警方式;
[0168] 告警发送子模块,用于按照告警接收方信息和告警方式发送告警信息。
[0169] 终端设备6可以是桌上型计算机、笔记本、掌上电脑及服务器等终端设备。终端设备6可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是终端设备6的示例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备5还可以包括输入输出设备、网络接入设备、总线等。
[0170] 处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0171] 存储器61可以是终端设备6的内部存储单元,例如终端设备6的硬盘或内存。存储器61也可以是终端设备6的外部存储设备,例如终端设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器61还可以既包括终端设备6的内部存储单元也包括外部存储设备。存储器
61用于存储所述计算机程序以及终端设备6所需的其他程序和数据。存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
[0172] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0173] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0174] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0175] 在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0176] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0177] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0178] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0179] 以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈