CN118170806A - 一种提升通信运营商账户海量数据处理性能的方法 - Google Patents
一种提升通信运营商账户海量数据处理性能的方法 Download PDFInfo
- Publication number
- CN118170806A CN118170806A CN202410593715.6A CN202410593715A CN118170806A CN 118170806 A CN118170806 A CN 118170806A CN 202410593715 A CN202410593715 A CN 202410593715A CN 118170806 A CN118170806 A CN 118170806A
- Authority
- CN
- China
- Prior art keywords
- account
- data
- same
- negative
- positive
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000004891 communication Methods 0.000 title claims abstract description 43
- 238000001914 filtration Methods 0.000 claims abstract description 17
- 230000011218 segmentation Effects 0.000 claims abstract description 8
- 238000004080 punching Methods 0.000 claims description 30
- 230000008569 process Effects 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 4
- 230000009471 action Effects 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 3
- 230000008447 perception Effects 0.000 abstract description 4
- 238000003672 processing method Methods 0.000 abstract description 3
- 239000011159 matrix material Substances 0.000 description 7
- 238000013500 data storage Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 229940050561 matrix product Drugs 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种提升通信运营商账户海量数据处理性能的方法,涉及云计算技术领域。本发明预设大账户识别条件参数,识别大账户,针对同一大账户的相同异步消息进行过滤,根据过滤后的消息进行多线程分页取出基础数据,依据基础数据构造结构化数据进行正负冲抵,对正负冲抵后的剩余结果数据进行分段处理。本发明提出了创新的处理方法、优化了处理逻辑,突破系统性能瓶颈,以提升大账户海量数据交易处理能力,提升两级接口成功率,进而提升客户服务支撑感知。
Description
技术领域
本发明涉及云计算技术领域,尤其涉及大数据处理技术领域,更具体地说涉及一种提升通信运营商账户海量数据处理性能的方法。
背景技术
近年来,通信市场日趋饱和,运营商之间竞争压力加大,传统业务如语音、短信收入持续下降。在政企通信市场,产业数字化业务却得到蓬勃发展。
通信运营商账务系统对于海量数据业务的处理(例如政企行业大账户的查充缴业务)还存在性能瓶颈。
通信运营商政企大账户是政企客户单位的通信付费账户,账户下包含有成千上万的产品号码和大批量的通信账单。随着业务发展,通信运营商政企大账户数量和个性化业务逐年增多,系统提供的统一服务无法满足大账户业务支撑性能要求,在执行账户余额抵扣、查询、批量停复机等业务场景时,容易造成系统超时、拥堵,影响客户计费业务和客户感知。
发明内容
为了克服上述现有技术中存在的缺陷和不足,本发明提供了一种提升通信运营商账户海量数据处理性能的方法。本发明的发明目的在于解决大账户在查充缴中存在的问题,提升客户服务感知。本发明的提升通讯运营商账户海量数据处理性能的方法,提出了创新的处理方法、优化了处理逻辑,突破系统性能瓶颈,以提升大账户海量数据交易处理能力,提升两级接口成功率,进而提升客户服务支撑感知。
名词解释:
客户(Customer):指已经订购通信运营商销售品或可能订购通信运营商销售品的个人或组织。客户包括潜在客户、在网客户、离网客户和无效客户。
账户(Account):客户拥有的用来支付特定的通信运营商产品服务费用的实体。
线程(Thread):是操作系统能够进行运算的最小单位。同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。
生产者(Producer):是指向分布式消息队列发送消息的客户端。生产者可以使用异步或同步方式发送消息。本专利中的异步方式意味着生产者可以同时向多个主题发送消息,而不必等待确认消息是否成功发送。
消费者(Consumer):是指从分布式消息队列中读取消息的客户端。消费者可以按照消息的顺序进行读取,也可以根据时间戳或偏移量来读取消息。消费者可以以不同的方式处理消息,例如将消息写入外部存储,或对消息进行实时处理。
为了解决上述现有技术中存在的问题,本发明是通过下述技术方案实现的。
本发明提供了一种提升通信运营商账户海量数据处理性能的方法,该方法包括以下步骤:
S1、账户分级步骤,在通信运营商的融合计费账务系统中,通过分析融合计费账务系统典型应用处理效率及外部查询接口响应日志,预设大账户识别条件参数,将满足预设大账户识别条件之一的账户标识为大账户;
S2、大账户同类异步消息过滤步骤,针对同一大账户在预设时间范围内超出设定规模量的相同异步消息,进行消息过滤,该大账户后续的业务能力只执行一次;
S3、获取基础数据步骤,根据S2步骤过滤后的消息,从融合计费账务系统中的欠费索引表中定位表名,循环表名列表,多线程分页取出基础数据;
S4、构造结构化数据步骤,根据通信运营商业务要求以及S3步骤中取出的基础数据的特点,构造结构化数据;
所述构造结构化数据具体是指,将原始基础数据数值正负进行分组;正、负分组后的基础数据分别按账期属性分组;将按账期属性分组后得到的数据集再按照用户标识与账目类型或用户标识与编码属性分组;
从构造的结构化数据中取出同账期属性、同用户标识与同账目类型或同用户标识与编码属性的正负分组数据进行费用明细正负冲抵;
冲抵后,从冲抵后的数据中,将同账期、同用户标识的正负分组数据取出进行费用明细正负冲抵;
从同账期、同用户标识费用明细正负冲抵后的数据中,取出同账期的正负分组数据,进行费用明细正负冲抵;
从同账期的正负冲抵后的数据中,取出不同账期的正负分组数据,进行费用明细正负冲抵;
上述冲抵过程中,依次进行,直至负值分组中没有元素,冲抵结束;或者上述冲抵过程全部完成后,冲抵结束,得到剩余结果数据;
S5、分段处理步骤,将S4步骤得到的剩余结果数据进行分段,按照分段结果分别对分段后的剩余结果数据进行处理。
进一步优选的,S2步骤中,进行消息过滤具体是指,通信运营商的融合计费账务系统在接收生产者发送的消息时,指定key(键值)和groupId(账户标识),将相同groupId的消息归集在同一个队列内;
设置异步消息过滤的消费模式为有序消费,使得融合计费账务系统中的同一个消费者实例只会消费固定一个或几个队列里的消息;
在融合计费账务系统中的消费者实例内部设置缓存计数器和延迟队列,用以判断、记录相同key值的消息状态和触发动作。
更进一步优选的,融合计费账务系统中的消费者实例进行消息过滤的过程为,
S201、消费第一条消息时,记录该消息key值,同时缓存计数器由零变一,触发业务能力;
S202、消费第二条消息时,判断缓存计数器中是否存在相同key值的消息,如果存在,则缓存计数器由一变二,同时该第二条消息进入延迟队列;
S203、消费第三条消息时,判断缓存计数器中是否存在相同key的消息,如果存在,则对该第三条消息进行打标,不再触发;
S204、当延迟队列中的消息片达到时间要求后,进行业务出发,缓存计数器由二变一;
S205、当缓存计数器时间片达到时间要求后,缓存计数器清零。
更进一步优选的,所述预设时间范围是指,一个自然时间段,固定时间片,即操作一次业务所需要的时间;此功能是为了限制一个时间片内同一个账户能触发业务的最大次数。更进一步优选的,所述设定规模是指,达到达到大账户识别条件。
进一步优选的,S3步骤中,多线程分页取数的循环个数N的计算公式为:
N=⌈A/(T×P)⌉;式中,N表示多线程分页取数的循环个数;A表示单表基础数据总额;T表示线程池个数,默认为5;P表示单页条数;⌈*⌉符号表示向上取整。
进一步优选的,S4步骤中,所有冲抵中的费用明细正负冲抵的过程具体如下:
负值费用对象数组[A1,A2,A3,…,An],正值费用对象数组[B1,B2,B3,…,Bn],费用对象包含两个属性字段:billed为已抵扣金额,amount为欠费金额;循环处理负值费用对象数组[A1,A2,A3,…,An],如将负值费用对象A1分别与正值费用对象数据[B1,B2,B3,…,Bn]做和运算,并修改正负费用对象的已抵扣金额字段(billed),当负费用对象的|amount|-|billed|=0则跳出本次循环,继续下一个负值对象;当正费用对象的|amount|-|billed|=0则将正费用对象移出正值费用对象数组,以减少后续循环处理;重复上述的和运算过程,直至所有负值分组遍历结束或者所有正值分组遍历结束。
进一步优选的,S5步骤中,将S4步骤得到的剩余结果数据进行分段,所述分段为根据性能来设定分段大小,如每段1000条数据进行操作对系统处理性能是最优,那么段大小为1000。
进一步优选的,S1步骤中,所述预设大账户识别条件参数包括:
账户下号码数大于1000;
历史欠费账单条数大于6000;
账户下号码数大于800,且历史欠费账单条数大于1000;
账户下号码数大于600,且历史欠费账单条数大于2000;
账户下号码数大于500,且历史欠费账单条数大于3000;
账户下号码数大于400,且历史欠费账单条数大于4000;
账户下号码数大于300,且历史欠费账单条数大于5000;
账户下号码数大于200,且历史欠费账单条数大于5500。
更进一步优选的,S1步骤中,每月按照通信运营商的融合计费账务系统的数据情况,动态更新大账户标识。
与现有技术相比,本发明所带来的有益的技术效果表现在:
1、通过对数据、算法、算力的分析和应用,提升数据处理能力,解决了大账户查询慢、缴费易超时失败、服务性能瓶颈等问题。使得大账户欠费查询、余额抵扣等由分钟级提升到秒级完成,大幅缓解了系统压力,系统运营稳定性显著增加。
2、本发明创新了提升通信运营商账户海量数据处理性能的方法,提升整体算力,从而提高整体服务质量;支撑了大账户业务,对大账户感知的性能提升,有助于提升客户价值,巩固品牌效应。
3、本发明中S2步骤中对大账户同类异步消息进行过滤,达到削峰降频的目的,可以减少冗余的调用次数,节约系统资源,具有广阔的应用前景。本发明通过多线程分页取出基础数据,解决数据存储分散,取数超时的问题;构造结构化数据,进行正负冲抵,解决了数据量计算超时的问题。本发明通过优化处理算法,缩短了大账户销账场景的耗时,但系统/处理器运行的算法是有性能上限的,通过分段处理步骤,将数据按极限值进行分段处理,实现水平拓展。
附图说明
图1为本发明提升通信运营商账户海量数据处理性能的方法流程图。
具体实施方式
下面将结合本发明说明书附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例1
作为本发明一较佳实施例,参照说明书附图1所示,本实施例公开了一种提升通信运营商账户海量数据处理性能的方法,该方法包括以下步骤:
S1、账户分级;在通信运营商的融合计费账务系统中,通过分析融合计费账务系统典型应用处理效率及外部查询接口响应日志,预设大账户识别条件参数,将满足预设大账户识别条件之一的账户标识为大账户;若不是大账户,则按照常规方法进行处理。
S2、大账户同类异步消息过滤;针对同一大账户在预设时间范围内超出设定规模量的相同异步消息,进行消息过滤,该大账户后续的业务能力只执行一次,达到削峰降频的目的,消息过滤可以减少冗余的调用次数,节约系统资源,具有广阔的应用前景。
S3、获取基础数据;根据S2步骤过滤后的消息,从融合计费账务系统中的欠费索引表中定位表名,循环表名列表,多线程分页取出基础数据,解决数据存储分散,取数超时的问题。
S4、构造结构化数据;根据通信运营商业务要求以及基础数据的特点,构造结构化数据;
所述构造结构化数据具体是指,将原始基础数据数值正负进行分组;正、负分组后的基础数据分别按账期属性分组;将按账期属性分组后得到的数据集再按照用户标识与账目类型或用户标识与编码属性分组;
从构造的结构化数据中取出同账期属性、同用户标识与同账目类型或同用户标识与编码属性的正负分组数据进行费用明细正负冲抵;
冲抵后,从冲抵后的数据中,将同账期、同用户标识的正负分组数据取出进行费用明细正负冲抵;
从同账期、同用户标识费用明细正负冲抵后的数据中,取出同账期的正负分组数据,进行费用明细正负冲抵;
从同账期的正负冲抵后的数据中,取出不同账期的正负分组数据,进行费用明细正负冲抵;
上述冲抵过程中,依次进行,直至负值分组中没有元素,冲抵结束;或者上述冲抵过程全部完成后,冲抵结束,得到剩余结果数据;解决了数据量计算超时的问题。
S5、分段处理步骤,将S4步骤得到的剩余结果数据进行分段,按照分段结果分别对分段后的剩余结果数据进行处理。将数据按系统处理性能的极限值进行分段处理,为了匹配下游系统的处理能力,把待处理的数据量分散成若干小的数据量,多次使用实现水平拓展。
实施例2
作为本发明又一较佳实施例,本实施例是在上述实施例1的基础上,对本发明的技术方案做出的进一步详细的补充和阐述。在本实施例中,针对同一大账户在预设时间范围内超出设定规模量的相同异步消息,进行消息过滤,通过增加拦截过滤层,保证后续各业务能力只需执行一次,从而达到流量削峰的目的。
场景举例:某一大账户1分钟内产生了100笔充值业务(或批量调账、协议返费等),按系统通用能力,将会触发100次缴费、100次余额抵扣判断、100次复机判断、100次缴费提醒等,从而可能造成数据风暴和系统资源告警。因此将此账户按消息过滤办法合并执行,就只需要触发一次缴费、余额抵扣、复机、提醒等后续业务流程处理,从源头上控制生产数据量。
通信运营商的融合计费账务系统在接收生产者发送的消息时,指定key(键值)和groupId(账户标识),将相同groupId的消息归集在同一个队列内;
设置异步消息过滤的消费模式为有序消费,使得融合计费账务系统中的同一个消费者实例只会消费固定一个或几个队列里的消息;
在融合计费账务系统中的消费者实例内部设置缓存计数器和延迟队列,用以判断、记录相同key值的消息状态和触发动作。
具体的,融合计费账务系统中的消费者实例进行消息过滤的过程为:
S201、消费第一条消息时,记录该消息key值,同时缓存计数器由零变一,触发缓存计数器业务能力;
S202、消费第二条消息时,判断缓存计数器中是否存在相同key值的消息,如果存在,则缓存计数器由一变二,同时该第二条消息进入延迟队列;
S203、消费第三条消息时,判断缓存计数器中是否存在相同key的消息,如果存在,则对该第三条消息进行打标,该第三条消息进入延迟队列,不再触发;
S204、当延迟队列中的消息的时间片达到时间要求后,进行业务触发,缓存计数器由二变一;时间要求指达到被延时处理的时间长度,如一个消息需要被延时5分钟处理,那么达到5分钟后,这个消息应该被处理;
S205、当缓存计数器时间片达到时间要求后,触发缓存计数器归零,信息过滤结束。
实施例3
作为本发明又一较佳实施例,本实施例是在上述实施例1或实施例2的基础上,对本发明的技术方案做出的进一步详细地补充和阐述。在本实施例中,通信运营商有若干分公司,上亿在网用户,由于数据量太大,为满足生产需要,账单按月、按分公司存放,即每年都有21*12=252张账单表(不包括其它过程表)。由于基础数据量大,且分散在不同表中,传统的处理方式势必导致超时。因此,需要快速定位表名,并取出基础数据。
具体的操作方式为,根据S2步骤过滤后的消息,从融合计费账务系统中的欠费索引表中快速定位表名,循环表名列表,多线程分页取出基础数据。
其中,多线程分页取数的循环个数参考如下因子:
N=⌈A/(T×P)⌉;式中,N表示多线程分页取数的循环个数;A表示单表基础数据总额;T表示线程池个数,默认为5;P表示单页条数;⌈*⌉符号表示向上取整。
例如,已知A=360000,T=5,P=10000,循环次数N=⌈360000/(5×10000)⌉=8(次)。根据以上逻辑,
第1次循环:
第1个线程:第1页,即第1——第10000条基础数据,结果10000条;
第2个线程:第2页,即第10001——第20000条基础数据,结果10000条;
……
第5个线程:第5页,即第40001——第50000条基础数据,结果10000条。
第2次循环:
第1个线程:第6页,即第50001——第60000条基础数据,结果10000条;
第2个线程:第7页,即第60001——第70000条基础数据,结果10000条;
……
第5个线程:第10页,即第90001——第100000条基础数据,结果10000条。
以此类推,第8次(最后一次)循环:
第1个线程:第36页,即第350001——第360000条基础数据,结果10000条;
第2个线程:第37页,即第360001——第370000条基础数据,结果为空;
……
第5个线程:第40页,即第390001——第400000条基础数据,结果为空。
采用上述方式多线程分页取出基础数据,解决数据存储分散,取数超时的问题。
实施例4
作为本发明又一较佳实施例,本实施例是在上述实施例1、实施例2或实施例3的基础上,对本发明的技术方案做出的进一步详细地补充和阐述。在本实施例中,根据通信运营商业务要求以及上述实施例3中取出的基础数据的特点,构造结构化数据。
需要满足一下要求:
(1)原始基础数据数值正负进行分组;
(2)正、负分组后的基础数据分别按账期属性分组;
(3)分组后得到的数据集再按用户标识+账目类型/编码属性分组。
从构造的结构化数据中取出同账期属性、同用户标识与同账目类型/编码属性的正负分组数据进行费用明细正负冲抵;
冲抵后,从冲抵后的数据中,将同账期、同用户标识的正负分组数据取出进行费用明细正负冲抵;
从同账期属性、同用户标识费用明细正负冲抵后的数据中,取出同账期属性的正负分组数据,进行费用明细正负冲抵;
从同账期属性的正负冲抵后的数据中,取出不同账期属性的正负分组数据,进行费用明细正负冲抵;
上述冲抵过程中,依次进行,直至负值分组中没有元素,冲抵结束;或者上述冲抵过程全部完成后,冲抵结束,得到剩余结果数据;解决了数据量计算超时的问题。
上述依次进行的正负冲抵的计算逻辑可以如下表示:
首先,负值分组里的第一个元素(账单对象)作为A矩阵,1行1列,即:[A1]
其次,正值分组的里的所有元素作为B矩阵,1行N列,即:[B1,B2,…,Bk,…,Bn],k=1,2,…,n;
再次,根据矩阵乘积的规则,A1分别与B1,B2…,Bk,…,Bn做和运算,直至A1变成0。如果A1的绝对值足够大,与之做和运算的Bk都变成0,则将Bk进行移除,B矩阵将越来越小。
最后,取负值分组里的第二个元素作为A矩阵,1行1列,即:[A2],重复之前的步骤,直至所有负值分组遍历结束,或者所有正值分组遍历结束。
第一轮正负分组遍历结束后的基础数据,再构造新结构化数据,即按用户标识属性分组。
按照新的分组要求,将同账期、同用户标识的正、负值分组取出,进行特定矩阵计算。计算逻辑如上,不再赘述。
第二轮正负分组遍历结束后,再将同账期的正、负分组取出进行特定矩阵计算。计算逻辑如上,不再赘述。
第三轮正负分组遍历结束后,再将剩余正、负值分组取出进行特定矩阵计算。计算逻辑如上,不再赘述。
总共四轮计算,逻辑如下:
第一轮: 同账期、同用户、同账目类型费用明细正负冲抵;
第二轮:同账期、同用户费用明细正负冲抵;
第三轮:同账期费用明细正负冲抵;
第四轮: 不同账期正负冲抵。
例如,原始数据为:{-170,-80,70,80,30,135,60};
正负分离后:{-170,-80}和{70,80,30,135,60};
按账期分组后:{-170}{70,80,30}和{-80}{135,60};
再按用户标识+账目类型/编码属性分组后:{-170}{70}、{0}{80}、{0}{30}和{-80}{135,60};
第一轮正负分组遍历结束后:{-100}{0}、{0}{80}、{0}{30}和{0}{55,60};
再按用户标识属性分组后:{-100}{80}、{0}{30}和{0}{55,60};
第二轮正负分组遍历结束后:{-20}{0}、{0}{30}和{0}{55,60};
取出同账期分组后:{-20}{30}和{0}{55,60};
第三轮正负分组遍历结束后:{0}{10}和{0}{55,60};
由于负值分组没有元素,第四轮遍历不再进行,剩余结果数据:{10,55,60}。
经过前两个步骤,待处理的数据量相较原始已然减少,但仍处于高位,只需将待处理数据分段处理,为了匹配下游系统的处理能力,把待处理的数据量分散成若干小的数据量,多次使用。
实施例5
作为本发明又一较佳实施例,本实施例是在上述实施例1、实施例2、实施例3或实施例4的基础上,对本发明的技术方案做出的进一步详细地补充和阐述。在本实施例中,在通信运营商的融合计费账务系统中,通过分析融合计费账务系统典型应用处理效率及外部查询接口响应日志,预设大账户识别条件参数,将满足预设大账户识别条件之一的账户标识为大账户;按照上述实施例1、实施例2、实施例3和实施例4的处理过程执行数据处理。
预设大账户识别条件参数包括:
(1)账户下号码数大于1000;
(2)历史欠费账单条数大于6000;
(3)账户下号码数大于800,且历史欠费账单条数大于1000;
(4)账户下号码数大于600,且历史欠费账单条数大于2000;
(5)账户下号码数大于500,且历史欠费账单条数大于3000;
(6)账户下号码数大于400,且历史欠费账单条数大于4000;
(7)账户下号码数大于300,且历史欠费账单条数大于5000;
(8)账户下号码数大于200,且历史欠费账单条数大于5500。
满足上述8个条件中的任意一个,即标识为大账户,对大账户的数据按照上述实施例1-4的处理过程执行,对于非大账户的数据按照常规处理方法进行处理。每月按照通信运营商的融合计费账务系统的数据情况,动态更新大账户标识。
本发明提供的技术方案已经在四川通信运营商大账户计费服务提升项目实施。通过对数据、算法、算力的分析和应用,提升数据处理能力,解决了大账户查询慢、缴费易超时失败、服务性能瓶颈等问题。使得大账户欠费查询、余额抵扣等由分钟级提升到秒级完成,大幅缓解了系统压力,系统运营稳定性显著增加。
可以理解,本发明是通过一些实施例进行描述的,本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明所保护的范围内。
Claims (9)
1.一种提升通信运营商账户海量数据处理性能的方法,其特征在于:该方法包括以下步骤:
S1、账户分级;在通信运营商的融合计费账务系统中,通过分析融合计费账务系统典型应用处理效率及外部查询接口响应日志,预设大账户识别条件参数,将满足预设大账户识别条件之一的账户标识为大账户;
S2、大账户同类异步消息过滤;针对同一大账户在预设时间范围内超出设定规模量的相同异步消息,进行消息过滤,该大账户后续的业务能力只执行一次;
S3、获取基础数据;根据S2步骤过滤后的消息,从融合计费账务系统中的欠费索引表中定位表名,循环表名列表,多线程分页取出基础数据;
S4、构造结构化数据;根据通信运营商业务要求以及S3步骤中取出的基础数据的特点,构造结构化数据;
所述构造结构化数据具体是指,将原始基础数据数值正负进行分组;正、负分组后的基础数据分别按账期属性分组;将按账期属性分组后得到的数据集再按照用户标识与账目类型或用户标识与编码属性分组;
从构造的结构化数据中取出同账期属性、同用户标识与同账目类型或同用户标识与编码属性的正负分组数据进行费用明细正负冲抵;
冲抵后,从冲抵后的数据中,将同账期、同用户标识的正负分组数据取出进行费用明细正负冲抵;
从同账期、同用户标识费用明细正负冲抵后的数据中,取出同账期的正负分组数据,进行费用明细正负冲抵;
从同账期的正负冲抵后的数据中,取出不同账期的正负分组数据,进行费用明细正负冲抵;
上述冲抵过程中,依次进行,直至负值分组中没有元素,冲抵结束;或者上述冲抵过程全部完成后,冲抵结束,得到剩余结果数据;
S5、分段处理;将S4步骤得到的剩余结果数据进行分段,按照分段结果分别对分段后的剩余结果数据进行处理。
2.如权利要求1所述的一种提升通信运营商账户海量数据处理性能的方法,其特征在于,S2步骤中,进行消息过滤具体是指,通信运营商的融合计费账务系统在接收生产者发送的消息时,指定键值key和账户标识groupId,将相同groupId的消息归集在同一个队列内;
设置异步消息过滤的消费模式为有序消费,使得融合计费账务系统中的同一个消费者实例只会消费固定一个或几个队列里的消息;
在融合计费账务系统中的消费者实例内部设置缓存计数器和延迟队列,用以判断、记录相同key值的消息状态和触发动作。
3.根据权利要求2所述的一种提升通信运营商账户海量数据处理性能的方法,其特征在于,融合计费账务系统中的消费者实例进行消息过滤的过程为:
S201、消费第一条消息时,记录该消息key值,同时缓存计数器由零变一,触发业务能力;
S202、消费第二条消息时,判断缓存计数器中是否存在相同key值的消息,如果存在,则缓存计数器由一变二,同时该第二条消息进入延迟队列;
S203、消费第三条消息时,判断缓存计数器中是否存在相同key的消息,如果存在,则对该第三条消息进行打标,进入延迟队列,不再触发;
S204、当延迟队列中的消息片达到时间要求后,进行业务出发,缓存计数器由二变一;
S205、当缓存计数器时间片达到时间要求后,缓存计数器清零。
4.如权利要求1-3任意一项所述的一种提升通信运营商账户海量数据处理性能的方法,其特征在于:S3步骤中,所述多线程分页取出基础数据的计算公式为:
N=⌈A/(T×P)⌉;式中,N表示多线程分页取数的循环个数;A表示单表基础数据总额;T表示线程池个数;P表示单页条数;⌈*⌉符号表示向上取整。
5.根据权利要求1-3任意一项所述的一种提升通信运营商账户海量数据处理性能的方法,其特征在于,所述预设时间范围是指,固定时间片,即操作一次业务所需要的时间。
6.根据权利要求1-3任意一项所述的一种提升通信运营商账户海量数据处理性能的方法,其特征在于,所述预设大账户识别条件参数包括以下任意一种:
账户下号码数大于1000;
历史欠费账单条数大于6000;
账户下号码数大于800,且历史欠费账单条数大于1000;
账户下号码数大于600,且历史欠费账单条数大于2000;
账户下号码数大于500,且历史欠费账单条数大于3000;
账户下号码数大于400,且历史欠费账单条数大于4000;
账户下号码数大于300,且历史欠费账单条数大于5000;
账户下号码数大于200,且历史欠费账单条数大于5500。
7.根据权利要求1-3任意一项所述的一种提升通信运营商账户海量数据处理性能的方法,其特征在于,所述设定规模是指,达到大账户识别条件。
8.根据权利要求1-3任意一项所述的一种提升通信运营商账户海量数据处理性能的方法,其特征在于,所述分段处理指将数据按下游系统的处理能力进行分段处理。
9.如权利要求8所述的一种提升通信运营商账户海量数据处理性能的方法,其特征在于:S1步骤中,每月按照通信运营商的融合计费账务系统的数据情况,动态更新账户标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410593715.6A CN118170806B (zh) | 2024-05-14 | 一种提升通信运营商账户海量数据处理性能的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410593715.6A CN118170806B (zh) | 2024-05-14 | 一种提升通信运营商账户海量数据处理性能的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118170806A true CN118170806A (zh) | 2024-06-11 |
CN118170806B CN118170806B (zh) | 2024-07-09 |
Family
ID=
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114429340A (zh) * | 2020-10-29 | 2022-05-03 | 腾讯科技(深圳)有限公司 | 电子支付的处理方法、装置、电子设备及存储介质 |
WO2022142781A1 (zh) * | 2020-12-28 | 2022-07-07 | 腾讯科技(深圳)有限公司 | 区块链的异步落账方法、装置、介质及电子设备 |
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114429340A (zh) * | 2020-10-29 | 2022-05-03 | 腾讯科技(深圳)有限公司 | 电子支付的处理方法、装置、电子设备及存储介质 |
WO2022142781A1 (zh) * | 2020-12-28 | 2022-07-07 | 腾讯科技(深圳)有限公司 | 区块链的异步落账方法、装置、介质及电子设备 |
Non-Patent Citations (2)
Title |
---|
LIXIAN ZHANG 等: "Asynchronous Filtering of Discrete-Time Switched Linear Systems With Average Dwell Time", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS I: REGULAR PAPERS》, 20 December 2010 (2010-12-20), pages 1109 * |
甘伟: "基于1394总线异步流包的两级过滤", 《工业控制计算机》, 21 August 2023 (2023-08-21), pages 56 - 57 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111639138B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN103838867A (zh) | 日志处理方法和装置 | |
CN110647512A (zh) | 一种数据存储和分析方法、装置、设备和可读介质 | |
CN110378575B (zh) | 逾期事件回款催收方法及装置、计算机可读存储介质 | |
CN110233741B (zh) | 服务计费方法、装置、设备及存储介质 | |
CN115760258A (zh) | 投标文件智能生成方法、系统、计算机装置和存储介质 | |
CN110489418B (zh) | 一种数据聚合方法和系统 | |
CN115665284A (zh) | 基于分布式配置中心的报文处理方法、装置及计算机设备 | |
CN118170806B (zh) | 一种提升通信运营商账户海量数据处理性能的方法 | |
CN110851758B (zh) | 一种网页访客数量统计方法及装置 | |
CN101431760B (zh) | 业务报表实现方法及系统 | |
CN118170806A (zh) | 一种提升通信运营商账户海量数据处理性能的方法 | |
CN112052259A (zh) | 数据处理方法、装置、设备及计算机存储介质 | |
CN110019152A (zh) | 一种大数据清洗方法 | |
CN109146672B (zh) | 一种基于生产模式的撮合匹配方法和装置 | |
CN115098542A (zh) | 一种流式大数据分频预聚合与查询方法 | |
CN114722045A (zh) | 时间序列数据的存储方法及装置 | |
CN112037049A (zh) | 银行卡收费方法及装置 | |
CN105868197B (zh) | 一种话单数据的统计方法及统计装置 | |
CN101827175A (zh) | 一种话单分拣分目录存储的方法及系统 | |
CN111274203A (zh) | 一种话单存储系统及方法 | |
CN115271702A (zh) | 一种代扣金额拆分方法、系统、存储介质和电子设备 | |
CN111506654B (zh) | 用于数据路由的数据分区方法 | |
CN116629870A (zh) | 基于分布式技术的数据处理方法、装置、设备及存储介质 | |
CN117336145A (zh) | 一种用于事件监控的处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |