CN114547050A - 批处理内容判重方法、系统、装置、终端设备及存储介质 - Google Patents
批处理内容判重方法、系统、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN114547050A CN114547050A CN202210101514.0A CN202210101514A CN114547050A CN 114547050 A CN114547050 A CN 114547050A CN 202210101514 A CN202210101514 A CN 202210101514A CN 114547050 A CN114547050 A CN 114547050A
- Authority
- CN
- China
- Prior art keywords
- batch
- judging
- feature code
- information
- distributed lock
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24539—Query rewriting; Transformation using cached or materialised query results
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种批处理内容判重方法、系统、装置、终端设备及存储介质,通过获取当前批次的各条明细;根据所述各条明细生成相应的字符串,并计算出所述字符串的信息摘要特征码;获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁;根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果。本发明提高了批处理内容判重的检测效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种批处理内容判重方法、系统、装置、终端设备及存储介质。
背景技术
随着互联网技术的发展,有许多行业需要大批量处理数据,例如教育、金融、税务等行业的数据;大型企业所管理的庞大的产品数据和交易数据;社会管理、城建等方面产生的大规模共性数据等。随着数据从不同平台处于离散、不统一和不规范的分布状况,向着数据的大集中或大集成的方向转变,从海量数据中提取大数据集进行快速地批量处理有广泛的实际需求,在分布式集群批处理的场景下,如何对大批量高并发的批次内容的可疑批次进行判重检测已成为数据批处理工程中日益突出的问题。
目前针对批处理内容判重检测的主要方式是按文件内容进行匹配,这种方法需要将新的批次内容与各个历史批次内容进行对比,因此每产生一个新的批次,都需要与每个历史文件做对比运算,因此需要较长的检测时间,进而影响用户体验。
因此,有必要提出一种提高批处理内容判重的检测效率的解决方案。
发明内容
本发明的主要目的在于提供一种批处理内容判重方法、系统、装置、终端设备及存储介质,旨在提高批处理内容判重的检测效率。
为实现上述目的,本发明提供一种批处理内容判重方法,所述批处理内容判重方法包括:
获取当前批次的各条明细;
根据所述各条明细生成相应的字符串,并计算出所述字符串的信息摘要特征码;
获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁;
根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果。
可选地,所述获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁的步骤之后还包括:
判断是否获取到所述远程字典缓存服务中所述信息摘要特征码对应的分布式锁;
若未获取到所述远程字典缓存服务中所述信息摘要特征码对应的分布式锁,则等待预设时间后,返回执行所述获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁的步骤以及后续步骤。
可选地,所述根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果的步骤包括:
根据所述分布式锁对所述远程字典缓存服务进行查询调用,得到查询数据;
判断所述查询数据中是否存在值为所述信息摘要特征码的缓存数据;
若所述查询数据中存在值为所述信息摘要特征码的缓存数据,则判定所述当前批次可疑;
若所述查询数据中不存在值为所述信息摘要特征码的缓存数据,则判定所述当前批次合规,并将所述值为所述信息摘要特征码的缓存数据插入到所述远程字典缓存服务中;
将判定所述当前批次可疑或合规的结果作为所述判重结果。
可选地,所述根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果的步骤之后还包括:
释放所述信息摘要特征码对应的分布式锁;
返回所述判重结果。
可选地,所述根据所述各条明细生成相应的字符串,并计算出所述字符串的信息摘要特征码的步骤包括:
提取所述各条明细的关键要素;
将所述关键要素按相同顺序进行拼接,得到拼接串;
将所述拼接串放入拼接串列表;
对所述拼接串列表进行排序,并将排序后的拼接串列表拼接为一个字符串;
计算出所述字符串的信息摘要特征码。
可选地,所述对所述拼接串列表进行排序,并将排序后的拼接串列表拼接为一个字符串的步骤包括:
对所述拼接串列表按低位优先的字符串排序算法进行排序;
将排序后的拼接串列表逐条拼接为一个字符串。
此外,为实现上述目的,本发明还提供一种批处理内容判重系统,所述批处理内容判重系统包括:
外部应用,用于向批次处理服务集群发送批次请求,所述批次请求包括当前批次的各条明细;
批次处理服务集群,用于获取所述外部应用发送的批次请求中的当前批次的各条明细;根据所述各条明细生成相应的字符串,并计算出所述字符串的信息摘要特征码;获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁;根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果;
远程字典缓存服务,用于向所述批次处理服务集群提供所述信息摘要特征码对应的分布式锁;根据所述信息摘要特征码对应的分布式锁提供查询数据,存储所述批次处理服务集群插入的值为所述信息摘要特征码的缓存数据。
此外,为实现上述目的,本发明还提供一种批处理内容判重装置,所述批处理内容判重装置包括:
获取模块,用于获取当前批次的各条明细;
生成计算模块,用于根据所述各条明细生成相应的字符串,并计算出所述字符串的信息摘要特征码;
获取锁模块,用于获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁;
判重模块,用于根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果。
此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的批处理内容判重程序,所述批处理内容判重程序被所述处理器执行时实现如上所述的批处理内容判重方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有批处理内容判重程序,所述批处理内容判重程序被处理器执行时实现如上所述的批处理内容判重方法的步骤。
本发明实施例提出的一种批处理内容判重方法、装置、终端设备以及存储介质,通过获取当前批次的各条明细;根据所述各条明细生成相应的字符串,并计算出所述字符串的信息摘要特征码;获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁;根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果。通过根据当前批次生成字符串,并计算出信息摘要特征码,进而在远程字典缓存服务中进行查询以得到判重结果,无需将当前批次的内容与缓存服务中的内容进行一一匹配,从而极大地提高了检测效率,进而提升了用户体验。
附图说明
图1为本发明批处理内容判重装置所属终端设备的功能模块示意图;
图2为本发明批处理内容判重方法一示例性实施例的流程示意图;
图3为图2实施例中步骤S40的具体流程示意图;
图4为本发明实施例中批处理内容判重系统的工作原理示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:通过获取当前批次的各条明细;根据所述各条明细生成相应的字符串,并计算出所述字符串的信息摘要特征码;获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁;根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果。通过根据当前批次生成字符串,并计算出信息摘要特征码,进而在远程字典缓存服务中进行查询以得到判重结果,无需将当前批次的内容与缓存服务中的内容进行一一匹配,从而极大地提高了检测效率,进而提升了用户体验。
本发明实施例涉及的技术术语:
MD5(信息摘要算法,Message-Digest Algorithm):一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值,用于确保信息传输完整一致;
Redis(远程字典服务,Remote Dictionary Server):是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的API。
Hashmap(哈希映射):是一个散列表,所存储的内容是键值对(key-value) 映射。
由于现有技术针对批处理内容判重检测的主要方式是按文件内容进行匹配,这种方法需要将新的批次内容与各个历史批次内容进行对比,因此每产生一个新的批次,都需要与每个历史文件做对比运算,故需要较长的检测时间,进而影响用户体验。
本发明提供一种解决方案,通过计算当前批次的关键信息的信息摘要,然后保存到分布式缓存,后继批次的防重检验只要计算出相应的信息摘要,然后对比缓存中是否有相同的信息摘要就可以快速检测出当前文件是否可疑。由于不需要通过当前文件内容挨个跟已有文件内容匹配,尤其在大数据量和高并发的场景下,极大地提高了批次的检测效率,增强了商户的用户体验。
本发明解决了在分布式集群批处理的场景下,对大批量高并发的批次内容的可疑批次的检测,在处理速度上相比按文件内容匹配查重有了非常大的提升,原来对于新的批次内容需要跟历史的每个交易内容做比对,这样每次来一个新的交易,需要跟每个文件做对比运算。而改进后的方案,对历史交易内容做MD5存入到Hashmap的数据结构(Redis)中,需要对新的文件内容做一次MD5数据摘要,然后通过摘要在类似Hashmap的数据中做查找,如果查找到就认为可疑,这样整个匹配运算对于新的交易只需要对比MD5码就可以了,由于HashMap的查找速度为O(1),这样不管交易量多大,交易查重的速度不变。
具体地,参照图1,图1为本发明批处理内容判重装置所属终端设备的功能模块示意图。该批处理内容判重装置可以为独立于终端设备的、能够进行批处理内容判重的装置,其可以通过硬件或软件的形式承载于终端设备上。该终端设备可以为手机、平板电脑等具有数据处理功能的智能移动终端,还可以为具有数据处理功能的固定终端设备或服务器等。
在本实施例中,该批处理内容判重装置所属终端设备至少包括输出模块 110、处理器120、存储器130以及通信模块140。
存储器130中存储有操作系统以及批处理内容判重程序,批处理内容判重装置可以将获取的当前批次的各条明细、根据所述各条明细生成的相应的字符串、计算出的所述字符串的信息摘要特征码、获取的远程字典缓存服务中所述信息摘要特征码对应的分布式锁,以及根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,得到的判重结果等信息存储于该存储器130中;输出模块110可为显示屏等。通信模块140可以包括WIFI模块、移动通信模块以及蓝牙模块等,通过通信模块140与外部设备或服务器进行通信。
其中,存储器130中的批处理内容判重程序被处理器执行时实现以下步骤:
获取当前批次的各条明细;
根据所述各条明细生成相应的字符串,并计算出所述字符串的信息摘要特征码;
获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁;
根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果。
进一步地,存储器130中的批处理内容判重程序被处理器执行时还实现以下步骤:
判断是否获取到所述远程字典缓存服务中所述信息摘要特征码对应的分布式锁;
若未获取到所述远程字典缓存服务中所述信息摘要特征码对应的分布式锁,则等待预设时间后,返回执行所述获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁的步骤以及后续步骤。
进一步地,存储器130中的批处理内容判重程序被处理器执行时还实现以下步骤:
根据所述分布式锁对所述远程字典缓存服务进行查询调用,得到查询数据;
判断所述查询数据中是否存在值为所述信息摘要特征码的缓存数据;
若所述查询数据中存在值为所述信息摘要特征码的缓存数据,则判定所述当前批次可疑;
若所述查询数据中不存在值为所述信息摘要特征码的缓存数据,则判定所述当前批次合规,并将所述值为所述信息摘要特征码的缓存数据插入到所述远程字典缓存服务中;
将判定所述当前批次可疑或合规的结果作为所述判重结果。
进一步地,存储器130中的批处理内容判重程序被处理器执行时还实现以下步骤:
释放所述信息摘要特征码对应的分布式锁;
返回所述判重结果。
进一步地,存储器130中的批处理内容判重程序被处理器执行时还实现以下步骤:
提取所述各条明细的关键要素;
将所述关键要素按相同顺序进行拼接,得到拼接串;
将所述拼接串放入拼接串列表;
对所述拼接串列表进行排序,并将排序后的拼接串列表拼接为一个字符串;
计算出所述字符串的信息摘要特征码。
进一步地,存储器130中的批处理内容判重程序被处理器执行时还实现以下步骤:
对所述拼接串列表按低位优先的字符串排序算法进行排序;
将排序后的拼接串列表逐条拼接为一个字符串。
本实施例通过上述方案,具体通过获取当前批次的各条明细;根据所述各条明细生成相应的字符串,并计算出所述字符串的信息摘要特征码;获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁;根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果。通过根据当前批次生成字符串,并计算出信息摘要特征码,进而在远程字典缓存服务中进行查询以得到判重结果,无需将当前批次的内容与缓存服务中的内容进行一一匹配,从而极大地提高了检测速度,进而提升了用户体验。
基于上述终端设备架构但不限于上述架构,提出本发明方法实施例。
本实施例方法的执行主体可以为一种批处理内容判重装置或终端设备等,本实施例以批处理内容判重装置进行举例。
参照图2,图2为本发明批处理内容判重方法一示例性实施例的流程示意图。所述批处理内容判重方法包括:
步骤S10,获取当前批次的各条明细;
在数据仓库和大中型数据库的实际应用中,有许多行业需要大批量处理数据。例如一般情况下,机构是根据行政区域来设置的,而业务则是根据服务种类来划分,但发展趋势和方向是要不断适应当今信息时代数据大集中的要求,所以要求数据必须进行全集中管理。全集中管理的数据有:国家级、省部级、厅级的汇总数据;教育、金融、税务等行业的数据;大型企业所管理的庞大的产品数据和交易数据;社会管理、城建等方面产生的大规模共性数据等。而在批量处理数据过程中,如何对大批量高并发的批次内容的可疑批次进行判重检测已成为数据批处理工程中日益突出的问题。例如对于银行业务,为了满足资金监管的要求,需要从历史批次中快速找到重复批次,通过对可疑批次进行拦截可以避免给商户带来的资金上的损失。因此在分布式集群批处理的场景下,需要先获取当前批次的每条明细,进而提取出其中的关键要素。
步骤S20,根据所述各条明细生成相应的字符串,并计算出所述字符串的信息摘要特征码;
具体地,在获取到当前批次的各条明细后,需对各条明细的关键要素进行提取,然后将各条明细的关键要素按相同的拼接顺序拼接成拼接串,再将得到的拼接串放入拼接串列表中。
进一步地,对得到的拼接串列表进行排序,确保每个批次明细拼接串的排序算法相同,在本实施例中按照低位优先的字符串排序算法进行排序。然后将排序后的拼接串列表按逐条拼接为一个字符串,这样避免了相同批次由于明细顺序打乱而不能判重的问题。
在生成各条明细相应的字符串后,需进一步计算出字符串的MD5信息摘要特征码,从而获取名为MD5值的分布式锁。
步骤S30,获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁;
在批处理内容判重过程中,需要对Redis缓存服务进行查询调用和插入调用,而对Redis进行复合操作会引起多线程问题,所以需要先获取名为MD5 值的分布式锁。
在获取获取名为MD5值的分布式锁的步骤之后,需要对获取结果进行判断,如果获取名为MD5值的分布式锁失败,则在等待预设时间后重新执行获取名为MD5值的分布式锁的步骤,在本实施例中,所述等待预设时间为2秒。等待2秒后重新执行获取名为MD5值的分布式锁的步骤,以确保获取成功。
步骤S40,根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果。
获取到分布式锁后,通过MD5码进行Redis查询调用,判断是否存在值为MD5的缓存数据,如果已经存在,就认为当前批次重复或可疑,在得到判重结果后,需释放名为MD5值的分布式锁,以便于后继相同MD5码的批次请求能获取到分布式锁,然后返回内容判重结果。如果查询调用过程中发现不存在值为MD5的缓存数据,则在Redis缓存服务中插入以MD5码为Key的 Key/Value数据,并判定当前批次合规,然后同样地释放名为MD5值的分布式锁,以便于后继相同MD5码的批次请求能获取到分布式锁,然后返回内容判重结果。
在本实施例中,通过获取当前批次的各条明细;根据所述各条明细生成相应的字符串,并计算出所述字符串的信息摘要特征码;获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁;根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果。通过根据当前批次生成字符串,并计算出信息摘要特征码,进而在远程字典缓存服务中进行查询以得到判重结果,无需将当前批次的内容与缓存服务中的内容进行一一匹配,从而极大地提高了检测速度,进而提升了用户体验。
参照图3,图3为图2实施例中步骤S40的具体流程示意图。本实施例基于上述图2所示的实施例,在本实施例中,上述步骤S40包括:
步骤S401,根据所述分布式锁对所述远程字典缓存服务进行查询调用,得到查询数据;
获取到分布式锁后,通过MD5码进行Redis查询调用,从Redis缓存服务中得到查询数据,以判断其中是否存在值为MD5的缓存数据。
步骤S402,判断所述查询数据中是否存在值为所述信息摘要特征码的缓存数据;
对得到的查询数据进行判断,判断其中是否存在值为MD5的缓存数据。
步骤S403,若所述查询数据中存在值为所述信息摘要特征码的缓存数据,则判定所述当前批次可疑;
如果查询到已经存在值为MD5的缓存数据,就认为当前批次重复或可疑,在得到判重结果后,需释放名为MD5值的分布式锁,以便于后继相同MD5码的批次请求能获取到分布式锁。
步骤S404,若所述查询数据中不存在值为所述信息摘要特征码的缓存数据,则判定所述当前批次合规,并将所述值为所述信息摘要特征码的缓存数据插入到所述远程字典缓存服务中;
如果查询调用过程中发现不存在值为MD5的缓存数据,则在Redis缓存服务中插入以MD5码为Key的Key/Value数据,并判定当前批次合规,然后同样地释放名为MD5值的分布式锁,以便于后继相同MD5码的批次请求能获取到分布式锁。
步骤S405,将判定所述当前批次可疑或合规的结果作为所述判重结果。
根据判定的当前批次可疑或者合规的结果得出判重结果,并返回判重结果,以供用户快速找到重复批次,进而对可疑批次进行拦截。
本实施例通过上述方案,具体通过根据所述分布式锁对所述远程字典缓存服务进行查询调用,得到查询数据;判断所述查询数据中是否存在值为所述信息摘要特征码的缓存数据;若所述查询数据中存在值为所述信息摘要特征码的缓存数据,则判定所述当前批次可疑;若所述查询数据中不存在值为所述信息摘要特征码的缓存数据,则判定所述当前批次合规,并将所述值为所述信息摘要特征码的缓存数据插入到所述远程字典缓存服务中;将判定所述当前批次可疑或合规的结果作为所述判重结果。通过在远程字典缓存服务中进行查询得到判重结果,无需将当前批次的内容与缓存服务中的内容进行一一匹配,从而极大地提高了检测速度,进而提升了用户体验。
此外,本发明实施例还提出一种批处理内容判重系统,所述批处理内容判重系统包括:
外部应用,用于向批次处理服务集群发送批次请求,所述批次请求包括当前批次的各条明细;
批次处理服务集群,用于获取所述外部应用发送的批次请求中的当前批次的各条明细;根据所述各条明细生成相应的字符串,并计算出所述字符串的信息摘要特征码;获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁;根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果;
远程字典缓存服务,用于向所述批次处理服务集群提供所述信息摘要特征码对应的分布式锁;根据所述信息摘要特征码对应的分布式锁提供查询数据,存储所述批次处理服务集群插入的值为所述信息摘要特征码的缓存数据。
具体地,批处理内容判重系统对各批次请求的判重过程包括:
(1)对当前批次的每条明细的关键要素按相同的顺序拼接,确保每个批次明细的关键要素的拼接顺序相同,然后把拼接串放入一个列表中;
(2)对拼接串列表按低位优先的字符串排序算法进行排序,确保每个批次明细拼接串的排序算法相同,然后按逐条拼接成一个字符串,由此避免了相同批次由于明细顺序打乱而不能判重的问题;
(3)计算出字符串的MD5码;
(4)获取名为MD5码的Redis分布式锁,从步骤(6)、(7)所示,判重需要一个redis查询调用和一个插入调用,对于Redis复合操作,会引起多线程问题,所以需要先获取名为MD5值的分布式锁,;
(5)如果获取获取名为MD5码的Redis分布式锁失败,等待2秒,然后跳转步骤(4);
(6)获取分布式锁后,通过MD5码进行Redis查询调用,判断是否存在值为MD5的缓存数据,如果已经存在,就认为当前批次重复或可疑,跳转步骤(8)
(7)如果不存在值为MD5的缓存数据,就插入以MD5码为Key的 Key/Value数据到Redis缓存,就认为当前批次合规.
(8)释放名为MD5码的Redis分布式锁,以便后继相同MD5码的批次请求能获取到锁,然后进行步骤(5)的系统逻辑;
(9)返回判重结果。
参照图4,图4为本发明实施例中批处理内容判重系统的工作原理示意图,如图4所示,当外部应用中发送了两个相同内容的批次同时请求时,由批次处理服务集群先得到第一个批次请求对应的字符串,进而计算出所述字符串的MD5码,然后向Redis缓存服务获取名为MD5码的Redis分布式锁,而另一相同批次请求此时需要等待锁,当第一个批次请求通过MD5码进行Redis 查询调用,判断出是否存在值为MD5的缓存数据后,释放锁以供另一个批次请求能够获取到锁。此外,为了保证MD5缓存数据不丢失,导致判重失败,应该做Redis持久化,这样断机重启后保证MD5数据能及时恢复。
本发明实施例通过计算该批次的关键信息的信息摘要,然后保存到分布式缓存,后继批次的防重检验只要计算出自己的信息摘要,然后对比缓存中是否有相同的信息摘要就可以快速检测出当前文件是否可疑。由于不需要通过当前文件内容挨个跟已有文件内容匹配,尤其在大数据量和高并发的场景下,极大地提高了批次的检测速度,增强了商户的用户体验。解决了在分布式集群批处理的场景下,对大批量高并发的批次内容的可疑批次的检测,在处理速度上相比按文件内容匹配查重有了非常大的提升。
此外,本发明实施例还提出一种批处理内容判重装置,所述批处理内容判重装置包括:
获取模块,用于获取当前批次的各条明细;
生成计算模块,用于根据所述各条明细生成相应的字符串,并计算出所述字符串的信息摘要特征码;
获取锁模块,用于获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁;
判重模块,用于根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果。
本实施例实现批处理内容判重的原理及实施过程,请参照上述各实施例,在此不再赘述。
此外,本发明实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的批处理内容判重程序,所述批处理内容判重程序被所述处理器执行时实现如上所述的批处理内容判重方法的步骤。
由于本批处理内容判重程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有批处理内容判重程序,所述批处理内容判重程序被处理器执行时实现如上所述的批处理内容判重方法的步骤。
由于本批处理内容判重程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
相比现有技术,本发明实施例提出的批处理内容判重方法、系统、装置、终端设备及存储介质,通过获取当前批次的各条明细;根据所述各条明细生成相应的字符串,并计算出所述字符串的信息摘要特征码;获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁;根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果。通过根据当前批次生成字符串,并计算出信息摘要特征码,进而在远程字典缓存服务中进行查询以得到判重结果,无需将当前批次的内容与缓存服务中的内容进行一一匹配,从而极大地提高了检测速度,进而提升了用户体验。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,被控终端,或者网络设备等)执行本申请每个实施例的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种批处理内容判重方法,其特征在于,所述批处理内容判重方法包括以下步骤:
获取当前批次的各条明细;
根据所述各条明细生成相应的字符串,并计算出所述字符串的信息摘要特征码;
获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁;
根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果。
2.如权利要求1所述的批处理内容判重方法,其特征在于,所述获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁的步骤之后还包括:
判断是否获取到所述远程字典缓存服务中所述信息摘要特征码对应的分布式锁;
若未获取到所述远程字典缓存服务中所述信息摘要特征码对应的分布式锁,则等待预设时间后,返回执行所述获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁的步骤以及后续步骤。
3.如权利要求1所述的批处理内容判重方法,其特征在于,所述根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果的步骤包括:
根据所述分布式锁对所述远程字典缓存服务进行查询调用,得到查询数据;
判断所述查询数据中是否存在值为所述信息摘要特征码的缓存数据;
若所述查询数据中存在值为所述信息摘要特征码的缓存数据,则判定所述当前批次可疑;
若所述查询数据中不存在值为所述信息摘要特征码的缓存数据,则判定所述当前批次合规,并将所述值为所述信息摘要特征码的缓存数据插入到所述远程字典缓存服务中;
将判定所述当前批次可疑或合规的结果作为所述判重结果。
4.如权利要求1所述的批处理内容判重方法,其特征在于,所述根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果的步骤之后还包括:
释放所述信息摘要特征码对应的分布式锁;
返回所述判重结果。
5.如权利要求1所述的批处理内容判重方法,其特征在于,所述根据所述各条明细生成相应的字符串,并计算出所述字符串的信息摘要特征码的步骤包括:
提取所述各条明细的关键要素;
将所述关键要素按相同顺序进行拼接,得到拼接串;
将所述拼接串放入拼接串列表;
对所述拼接串列表进行排序,并将排序后的拼接串列表拼接为一个字符串;
计算出所述字符串的信息摘要特征码。
6.如权利要求5所述的批处理内容判重方法,其特征在于,所述对所述拼接串列表进行排序,并将排序后的拼接串列表拼接为一个字符串的步骤包括:
对所述拼接串列表按低位优先的字符串排序算法进行排序;
将排序后的拼接串列表逐条拼接为一个字符串。
7.一种批处理内容判重系统,其特征在于,所述批处理内容判重系统包括:
外部应用,用于向批次处理服务集群发送批次请求,所述批次请求包括当前批次的各条明细;
批次处理服务集群,用于获取所述外部应用发送的批次请求中的当前批次的各条明细;根据所述各条明细生成相应的字符串,并计算出所述字符串的信息摘要特征码;获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁;根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果;
远程字典缓存服务,用于向所述批次处理服务集群提供所述信息摘要特征码对应的分布式锁;根据所述信息摘要特征码对应的分布式锁提供查询数据,存储所述批次处理服务集群插入的值为所述信息摘要特征码的缓存数据。
8.一种批处理内容判重装置,其特征在于,所述批处理内容判重装置包括:
获取模块,用于获取当前批次的各条明细;
生成计算模块,用于根据所述各条明细生成相应的字符串,并计算出所述字符串的信息摘要特征码;
获取锁模块,用于获取远程字典缓存服务中所述信息摘要特征码对应的分布式锁;
判重模块,用于根据所述分布式锁对所述远程字典缓存服务进行查询调用,判断是否存在值为所述信息摘要特征码的缓存数据,以得到判重结果。
9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的批处理内容判重程序,所述批处理内容判重程序被所述处理器执行时实现如权利要求1-6中任一项所述的批处理内容判重方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有批处理内容判重程序,所述批处理内容判重程序被处理器执行时实现如权利要求1-6中任一项所述的批处理内容判重方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210101514.0A CN114547050A (zh) | 2022-01-27 | 2022-01-27 | 批处理内容判重方法、系统、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210101514.0A CN114547050A (zh) | 2022-01-27 | 2022-01-27 | 批处理内容判重方法、系统、装置、终端设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114547050A true CN114547050A (zh) | 2022-05-27 |
Family
ID=81672987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210101514.0A Pending CN114547050A (zh) | 2022-01-27 | 2022-01-27 | 批处理内容判重方法、系统、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114547050A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115632877A (zh) * | 2022-12-01 | 2023-01-20 | 成都九洲电子信息系统股份有限公司 | 一种大规模pcap数据正确性验证方法、系统及存储介质 |
-
2022
- 2022-01-27 CN CN202210101514.0A patent/CN114547050A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115632877A (zh) * | 2022-12-01 | 2023-01-20 | 成都九洲电子信息系统股份有限公司 | 一种大规模pcap数据正确性验证方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11030203B2 (en) | Machine learning detection of database injection attacks | |
CN111949710A (zh) | 数据存储方法、装置、服务器及存储介质 | |
CN109408507B (zh) | 多属性数据的处理方法、装置、设备及可读存储介质 | |
CN113282630B (zh) | 基于接口切换的数据查询方法及装置 | |
CN107357794B (zh) | 优化键值数据库的数据存储结构的方法和装置 | |
CN115145943A (zh) | 多数据源元数据快速比对方法、系统、设备和存储介质 | |
CN112559526A (zh) | 数据表导出方法、装置、计算机设备及存储介质 | |
CN114547050A (zh) | 批处理内容判重方法、系统、装置、终端设备及存储介质 | |
CN113761565A (zh) | 数据脱敏方法和装置 | |
CN116775167A (zh) | 一种业务处理方法、装置、电子设备及计算机可读介质 | |
CN116361287A (zh) | 路径解析方法、装置以及系统 | |
CN115455425A (zh) | 防护补丁生成方法、系统、设备及存储介质 | |
CN113596177B (zh) | 智能家居设备的ip地址的解析方法和装置 | |
CN115098503A (zh) | 空值数据处理方法、装置、计算机设备以及存储介质 | |
CN115329395A (zh) | 数据库的数据处理方法、装置、系统、设备及存储介质 | |
CN113704222A (zh) | 一种处理业务请求的方法和装置 | |
CN112765169A (zh) | 数据处理方法、装置、设备及存储介质 | |
US11347722B2 (en) | Big data regression verification method and big data regression verification apparatus | |
US11941004B1 (en) | System and method for executing database operations based on a policy | |
CN118170986A (zh) | Cim模式元素资源标识提取方法、系统、介质及设备 | |
CN117807607A (zh) | 一种区块链数据的校验方法、终端及存储介质 | |
CN116860210A (zh) | 一种业务处理方法、装置、电子设备及计算机可读介质 | |
CN113268987A (zh) | 一种实体名称识别方法、装置、电子设备和存储介质 | |
CN116414833A (zh) | 一种报表数据查询方法、装置、设备及介质 | |
CN117951155A (zh) | 数据处理方法、装置、电子设备及存储介质 |
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 |