一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

话单信息重复判断方法及装置与流程

2022-03-08 22:51:00 来源:中国专利 TAG:


1.本发明涉及业务支撑领域,具体涉及一种话单信息重复判断方法及装置。


背景技术:

2.在电信企业计费账务处理过程中,为了避免给用户多计费,基于话单主键进行话单信息重复判断处理是必不可少的环节,现有绝大多数话单重复判断处理都是基于在关系型数据库如oracle数据库中建立剔重表来进行。具体的,剔重时将话单主键作为剔重表的主键,当接收一张话单时向该话单对应类型的剔重表插入该话单的主键,如果插入成功表示没有重单,否则表明有重单。
3.现有基于关系型数据库建立剔重表方式进行剔重的优点是简单快捷,但缺点是会占用核心数据库大量的存储空间和io、成本昂贵。随着移动互联网业务的磅礴发展,计费系统接收的话单量成指数曲线急速增长,导致剔重表占用的空间和io消耗也急剧增长,增加成本开销。


技术实现要素:

4.鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的话单信息重复判断方法及装置。
5.根据本发明的一个方面,提供了一种话单信息重复判断方法,其包括:
6.接收步骤,接收一条话单信息,提取话单信息的话单主键;
7.第一判断步骤,判断话单主键是否存在布隆过滤器中;若否,将话单主键存储在布隆过滤器中,并执行存储步骤;若是,执行第二判断步骤;
8.第二判断步骤,查询话单主键是否存储在指定数据库中;若否,执行存储步骤;若是,执行重单步骤;
9.存储步骤,将话单信息的话单主键存储在指定数据库中,并返回话单信息非重复话单信息;
10.重单步骤,记录并返回话单信息为重复话单信息。
11.根据本发明的另一方面,提供了一种话单信息重复判断装置,其包括:
12.接收模块,适于接收一条话单信息,提取话单信息的话单主键;
13.第一判断模块,适于判断话单主键是否存在布隆过滤器中;若否,将话单主键存储在布隆过滤器中,并执行存储模块;若是,执行第二判断模块;
14.第二判断模块,适于查询话单主键是否存储在指定数据库中;若否,执行存储模块;若是,执行重单模块;
15.存储模块,适于将话单信息的话单主键存储在指定数据库中,并返回话单信息非重复话单信息;
16.重单模块,适于记录并返回话单信息为重复话单信息。
17.根据本发明的又一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和
通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
18.所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述话单信息重复判断方法对应的操作。
19.根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述话单信息重复判断方法对应的操作。
20.根据本发明的话单信息重复判断方法及装置,接收步骤,接收一条话单信息,提取话单信息的话单主键;第一判断步骤,判断话单主键是否存在布隆过滤器中;若否,将话单主键存储在布隆过滤器中,并执行存储步骤;若是,执行第二判断步骤;第二判断步骤,查询话单主键是否存储在指定数据库中;若否,执行存储步骤;若是,执行重单步骤;存储步骤,将话单信息的话单主键存储在指定数据库中,并返回话单信息非重复话单信息;重单步骤,记录并返回话单信息为重复话单信息。本发明采用布隆过滤器对话单信息进行快速地第一级剔重判断,提升剔重速度。当布隆过滤器在判断时发现有重复话单主键时,通过指定数据库再次进行验证是否为重复话单信息,保障重单判断的准确性。进一步,本发明可以利用低廉的x86服务器,有效地提高剔重效率,降低成本消耗,且扩展性好。
21.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
22.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
23.图1示出了根据本发明一个实施例的话单信息重复判断方法的流程图;
24.图2示出了根据本发明一个实施例的话单信息重复判断装置的功能框图;
25.图3示出了根据本发明一个实施例的一种电子设备的结构示意图。
具体实施方式
26.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
27.图1示出了根据本发明一个实施例的话单信息重复判断方法的流程图。如图1所示,话单信息重复判断方法具体包括如下步骤:
28.步骤s101,接收一条话单信息,提取话单信息的话单主键。
29.话单信息记录了用户的每次通话情况,若话单信息重复,会导致对用户多计费问题。因此,话单信息的剔重尤为重要。本实施例当接收到一条话单信息后,需要对该条话单信息进行重复判断。在进行重复判断时,基于提取到的话单信息的话单主键进行重复判断。话单主键包括如号码、开始时间等。号码可以为被叫号码等。话单主键可以根据实施情况设
置,此处不做限定。
30.步骤s102,判断话单主键是否存在布隆过滤器中。
31.布隆过滤器(bloomfilter)采用概率型数据结构,利用位数组表示一个集合,判断一个元素是否属于这个集合。一个空的布隆过滤器由长度为m的bit数组构成,且所有位都初始化0。一个元素可以通过k个不同的散列函数转换为随机散列到bit数组的k个位置上(也可以通过一个散列函数输出到k个位置),k小于m。
32.布隆过滤器的存储空间和插入/查询时间都是常数,可以高效地插入和查询。另外,散列函数相互之间没有关系,方便由硬件并行实现。布隆过滤器不需要存储元素本身,在某些对保密要求非常严格的场合有优势。布隆过滤器的特点是可以用来确认某样东西一定不存在或者可能存在。相比于传统的list、set、map等数据结构,更高效、占用空间更少。且使用布隆过滤器可以快速判断元素是否存在,避免很多不必要的磁盘io操作。
33.具体将布隆过滤器应用于本实施例时,对于话单信息,需要设置布隆过滤器的长度、散列函数个数或散列函数进行计算得到的散列值等。布隆过滤器的长度m及散列函数计算得到的散列值k需要根据话单类型的处理量n和话单允许重复率p设置。具体设置如下公式所示:
[0034][0035][0036]
话单信息本身的处理量巨大,本实施例可以针对不同的话单类型设计不同的布隆过滤器,根据各个话单类型的处理量、话单允许重复率来确定布隆过滤器的长度及散列函数计算得到的散列值,降低布隆过滤器的设置难度,也方便针对话单信息基于不同话单类型来进行重复判断,提高剔重准确率。对于话单允许重复率可以设置为如1%以下,保障散列函数计算得到的散列值范围足够,降低散列值可能存在的冲突问题。
[0037]
在得到话单主键后,先确定话单类型,根据话单类型确定对应的布隆过滤器。使用布隆过滤器的散列函数对话单主键进行计算,得到对应的散列值。判断该布隆过滤器中散列值对应位置的数据是否均为1,若是,则判断话单主键存在布隆过滤器中。考虑到布隆过滤器能够准确判断一个元素不在集合内,对于一个元素在集合内的判断不是完全确定的。如话单主键x经过散列函数计算后,得到对应的散列值k,对应布隆过滤器中的k个位置,若k个位置的k个数据中间存在为0的,说明话单主键x不在布隆过滤器存储的集合s中。若k个位置全为1,一种可能为话单主键x已经存在这个集合s中,另一种可能为其他多个话单主键存储在布隆过滤器时,分别对应了k个位置中的部分位置,多个话单主键的存储使得这k个位置的数据均为1。基于上述问题,当判断话单主键不存在布隆过滤器中时,可以准确的确定话单主键不存在重复,则执行步骤s103,否则,还不能直接确定话单主键存在重复,还需要对其进行进一步的判断,执行步骤s104。
[0038]
进一步,布隆过滤器部署在redis分布缓存中,可以利用redis的setbit和getbit操作,将话单主键存储在布隆过滤器中或获取布隆过滤器中存储的话单主键来进行重复判断等。
[0039]
步骤s103,将话单主键存储在布隆过滤器中。
[0040]
在判断话单主键不存在布隆过滤器后,根据使用布隆过滤器的散列函数对话单主键进行计算所得到的散列值,对应的将布隆过滤器中散列值对应位置的数据设置为1,从而将话单主键存储在布隆过滤器中,并可以确定话单信息不是重复的话单信息,执行步骤s106。
[0041]
步骤s104,查询话单主键是否存储在指定数据库中。
[0042]
在判断话单主键存在布隆过滤器后,还需要进一步根据指定数据库中所存储的话单主键对其进行判断。具体的,查询指定数据库中的用于剔除的话单数据,判断当前的话单主键是否存储在指定数据库中,若否,确定话单主键不存在重复,执行步骤s106;若是,说明话单主键存在重复,执行步骤s105。
[0043]
进一步,指定数据库可以针对不同话单类型设置不同的数据表,分别存储对应的话单类型的话单主键,提供判断效率。
[0044]
进一步,指定数据库可以为如基于x86架构的非关系型数据库或轻量级关系型数据库,节省成本消耗。优选地,指定数据库采用hadoop数据库,可以适用于话单信息的大数据量存储,且扩展性好。
[0045]
步骤s105,记录并返回话单信息为重复话单信息。
[0046]
在确定话单主键存储在指定数据库中后,可以记录话单信息为重复话单信息,并返回对应的重复话单信息记录,以便对其进行剔重。
[0047]
步骤s106,将话单信息的话单主键存储在指定数据库中,并返回话单信息非重复话单信息。
[0048]
在确定话单信息不是重复话单信息后,将话单信息的话单主键存储在指定数据库中,以备后续使用话单主键对其他话单主键进行重复判断。同时,返回话单信息非重复话单信息,用于后续对用户进行计费等操作。
[0049]
根据本发明提供的话单信息重复判断方法,接收步骤,接收一条话单信息,提取话单信息的话单主键;第一判断步骤,判断话单主键是否存在布隆过滤器中;若否,将话单主键存储在布隆过滤器中,并执行存储步骤;若是,执行第二判断步骤;第二判断步骤,查询话单主键是否存储在指定数据库中;若否,执行存储步骤;若是,执行重单步骤;存储步骤,将话单信息的话单主键存储在指定数据库中,并返回话单信息非重复话单信息;重单步骤,记录并返回话单信息为重复话单信息。本发明采用布隆过滤器对话单信息进行快速地第一级剔重判断,提升剔重速度。当布隆过滤器在判断时发现有重复话单主键时,通过指定数据库再次进行验证是否为重复话单信息,保障重单判断的准确性。进一步,本发明可以利用低廉的x86服务器,有效地提高剔重效率,降低成本消耗,且扩展性好。
[0050]
图2示出了根据本发明一个实施例的话单信息重复判断装置的功能框图。如图2所示,话单信息重复判断装置包括如下模块:
[0051]
接收模块210,适于接收话单信息,提取话单信息的话单主键;
[0052]
第一判断模块220,适于判断话单主键是否存在布隆过滤器中;若否,将话单主键存储在布隆过滤器中,并执行存储模块240;若是,执行第二判断模块230;
[0053]
第二判断模块230,适于查询话单主键是否存储在指定数据库中;若否,执行存储模块240;若是,执行重单模块250;
[0054]
存储模块240,适于将话单信息的话单主键存储在指定数据库中,并返回话单信息
非重复话单信息;
[0055]
重单模块250,适于记录并返回话单信息为重复话单信息。
[0056]
可选地,第一判断模块220进一步适于:使用散列函数对话单主键进行计算,得到对应的散列值;判断布隆过滤器中散列值对应位置的数据是否均为1;若是,判断话单主键存在布隆过滤器中。
[0057]
可选地,第一判断模块220进一步适于:将布隆过滤器中散列值对应位置的数据设置为1。
[0058]
可选地,指定数据库为基于x86架构的非关系型数据库或轻量级关系型数据库。
[0059]
可选地,指定数据库为hadoop数据库。
[0060]
可选地,布隆过滤器的长度及散列函数计算得到的散列值根据话单类型的处理量和话单允许重复率设置。
[0061]
可选地,布隆过滤器部署在redis分布缓存中。
[0062]
以上各模块的描述参照方法实施例中对应的描述,在此不再赘述。
[0063]
本技术还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的话单信息重复判断方法。
[0064]
图3示出了根据本发明一个实施例的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
[0065]
如图3所示,该电子设备可以包括:处理器(processor)302、通信接口(communications interface)304、存储器(memory)306、以及通信总线308。
[0066]
其中:
[0067]
处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。
[0068]
通信接口304,用于与其它设备比如客户端或其它服务器等的网元通信。
[0069]
处理器302,用于执行程序310,具体可以执行上述话单信息重复判断方法实施例中的相关步骤。
[0070]
具体地,程序310可以包括程序代码,该程序代码包括计算机操作指令。
[0071]
处理器302可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
[0072]
存储器306,用于存放程序310。存储器306可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0073]
程序310具体可以用于使得处理器302执行上述任意方法实施例中的话单信息重复判断方法。程序310中各步骤的具体实现可以参见上述话单信息重复判断实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
[0074]
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求
的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0075]
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0076]
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0077]
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0078]
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0079]
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的话单信息重复判断装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0080]
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项
来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献