本申请涉及通信计算机,尤其涉及一种数据排重方法、装置、设备及存储介质。
背景技术:
1、文件排重是指对海量文件进行比对分析,从而从海量文件中查找出重复文件,以达到节省存储资源的目的。
2、现有技术中为了实现文件排重,通常采用如下方式:将一定时间内的排重信息加载至内存库,应用程序端在处理文件期间,实时从内存库中查询排重信息,从而达到排重目的。
3、当发生容灾切换时,除了需要部署额外的容灾应用外,上述排重方式只能准实时地将内存库中的排重信息同步到容灾中心,容灾性能偏低,数据丢失风险高。
技术实现思路
1、本申请的主要目的在于提供一种数据排重方法、装置、设备及存储介质,旨在解决现有容灾性能偏低,数据丢失风险高的技术问题。
2、为实现上述目的,本申请提供一种数据排重方法,所述数据排重方法包括:
3、在检测到应用程序的排重请求时,确定所述排重请求对应第一数据的第一关键信息,所述排重请求用于检查所述排重请求对应的排重数据中是否存在与所述第一数据重复的第二数据;
4、确定超级账本的世界状态中是否存在与所述第一关键信息一致的第二关键信息,所述超级账本中的世界状态用于存储关键信息;
5、若未存在所述第二关键信息,确定所述排重请求对应的排重数据中未存在与所述第一数据重复的第二数据。
6、可选地,所述确定区块链超级账本的世界状态中是否存在与所述第一关键信息一致的第二关键信息的步骤之后,所述方法包括:
7、若存在所述第二关键信息,获取所述世界状态中针对所述排重请求的返回数据;
8、根据所述返回数据,确定所述排重请求对应的排重数据中是否存在与所述第一数据重复的第二数据。
9、可选地,所述第一数据为话单文件,所述根据所述返回数据,确定所述排重请求对应的排重数据中是否存在与所述第一数据重复的第二数据的步骤,包括:
10、从所述排重请求中提取得到第一话单开始时间以及第一话单结束时间;
11、从所述返回数据中解析出第二话单开始时间和第二话单结束时间;
12、确定由所述第一话单开始时间以及第一话单结束时间构成的第一时间段,是否包含在由所述第二话单开始时间和所述第二话单结束时间构成的第二时间段内;
13、若包含在由所述第二话单开始时间和所述第二话单结束时间构成的第二时间段内,则确定排重请求对应排重数据中未存在与所述第一数据重复的第二数据。
14、可选地,所述确定由所述第一话单开始时间以及第一话单结束时间构成的第一时间段,是否包含在由所述第二话单开始时间和所述第二话单结束时间构成的第二时间段内的步骤之后,所述方法包括:
15、若未包含在由所述第二话单开始时间和所述第二话单结束时间构成的第二时间段内,则确定排重请求对应排重数据中存在与所述第一数据重复的第二数据;
16、若存在与所述第一数据重复的第二数据,则确定不存储所述第一数据对应的第一关键信息。
17、可选地,所述若未存在所述第二关键信息,确定所述排重请求对应的排重数据中未存在与所述第一数据重复的第二数据的步骤之后,所述方法包括:
18、获取应用程序提交的写入请求,其中,所述应用程序在确定未存在与所述第一数据重复的第二数据后,触发生成所述写入请求;
19、基于所述写入请求写入并保存所述第一数据;
20、将所述第一数据的第一关键信息保存至所述世界状态中。
21、可选地,所述在检测到应用程序的排重请求时,确定所述排重请求对应第一数据的第一关键信息的步骤,包括:
22、在检测到应用程序的排重请求时,确定所述排重请求对应第一数据的用户标识、话单特征码、第一话单开始时间以及第一话单结束时间;
23、确定所述用户标识的第一散列值以及所述话单特征码的第二散列值;
24、基于所述第一散列值、所述第二散列值、所述第一话单开始时间以及第一话单结束时间,确定所述排重请求对应第一数据的第一关键信息。
25、可选地,所述确定所述用户标识的第一散列值以及所述话单特征码的第二散列值的步骤,包括:
26、对所述用户标识进行md5取值,得到第一取值,将第一取值第一预设字符处的字符值作为第一散列值;
27、对所述话单特征码进行md5取值,得到第二取值,将第二取值第二预设字符处的字符值作为第二散列值。
28、本申请还提供一种数据排重装置,所述数据排重装置包括:
29、第一确定模块,用于在检测到应用程序的排重请求时,确定所述排重请求对应第一数据的第一关键信息;
30、第二确定模块,用于确定区块链超级账本的世界状态中是否存在与所述第一关键信息一致的第二关键信息;
31、其中,所述超级账本中的世界状态用于存储关键信息;
32、第三确定模块,用于若未存在所述第二关键信息,确定所述排重请求对应的排重数据中未存在与所述第一数据重复的第二数据。
33、本申请还提供一种数据排重设备,所述数据排重设备为实体节点设备,所述数据排重设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述数据排重方法的程序,所述数据排重方法的程序被处理器执行时可实现如上述所述数据排重方法的步骤。
34、本申请还提供一种存储介质,所述存储介质上存储有实现上述数据排重方法的程序,所述数据排重方法的程序被处理器执行时实现如上述所述数据排重方法的步骤。
35、本申请还提供一种计算机程序产品、包括计算机程序,该计算机程序被处理器执行时实现上述所述数据排重方法的步骤。
36、本申请提供一种数据排重方法、装置、设备及存储介质,与现有技术基于内存库排重,致使数据排重容灾性能偏低,数据丢失风险高相比,在本申请中,在检测到应用程序的排重请求时,确定所述排重请求对应第一数据的第一关键信息,所述排重请求用于检查所述排重请求对应的排重数据中是否存在与所述第一数据重复的第二数据;确定超级账本的世界状态中是否存在与所述第一关键信息一致的第二关键信息,所述超级账本中的世界状态用于存储关键信息;若未存在所述第二关键信息,确定所述排重请求对应的排重数据中未存在与所述第一数据重复的第二数据,可以理解,当应用程序发起排重请求时,超级账本确定世界状态中是否存在与所述第一关键信息一致的第二关键信息,若未存在所述第二关键信息,确定所述排重请求对应的排重数据中未存在与所述第一数据重复的第二数据,由于本申请依托超级账本中的世界状态,用于保存关键信息,即通过超级账本这种分布式架构来保存各数据对应关键信息,进而实现排重过程的去中心化,由于实现排重的去中心化,因而具有更高的容灾性能,也不需要部署额外的容灾应用。
1.一种数据排重方法,其特征在于,所述数据排重方法包括:
2.根据权利要求1所述的数据排重方法,其特征在于,所述确定超级账本的世界状态中是否存在与所述第一关键信息一致的第二关键信息的步骤之后,所述方法包括:
3.如权利要求2所述的数据排重方法,其特征在于,所述第一数据为话单文件,所述根据所述返回数据,确定所述排重请求对应的排重数据中是否存在与所述第一数据重复的第二数据的步骤,包括:
4.如权利要求3所述的数据排重方法,其特征在于,所述确定由所述第一话单开始时间以及第一话单结束时间构成的第一时间段,是否包含在由所述第二话单开始时间和所述第二话单结束时间构成的第二时间段内的步骤之后,所述方法包括:
5.如权利要求1所述的数据排重方法,其特征在于,所述若未存在所述第二关键信息,确定所述排重请求对应的排重数据中未存在与所述第一数据重复的第二数据的步骤之后,所述方法包括:
6.如权利要求1-5任一项所述的数据排重方法,其特征在于,所述在检测到应用程序的排重请求时,确定所述排重请求对应第一数据的第一关键信息的步骤,包括:
7.如权利要求6所述的数据排重方法,其特征在于,所述确定所述用户标识的第一散列值以及所述话单特征码的第二散列值的步骤,包括:
8.一种数据排重装置,其特征在于,所述数据排重装置包括:
9.一种数据排重设备,其特征在于,所述数据排重设备包括:存储器、处理器以及存储在存储器上的用于实现所述数据排重方法的程序,
10.一种存储介质,其特征在于,所述存储介质上存储有实现数据排重方法的程序,所述实现数据排重方法的程序被处理器执行以实现如权利要求1至7中任一项所述数据排重方法的步骤。