CN111274209B - 话单文件处理方法及装置 - Google Patents
话单文件处理方法及装置 Download PDFInfo
- Publication number
- CN111274209B CN111274209B CN202010016727.4A CN202010016727A CN111274209B CN 111274209 B CN111274209 B CN 111274209B CN 202010016727 A CN202010016727 A CN 202010016727A CN 111274209 B CN111274209 B CN 111274209B
- Authority
- CN
- China
- Prior art keywords
- province
- ticket
- file
- kafka
- preset
- 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.)
- Active
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/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
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)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种话单文件处理方法及装置,该方法包括:获取话单文件,其中,话单文件包括省份标识。根据省份标识,将话单文件发送至省份标识对应的第一KAFKA分区,其中,第一KAFKA分区对应有至少一个省份标识。将第一KAFKA分区中省份标识相同的话单文件进行合并,得到合并后的省份标识对应的话单文件。通过根据话单文件的省份标识将话单文件发送至对应的KAFKA分区,以使得将省份标识相同的话单文件进行合并,能够有效保证将话单文件按省份分类的正确性,同时将话单文件按照省份标识进行分区处理,能够有效提升对于话单文件合并的处理效率。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及一种话单文件处理方法及装置。
背景技术
伴随着拜访地业务的展开,用户在出访地所产生的话单文件会产生于出访地的网元,因此对分散的话单文件进行合并处理就显得尤为重要。
目前,现有技术通常是利用Hadoop分布式文件系统(Hadoop Distributed FileSystem,HDFS)进行话单文件的合并,具体的,Hadoop会将每一个话单文件传递给map()函数,其中,Hadoop在调用map()函数时会创建一个映射器,因此各个分散的话单文件就会分别创建各自对应的映射器。
然而,创建了大量的映射器以实现文件的合并,会造成合并的处理效率低下。
发明内容
本发明实施例提供一种话单文件处理方法及装置,以克服话单文件合并的处理效率低下的问题。
第一方面,本发明实施例提供一种话单文件处理方法,包括:
获取话单文件,其中,所述话单文件包括省份标识;
根据所述省份标识,将所述话单文件发送至所述省份标识对应的第一KAFKA分区,其中,所述第一KAFKA分区对应有至少一个所述省份标识;
将所述第一KAFKA分区中省份标识相同的话单文件进行合并,得到合并后的所述省份标识对应的话单文件。
在一种可能的设计中,所述将所述第一KAFKA分区中省份标识相同的话单文件进行合并,包括:
判断所述第一KAFKA分区中省份标识相同的话单文件是否满足预设条件;
若是,则将所述省份标识相同的话单文件进行合并;
若否,则持续判断,直至所述省份标识相同的话单文件满足预设条件。
在一种可能的设计中,所述预设条件为文件大小大于或等于预设大小;或者
所述省份标识相同的话单文件对应的第一时长是否到达预设时长。
在一种可能的设计中,所述根据所述省份标识,将所述话单文件发送至所述省份标识对应的第一KAFKA分区,包括:
判断所述话单文件的大小是否大于预设大小;
若是,则将所述话单文件进行拆分,得到多个拆分后的话单文件,并将所述多个拆分后的话单文件分别发送至所述第一KAFKA分区;
若否,则直接将所述话单文件发送至所述第一KAFKA分区。
在一种可能的设计中,所述根据所述省份标识,将所述话单文件发送至所述省份标识对应的第一KAFKA分区之前,所述方法还包括:
对预设的多个省份标识进行分类处理,得到预设数量个分组,其中,各所述分组包括至少一个省份标识,每个分组对应一个KAFKA分区;
将各所述KAFKA分区注册至ZOOKEEPER服务器,以使得所述ZOOKEEPER服务器对各所述KAFKA分区进行管理。
在一种可能的设计中,所述对预设的多个省份标识进行分类处理,得到预设数量个数组,包括:
利用K-MEANS聚类算法对预设的多个省份标识进行分类处理,得到预设数量个数组。
在一种可能的设计中,所述得到合并后的所述省份标识对应的话单文件之后,所述方法还包括:
将所述合并后的所述省份标识对应的话单文件发送至计费系统。
第二方面,本发明实施例提供一种话单文件处理装置,包括:
获取模块,用于获取话单文件,其中,所述话单文件包括省份标识;
发送模块,用于根据所述省份标识,将所述话单文件发送至所述省份标识对应的第一KAFKA分区,其中,所述第一KAFKA分区对应有至少一个所述省份标识;
合并模块,用于将所述第一KAFKA分区中省份标识相同的话单文件进行合并,得到合并后的所述省份标识对应的话单文件。
在一种可能的设计中,所述合并模块,具体用于:
判断所述第一KAFKA分区中省份标识相同的话单文件是否满足预设条件;
若是,则将所述省份标识相同的话单文件进行合并;
若否,则持续判断,直至所述省份标识相同的话单文件满足预设条件。
在一种可能的设计中,所述预设条件为文件大小大于或等于预设大小;或者
所述省份标识相同的话单文件对应的第一时长是否到达预设时长。
在一种可能的设计中,所述发送模块,具体用于:
判断所述话单文件的大小是否大于预设大小;
若是,则将所述话单文件进行拆分,得到多个拆分后的话单文件,并将所述多个拆分后的话单文件分别发送至所述第一KAFKA分区;
若否,则直接将所述话单文件发送至所述第一KAFKA分区。
在一种可能的设计中,还包括:分类模块;
所述分类模块,用于在所述根据所述省份标识,将所述话单文件发送至所述省份标识对应的第一KAFKA分区之前,对预设的多个省份标识进行分类处理,得到预设数量个分组,其中,各所述分组包括至少一个省份标识,每个分组对应一个KAFKA分区;
将各所述KAFKA分区注册至ZOOKEEPER服务器,以使得所述ZOOKEEPER服务器对各所述KAFKA分区进行管理。
在一种可能的设计中,所述分类模块,具体用于:
利用K-MEANS聚类算法对预设的多个省份标识进行分类处理,得到预设数量个数组。
在一种可能的设计中,所述发送模块还用于:
在所述得到合并后的所述省份标识对应的话单文件之后,将所述合并后的所述省份标识对应的话单文件发送至计费系统。
第三方面,本发明实施例提供一种话单文件处理设备,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。
本申请实施例提供一种话单文件处理方法及装置,该方法包括:获取话单文件,其中,话单文件包括省份标识。根据省份标识,将话单文件发送至省份标识对应的第一KAFKA分区,其中,第一KAFKA分区对应有至少一个省份标识。将第一KAFKA分区中省份标识相同的话单文件进行合并,得到合并后的省份标识对应的话单文件。通过根据话单文件的省份标识将话单文件发送至对应的KAFKA分区,以使得将省份标识相同的话单文件进行合并,能够有效保证将话单文件按省份分类的正确性,同时将话单文件按照省份标识进行分区处理,能够有效提升对于话单文件合并的处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的话单文件处理方法的系统示意图;
图2为本申请实施例提供的话单文件处理方法的流程图一;
图3为本申请实施例提供的话单文件处理方法的流程图二;
图4为本申请实施例提供的KAFKA系统示意图;
图5为本申请实施例提供的获取话单文件示意图;
图6为本发明实施例提供的话单文件处理装置的结构示意图一;
图7为本发明实施例提供的话单文件处理装置的结构示意图二;
图8为本发明实施例提供的话单文件处理设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先对本申请中提及的拜访地业务进行简单说明,具体的,拜访地业务是指用户持有的终端设备可以直接从终端设备的使用地接入网络,原本是需要从终端设备所安装的卡片的归属地接入网络的。
因此,拜访地业务会使得流量以及用户量与日俱增,当用户去其他省份出访后,其产生的话单文件会落到出访地的网元,最终会造成用户所对应的归属地接收到的话单文件比较小,并且话单文件的数量比较多,为了保证全国34个省级行政区域的海量流量话单文件实时、高效、准确无误的送给下游的计费系统以便进行计费等操作,同时避免发送给下游系统的话单文件太细碎,需要将分散的话单文件按照省份进行合并之后,再送给下游系统,以有效降低下游系统的处理压力。
全国有34个省级行政区域,本申请实施例中仅以31个省级行政区域进行示例说明。本申请中将省级行政区域简称为省份。
目前,现有技术通常是利用Hadoop分布式文件系统(Hadoop Distributed FileSystem,HDFS)进行话单文件的合并,具体的,Hadoop会将每一个话单文件传递给map()函数,其中,Hadoop在调用map()函数时会创建一个映射器,因此各个分散的话单文件就会分别创建各自对应的映射器。
例如,当前存在2000个话单文件,每一个话单文件的大小约为2-3兆(MByte,MB),则在对这2000个话单文件进行处理时,需要创建2000个映射器,其次再将每一个话单文件发送到对应的映射器,会导致文件的处理效率非常低下。
为了解决现有技术中文件合并效率低下的问题,本申请提供了一种话单文件处理方法,在介绍具体的方法之前,首先结合图1对话单文件处理方法所对应的系统进行说明。
图1为本申请实施例提供的话单文件处理方法的系统示意图,如图1所示,该系统包括:
基站101、终端设备102以及客户端103。
在本实施例中,客户端103用于对话单文件进行处理,具体的,客户端103通常运行在终端设备102上,其中终端设备102可以是移动终端、移动用户设备、计算机设备、平板电脑或智能手机等,或者,移动终端还可以为移动电话(或称为“蜂窝”电话)、车载处理装置或具有可移动性的计算机等,可移动性的计算机例如,便携式计算机、袖珍式计算机或手持式计算机等,对此,本申请不作限制。
具体的,本实施例中的客户端103会从基站101获取话单文件,以进行相应的合并处理,因此在本实施例中,基站101可以是部署在全国各省份的基站,以及全国各省份可以布置有多个基站101,本实施例对基站101的具体数量和具体设置位置不作限制,其可以根据实际需求进行选择。
其中,基站101是网络侧用于发射信号或者接收信号的实体,其例如可以为全球移动通信系统(Global System for Mobile Communications,GSM)或码分多址(CodeDivision Multiple Access,CDMA)中的基站(Base Station,BS),也可以是宽带码分多址(Wideband Code Division Multiple Access,常简写为W-CDMA)中的基站NodeB,还可以是长期演进(Long Term Evolution,LTE)中的演进型基站eNB、gNB等,本申请对基站101的具体实现方式不作限定。
在上述介绍的系统的基础上,下面结合图2对本申请提供的话单文件处理方法进行说明,图2为本申请实施例提供的话单文件处理方法的流程图一,如图2所示,该方法包括:
S201、获取话单文件,其中,话单文件包括省份标识。
首先需要说明的是,本实施例中的执行主体为客户端,其中,客户端具体为用于处理话单文件的客户端,其可以理解的开发人员所使用的客户端,其具体实现方式可以根据实际需求进行选择,只要能够处理话单文件即可。
参照上述系统实施例的介绍,客户端会从基站获取话单文件,在本实施例中,话单文件中包括省份标识,其中,省份标识用于指示产生当前话单文件的省份,也就是说当前的话单文件是在那个省份产生的。
在一种可能的实现方式中,省份标识可以为字母、数字,用于指示各个省份;或者,省份标识还可以为省份名称的首个字,本实施例对省份标识的具体实现方式不做特别限,只要省份标识能够唯一的指示一个省份即可。
同时,本实施例中获取话单文件的一种可能的实现方式可以为,基站将实时生成、大小不等的话单文件发送给客户端,以实现客户端获取话单文件;或者,还可以是客户端按照预设周期向基站发送请求指令,以指示基站将话单文件发送给客户端,本实施例对此不做特别限制。
本领域技术人员可以理解的是,假设当前的话单文件是在省份11产生的,则当前就是省份11的基站将话单文件发送给客户端,则客户端当前获取到的话单文件所对应的省份标识就必然为11,也就是说一次获取到的话单文件的省份标识是相同的。
S202、根据省份标识,将话单文件发送至省份标识对应的第一KAFKA分区,其中,第一KAFKA分区对应有至少一个省份标识。
在本实施例中,通过KAFKA进行话单文件的存储和分类,其中,KAFKA是一种高吞吐量的分布式发布订阅消息系统,其能够提供分布式的、可划分的、冗余备份的持久性的日志服务,可以用于处理活跃的流式数据。
具体的,本实施例中的KAFKA设置有预设数量个分区,用于对各个省份的话单文件进行分区处理,其中,每一个分区对应至少一个省份标识,例如可以一个分区对应一个省份标识,或者可以一个分区对应多个省份标识,具体的实现取决于分区的数量和省份标识的数量,本实施例对此不做限制。
本实施例中的话单文件对应有省份标识,以及KAFKA分区也对应有省份标识,则将话单文件发送至话单文件的省份标识所对应的第一KAFKA分区。
例如当前话单文件对应的省份标识为11,以及假设当前存在两个KAFKA分区,分别为KAFKA分区1和KAFKA分区2,其中KAFKA分区1对应的省份标识为{11、12},以及KAFKA分区2对应的省份标识为{31},则会将话单文件发送至KAFKA分区1,以及KAFKA分区1也就是第一KAFKA分区。
上述仅为示例性的介绍,具体的省份标识以及省份标识对应的分区可以根据实际需求进行选择,本实施例对此不做限制。
S203、将第一KAFKA分区中省份标识相同的话单文件进行合并,得到合并后的省份标识对应的话单文件。
在本实施例中,需要将话单文件按省份进行统计,则需要将省份标识相同的话单文件合并在一起,其中,第一KAFKA分区可以接收到多个话单文件。
在一种可能的实现方式中,假设第一KAFKA分区仅对应一个省份标识,则当前的第一KAFKA分区接收到的话单文件的省份标识必然是相同的,则直接将当前第一KAFKA分区中的话单文件进行合并即可。
在另一种可能的实现方式中,假第一KAFKA分区对应至少两个省份标识,则当前的第一KAFKA分区接收到的话单文件的省份标识就可以有至少两个,此时需要根据话单文件的省份标识进行文件的合并,具体的,将省份标识相同的话单文件合并在一起,以得到合并后的省份标识对应的话单文件。
通过将话单文件按照省份标识进行合并,从而实现了话单文件的按省份进行统计。
本申请实施例提供的话单文件处理方法,包括:获取话单文件,其中,话单文件包括省份标识。根据省份标识,将话单文件发送至省份标识对应的第一KAFKA分区,其中,第一KAFKA分区对应有至少一个省份标识。将第一KAFKA分区中省份标识相同的话单文件进行合并,得到合并后的省份标识对应的话单文件。通过根据话单文件的省份标识将话单文件发送至对应的KAFKA分区,以使得将省份标识相同的话单文件进行合并,能够有效保证将话单文件按省份分类的正确性,同时将话单文件按照省份标识进行分区处理,能够有效提升对于话单文件合并的处理效率。
在上述实施例的基础上,下面结合另一个具体的实施例对本申请提供的话单文件处理方法进行进一步地详细介绍,结合图3至图5进行说明,图3为本申请实施例提供的话单文件处理方法的流程图二,图4为本申请实施例提供的KAFKA系统示意图,图5为本申请实施例提供的获取话单文件示意图。
如图3所示,该方法包括:
S301、获取话单文件,其中,话单文件包括省份标识。
其中,S301的实现方式与S201类似,此处不再赘述。
S302、对预设的多个省份标识进行分类处理,得到预设数量个分组,其中,各分组包括至少一个省份标识,每个分组对应一个KAFKA分区。
针对中国来说,以中国的31个省份为例,假设预设的多个省份标识可以为{10,11,13,17,18,19,30,31,34,36,38,50,51,59,70,71,74,75,76,79,81,83,84,85,86,87,88,89,90,91,97}。
或者,针对其它国家来说,预设的多个省份标识取决于省份的数量,以及其具体实现方式可以为数字、字母、单词等等,本实施例对省份标识的具体实现方式不做特别限制。
在一种可能的实现方式中,可以利用K-MEANS聚类算法对预设的多个省份标识进行分类处理,以得到预设数量个数组。
其中,K-MEANS是一种聚类算法中,其中K表示类别数,MEANS表示均值。顾名思义K-MEANS是一种通过均值对数据点进行聚类的算法,即将给定一个有N个元组或者记录的数据集,分别将其构造为K个分组,并且每个分组就代表一个聚类。
以上述示例性介绍的中国的31个省份标识为例,本实施例中的待分类的数据集D可以为包括31个省份标识,即D={10,11,13,17,18,19,30,31,34,36,38,50,51,59,70,71,74,75,76,79,81,83,84,85,86,87,88,89,90,91,97}。
另外,假设本实施例中设置有KAFKA的分区数是10,则对应的聚类的簇树K设置为10,以及最大迭代次数N也设置为10。
则K-MEANS聚类算法对省份标识进行分类的具体流程可以为:
将数据集D、聚类的簇树k、最大迭代次数N作为输入参数代入如下流程:
1、从数据集D中随机选择k个样本作为初始的k个质心向量;
2、对于迭代次数n=1、2、3…N进行迭代处理
(4)如果所有的k个质心向量都没有发生变化,则转到步骤33、输出簇划分C={C1,C2,…Ck},
经过10次迭代计算,最后得到输出簇划分C这个二维数组,二维数组中将D中的数据,分成了10个一维分组,结果如下:
参照上述分类可以确定的是,当前的每个分组中都包括了至少两个省份标识,以及本实施例中设置KAFKA的分区数是10,对应的分组数也为10,可以理解的是,本实施例中对省份标识进行分组就是为了使得分组后的各省份标识对应一个分区,因此本实施例中省份标识的分组数和KAFKA的分区数是相同的。
当前每个分组对应一个KAFKA分区,则对应的,各KAFKA分区就与上述各分组中的省份标识相对应。
在可选的实施例中,若是省份标识固定不变,则可以持续使用上述省份标识的分类,直至客户端需要进行重启,通过持续使用上述省份标识的分类,可以节省对省份标识进行分类的系统开销。
S303、将各KAFKA分区注册至ZOOKEEPER服务器,以使得ZOOKEEPER服务器对各KAFKA分区进行管理。
在确定各KAFKA分区以及各KAFKA分区对应的省份标识之后,将各个KAFKA分区注册至ZOOKEEPER服务器集群,只有注册至ZOOKEEPER服务器集群的KAFKA分区才能够被ZOOKEEPER服务器集群进行管理,从而进行数据的接收和发送。
下面结合图4对KAFKA分区以及ZOOKEEPER服务器集群进行详细介绍。
首先对图4中出现的KAFKA的相关概念进行解释:
生产者(Producer),是消息的产生源头,负责生成消息并发送给KAFKA服务器,在本实施例中,生成的消息即为话单文件。
消费者(Consumer),是消息的使用方,负责消费KAFKA服务器上的消息,在本实施例中,也就是从KAFKA服务器上获取话单文件。
主题(Topic),自定义并配置在KAFKA服务器上,用于建立生产者和消者之间的订阅关系,生产者将消息发送至指定的主题,之后消费者再从该主题下获取消息。
分区(Partition),一个主题下可以设置有多个分区,其中,每个分区都是一个有序队列,每个分区中的每条消息都会被分配一个有序的标识。
服务器(Broker),其实就是KAFKA服务器了,无论是单台的KAFKA服务器还是集群的KAFKA服务器,统一称为Broker。
在本实施例中,生产者和消费者都是客户端,本申请中的客户端采用多容器的方式部署,具体的,可以将客户端对应的生产者功能部署在M个容器中,以得到M个生产者,M为正整数,其中,生产者可以向对应的分区发送话单文件,在本实施例中,一个生产者可以仅对应一个分区(例如生产者2),或者,一个生产者还可以对应多个分区(如生产者1),生产者和分区的具体对应关系可以是随机设置的,或者,还可以是ZPPKEEPER服务器设置的。
同时,可以将客户端对应的消费者功能部署在N个容器中,N为正整数,以得到N个消费者,其中,消费者可以从对应的分区获取数据,同样的,消费者可以分区之间的对应关系可以是一对一,还可以是一对多,本实施例对此不做限制。
在本实施例中,将客户端对应的生产者功能部署在容器中,实际上就是将发送话单文件相关的程序部署在容器中,部署消费者功能的实现方式类似,其中容器例如可以为DOCKER容器,或者还可以为任意可能的容器,本实施例对此不做限制。
下面对ZOOKEEPER服务器进行说明,ZOOKEEPER是一个分布式的,开放源码的分布式应用程序协调服务,它可以为分布式应用提供一致性服务,在本实施例中,ZOOKEEPER的版本可以为3.4.9,ZOOKEEPER服务器集群的搭建可以选用3台ZOOKEEPER服务器,其对应的地址分别为:132.35.228.26:2181、132.35.228.27:2181、132.35.228.28:2181,
由于KAFKA需要将状态保存在ZOOKEEPER服务器中,因此在已搭建完成的ZOOKEEPER服务器集群下,可以选用10台服务器搭建KAFKA集群,在本实施例中,KAFKA的软件版本可以为Kafka_2.11-0.9.0.1.tgz。
在ZOOKEEPER服务器集群和KAFKA服务器搭建完成之后,可以在ZOOKEEPER服务器集群下注册KAFKA主题,假设本实施例中设置有主题数量为1,以及继续沿用上述示例,假设当前的KAFKA分区数量为10,因此先在ZOOKEEPER服务器集群上注册10个节点,ZOOKEEPER对其注册的节点进行监听,以实现对KAFKA的管理。
同时,本实施例中的ZOOKEEPER服务器集群还会对容器的状态进行监听,因此本实施例中的消费者同样需要在ZOOKEEPER上进行注册,可选的,生产者同样需要在ZOOKEEPER上进行注册。
当某一个容器挂掉时,ZOOKEEPER会通知客户端并对容器进行主题和分区数的重新分配,假设当前存在8个消费者的容器,其中容器5对应分区2和分区3,假设此时容器5挂掉了,则ZOOKEEPER服务器集群可以将分区2和分区3分配给其余的正常运行的容器,以保证话单文件的正常处理,保证了文件处理的稳定性,以及在本实施例中,通过多容器部署的方式以实现话单文件的处理,能够实现海量话单文件的并发处理,以有效提升数据处理的效率。
S304、判断话单文件的大小是否大于预设大小,若是,则执行S305,若否,则执行S306;
在KAFKA和ZOOKEEPER服务器集群部署完成之后,则可以进行话单文件的处理了,首先,客户端对应的生产者在将话单文件发送至对应的分区之前,首先判断话单文件的大小是否大于预设大小,其中预设大小例如可以为5MB,或者任意可能的大小,本实施例对此不做限制。
S305、将话单文件进行拆分,得到多个拆分后的话单文件,并将多个拆分后的话单文件分别发送至第一KAFKA分区。
在一种可能的实现方式中,若是话单文件的大小大于预设大小,则此时需要将话单文件进行拆分,得到多个拆分后的话单文件,假设当前话单文件的大小为10MB,以及预设大小为5MB,则可以确定话单文件的大小大于预设大小,则可以将10MB的话单文件拆分为一个5MB的话单文件1和另一个5MB的话单文件2。
在本实施例中,拆分后的话单文件的大小不大于预设大小,接着将多个拆分后的话单文件分别发送至第一KAFKA分区,其中发送的具体实现方式与上述实施例中的步骤S202类似,此处不再赘述。
通过在话单文件的大小大于预设大小是对话单文件进行拆分,能够保证发送至第一KAFKA分区的话单文件的大小是满足需求的,避免将过大的文件发送给第一KAFKA分区,导致系统的处理效率缓慢。
S306、直接将话单文件发送至第一KAFKA分区。
在另一种可能的实现方式中,若是话单文件的大小不大于预设大小,则可以确定当前话单文件的大小是满足预设需求的,则直接将话单文件发送至第一KAFKA分区,发送的具体实现方式可以参照上述步骤S202,此处不再赘述。
S307、判断第一KAFKA分区中省份标识相同的话单文件是否满足预设条件,若是,则执行S308,若否,则执行S307。
在本实施例中,客户端需要将省份标识相同的话单文件进行合并,具体的,是客户端对应的消费者从第一KAFKA分区中获取话单文件,并判断第一KAFKA分区中省份标识相同的话单文件是否满足预设条件。
具体的,本实施例中的第一KAFKA分区是对应有多个省份标识的,则具体需要根据省份标识进行话单文件的预设条件判断。
在一种可能的实现方式中,消费者可以根据获取到的话单文件的省份标识,创建省份标识对应的文件,并将存储至对应的文件中,下面结合图5进行说明。
假设当前消费者2对应的分区是KAFKA分区2,以及假设KAFKA分区2对应的省份标识是51和59,则此时消费者2可以监听KAFKA分区2,并从KAFKA分区2中获取话单文件,假设当前获取到的话单文件的省份标识是51,则首先判断当前是否存在省份标识为51的文件,若存在,则直接将该话单文件存储至省份标识为51的文件中,若不存在,则创建省份标识为51的文件,并将该话单文件存储至该文件中。
可以理解的是,当前不存在省份标识为51的文件,可能是消费者将省份标识为51的文件发送出去了,也可能是当前还没有获取到省份标识为51的话单文件,因此还没有创建,其具体实现方式可以根据实际需求进行选择。
以上是针对省份标识为51的文件进行的示例性的介绍,针对其它省份标识的实现方式类似,此处不再赘述,另外,图5中所指出的消费者各分区之间的对应关系,以及分区和省份标识的对应关系仅为示例性的,具体的实现方式可以根据实际需求进行选择。
下面对预设条件的可能的实现形式进行说明:
在一种可能的实现形式中,可以判断第一KAFKA分区中省份标识相同的话单文件的大小是否大于或等于预设大小,例如参见图5,可以判断省份标识为51的文件中所包括的各话单文件的总大小是否大于或等于预设大小,其中,预设大小的具体实现可以根据实际需求进行选择,本实施例对此不做限制。
或者,可以判断第一KAFKA分区中省份标识相同的话单文件对应的第一时长是否到达预设时长,其中,第一时长即为省份标识相同的话单文件被创建的时刻到当前时刻的时长,其中,预设时长的具体实现也可以根据实际需求进行选择。
若是第一KAFKA分区中省份标识相同的话单文件不满足预设条件,因为消费者还会从第一KAFKA分区中进行话单文件的获取,因此可以持续判断,直至满足预设条件。
值得说明的是,本实施例中提供的第一KAFKA分区是任一个可能的KAFKA分区,其并不是某一个具体的分区。
S308、将省份标识相同的话单文件进行合并,得到合并后的省份标识对应的话单文件。
其中,在省份标识相同的话单文件的大小大于或等于预设大小时,将省份标识相同的话单文件进行合并,可以保证合并的话单文件的大小为预设大小,从而能够有效提升合并后的话单文件的格式化程度。
或者,在省份标识相同的话单文件对应的第一时长到达预设时长时,将省份标识相同的话单文件进行合并,可以避免话单文件等待合并的时间过长,从而能够有效话单文件合并的处理效率。
S309、将合并后的省份标识对应的话单文件发送至计费系统。
在得到合并后的省份标识对应的话单文件之后,假设当前得到了省份标识为11的省份对应的话单文件,则可以将该话单文件发送给计费系统,以便计费系统可以根据话单文件进行计费处理。
随着拜访地业务的开展,每日处理的话单文件的总量平均达到1946322万条,则在一种可能的实现方式中,可以每日将上述介绍的合并后的省份标识对应的话单文件进行进一步合并,具体的,可以合并成固定大小以463408个发送给计费系统,从而避免了频繁的发送导致的系统性能降低。
本申请实施例提供的话单文件处理方法,包括:获取话单文件,其中,话单文件包括省份标识。对预设的多个省份标识进行分类处理,得到预设数量个分组,其中,各分组包括至少一个省份标识,每个分组对应一个KAFKA分区。将各KAFKA分区注册至ZOOKEEPER服务器,以使得ZOOKEEPER服务器对各KAFKA分区进行管理。判断话单文件的大小是否大于预设大小,若是,则将话单文件进行拆分,得到多个拆分后的话单文件,并将多个拆分后的话单文件分别发送至第一KAFKA分区。若否,则直接将话单文件发送至第一KAFKA分区。判断第一KAFKA分区中省份标识相同的话单文件是否满足预设条件,若是,则将省份标识相同的话单文件进行合并,得到合并后的省份标识对应的话单文件。将合并后的省份标识对应的话单文件发送至计费系统。通过K-MEANS聚类算法提前将预设的省份标识进行分类,其中分类的基数是KAFKA主题的分区数,以使得省份标识的分类结果与KAFKA主题的分区数相对应,从而可以快速的根据省份标识将话单文件发送至对应的分区,以及通过KAFKA进行话单文件的数据传输与话单文件的合并操作,能够有效保证话单文件的合并处理速度。
图6为本发明实施例提供的话单文件处理装置的结构示意图一。如图6所示,该装置60包括:获取模块601、发送模块602以及合并模块603。
获取模块601,用于获取话单文件,其中,所述话单文件包括省份标识;
发送模块602,用于根据所述省份标识,将所述话单文件发送至所述省份标识对应的第一KAFKA分区,其中,所述第一KAFKA分区对应有至少一个所述省份标识;
合并模块603,用于将所述第一KAFKA分区中省份标识相同的话单文件进行合并,得到合并后的所述省份标识对应的话单文件。
在一种可能的设计中,所述合并模块603,具体用于:
判断所述第一KAFKA分区中省份标识相同的话单文件是否满足预设条件;
若是,则将所述省份标识相同的话单文件进行合并;
若否,则持续判断,直至所述省份标识相同的话单文件满足预设条件。
在一种可能的设计中,所述预设条件为文件大小大于或等于预设大小;或者
所述省份标识相同的话单文件对应的第一时长是否到达预设时长。
在一种可能的设计中,所述发送模块602,具体用于:
判断所述话单文件的大小是否大于预设大小;
若是,则将所述话单文件进行拆分,得到多个拆分后的话单文件,并将所述多个拆分后的话单文件分别发送至所述第一KAFKA分区;
若否,则直接将所述话单文件发送至所述第一KAFKA分区。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图7为本发明实施例提供的话单文件处理装置的结构示意图二。如图7所示,本实施例在图6实施例的基础上,还包括:分类模块704。
在一种可能的设计中,还包括:分类模块704;
所述分类模块,用于在所述根据所述省份标识,将所述话单文件发送至所述省份标识对应的第一KAFKA分区之前,对预设的多个省份标识进行分类处理,得到预设数量个分组,其中,各所述分组包括至少一个省份标识,每个分组对应一个KAFKA分区;
将各所述KAFKA分区注册至ZOOKEEPER服务器,以使得所述ZOOKEEPER服务器对各所述KAFKA分区进行管理。
在一种可能的设计中,所述分类模块704,具体用于:
利用K-MEANS聚类算法对预设的多个省份标识进行分类处理,得到预设数量个数组。
在一种可能的设计中,所述发送模块702还用于:
在所述得到合并后的所述省份标识对应的话单文件之后,将所述合并后的所述省份标识对应的话单文件发送至计费系统。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图8为本发明实施例提供的话单文件处理设备的硬件结构示意图,如图8所示,本实施例的话单文件处理设备80包括:处理器801以及存储器802;其中
存储器802,用于存储计算机执行指令;
处理器801,用于执行存储器存储的计算机执行指令,以实现上述实施例中话单文件处理方法所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。
可选地,存储器802既可以是独立的,也可以跟处理器801集成在一起。
当存储器802独立设置时,该话单文件处理设备还包括总线803,用于连接所述存储器802和处理器801。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上话单文件处理设备所执行的话单文件处理方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (12)
1.一种话单文件处理方法,其特征在于,包括:
获取话单文件,其中,所述话单文件包括省份标识;
根据所述省份标识,将所述话单文件发送至所述省份标识对应的第一KAFKA分区,其中,所述第一KAFKA分区对应有至少一个所述省份标识;
将所述第一KAFKA分区中省份标识相同的话单文件进行合并,得到合并后的所述省份标识对应的话单文件;
其中,所述根据所述省份标识,将所述话单文件发送至所述省份标识对应的第一KAFKA分区之前,所述方法还包括:
对预设的多个省份标识进行分类处理,得到预设数量个分组,其中,各所述分组包括至少一个省份标识,每个分组对应一个KAFKA分区;
将各所述KAFKA分区注册至ZOOKEEPER服务器,以使得所述ZOOKEEPER服务器对各所述KAFKA分区进行管理;
其中,所述对预设的多个省份标识进行分类处理,得到预设数量个数组,包括:
利用K-MEANS聚类算法对预设的多个省份标识进行分类处理,得到预设数量个数组。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一KAFKA分区中省份标识相同的话单文件进行合并,包括:
判断所述第一KAFKA分区中省份标识相同的话单文件是否满足预设条件;
若是,则将所述省份标识相同的话单文件进行合并;
若否,则持续判断,直至所述省份标识相同的话单文件满足预设条件。
3.根据权利要求2所述的方法,其特征在于,所述预设条件为文件大小大于或等于预设大小;或者
所述省份标识相同的话单文件对应的第一时长是否到达预设时长。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述省份标识,将所述话单文件发送至所述省份标识对应的第一KAFKA分区,包括:
判断所述话单文件的大小是否大于预设大小;
若是,则将所述话单文件进行拆分,得到多个拆分后的话单文件,并将所述多个拆分后的话单文件分别发送至所述第一KAFKA分区;
若否,则直接将所述话单文件发送至所述第一KAFKA分区。
5.根据权利要求1所述的方法,其特征在于,所述得到合并后的所述省份标识对应的话单文件之后,所述方法还包括:
将所述合并后的所述省份标识对应的话单文件发送至计费系统。
6.一种话单文件处理装置,其特征在于,包括:
获取模块,用于获取话单文件,其中,所述话单文件包括省份标识;
发送模块,用于根据所述省份标识,将所述话单文件发送至所述省份标识对应的第一KAFKA分区,其中,所述第一KAFKA分区对应有至少一个所述省份标识;
合并模块,用于将所述第一KAFKA分区中省份标识相同的话单文件进行合并,得到合并后的所述省份标识对应的话单文件;
其中,还包括:分类模块;
所述分类模块,用于在所述根据所述省份标识,将所述话单文件发送至所述省份标识对应的第一KAFKA分区之前,对预设的多个省份标识进行分类处理,得到预设数量个分组,其中,各所述分组包括至少一个省份标识,每个分组对应一个KAFKA分区;
将各所述KAFKA分区注册至ZOOKEEPER服务器,以使得所述ZOOKEEPER服务器对各所述KAFKA分区进行管理;
其中,所述分类模块,具体用于:
利用K-MEANS聚类算法对预设的多个省份标识进行分类处理,得到预设数量个数组。
7.根据权利要求6所述的装置,其特征在于,所述合并模块,具体用于:
判断所述第一KAFKA分区中省份标识相同的话单文件是否满足预设条件;
若是,则将所述省份标识相同的话单文件进行合并;
若否,则持续判断,直至所述省份标识相同的话单文件满足预设条件。
8.根据权利要求7所述的装置,其特征在于,所述预设条件为文件大小大于或等于预设大小;或者
所述省份标识相同的话单文件对应的第一时长是否到达预设时长。
9.根据权利要求6至8任一项所述的装置,其特征在于,所述发送模块,具体用于:
判断所述话单文件的大小是否大于预设大小;
若是,则将所述话单文件进行拆分,得到多个拆分后的话单文件,并将所述多个拆分后的话单文件分别发送至所述第一KAFKA分区;
若否,则直接将所述话单文件发送至所述第一KAFKA分区。
10.根据权利要求6所述的装置,其特征在于,所述发送模块还用于:
在所述得到合并后的所述省份标识对应的话单文件之后,将所述合并后的所述省份标识对应的话单文件发送至计费系统。
11.一种话单文件处理设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如权利要求1至5中任一所述的方法。
12.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010016727.4A CN111274209B (zh) | 2020-01-08 | 2020-01-08 | 话单文件处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010016727.4A CN111274209B (zh) | 2020-01-08 | 2020-01-08 | 话单文件处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111274209A CN111274209A (zh) | 2020-06-12 |
CN111274209B true CN111274209B (zh) | 2023-05-30 |
Family
ID=71001621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010016727.4A Active CN111274209B (zh) | 2020-01-08 | 2020-01-08 | 话单文件处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111274209B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150763B (zh) * | 2021-03-30 | 2024-05-07 | 中国移动通信集团江苏有限公司 | 一种话单计费方法及装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7260195B1 (en) * | 2001-11-13 | 2007-08-21 | Verizon Laboratories Inc. | Call management service |
CN101365183A (zh) * | 2008-09-28 | 2009-02-11 | 中国网络通信集团公司 | 异地缴费业务的实现方法及异地业务支撑平台 |
EP2178244A1 (en) * | 2007-08-23 | 2010-04-21 | Huawei Technologies Co Ltd | A method and device for merging bill and saving the state of the buffer queue |
CN102761851A (zh) * | 2011-04-25 | 2012-10-31 | 中国移动通信集团设计院有限公司 | 一种利用分割话单进行计费的方法及设备 |
CN105338208A (zh) * | 2015-10-16 | 2016-02-17 | 中国联合网络通信集团有限公司 | 统一话单计费方法及系统 |
CN105376722A (zh) * | 2015-10-23 | 2016-03-02 | 中国联合网络通信集团有限公司 | 话单分级压缩方法、装置及系统 |
CN107104806A (zh) * | 2017-04-13 | 2017-08-29 | 中国联合网络通信集团有限公司 | 话单处理方法、装置及系统 |
CN107704566A (zh) * | 2017-09-29 | 2018-02-16 | 中国联合网络通信集团有限公司 | 话单集采预处理方法、系统及排重、拆分和合并系统 |
CN107959696A (zh) * | 2016-10-17 | 2018-04-24 | 中兴通讯股份有限公司 | 一种日志话单处理方法及系统 |
CN110532294A (zh) * | 2019-09-03 | 2019-12-03 | 中国联合网络通信集团有限公司 | 话单合并方法、装置、设备及计算机可读存储介质 |
-
2020
- 2020-01-08 CN CN202010016727.4A patent/CN111274209B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7260195B1 (en) * | 2001-11-13 | 2007-08-21 | Verizon Laboratories Inc. | Call management service |
EP2178244A1 (en) * | 2007-08-23 | 2010-04-21 | Huawei Technologies Co Ltd | A method and device for merging bill and saving the state of the buffer queue |
CN101365183A (zh) * | 2008-09-28 | 2009-02-11 | 中国网络通信集团公司 | 异地缴费业务的实现方法及异地业务支撑平台 |
CN102761851A (zh) * | 2011-04-25 | 2012-10-31 | 中国移动通信集团设计院有限公司 | 一种利用分割话单进行计费的方法及设备 |
CN105338208A (zh) * | 2015-10-16 | 2016-02-17 | 中国联合网络通信集团有限公司 | 统一话单计费方法及系统 |
CN105376722A (zh) * | 2015-10-23 | 2016-03-02 | 中国联合网络通信集团有限公司 | 话单分级压缩方法、装置及系统 |
CN107959696A (zh) * | 2016-10-17 | 2018-04-24 | 中兴通讯股份有限公司 | 一种日志话单处理方法及系统 |
CN107104806A (zh) * | 2017-04-13 | 2017-08-29 | 中国联合网络通信集团有限公司 | 话单处理方法、装置及系统 |
CN107704566A (zh) * | 2017-09-29 | 2018-02-16 | 中国联合网络通信集团有限公司 | 话单集采预处理方法、系统及排重、拆分和合并系统 |
CN110532294A (zh) * | 2019-09-03 | 2019-12-03 | 中国联合网络通信集团有限公司 | 话单合并方法、装置、设备及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
基于消息化的热计费研究;王鹏;《中国新通信》(第20期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111274209A (zh) | 2020-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106657213B (zh) | 文件传输方法和装置 | |
US20180357111A1 (en) | Data center operation | |
US8321870B2 (en) | Method and system for distributed computation having sub-task processing and sub-solution redistribution | |
US20150347305A1 (en) | Method and apparatus for outputting log information | |
WO2018058998A1 (zh) | 一种数据加载方法、终端和计算集群 | |
CN112800095A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN108334609A (zh) | Oracle中实现JSON格式数据存取的方法、装置、设备及存储介质 | |
CN108809514A (zh) | 一种数据传输方法及相关设备 | |
CN110825706B (zh) | 一种数据压缩的方法和相关设备 | |
Caneill et al. | Locality-aware routing in stateful streaming applications | |
CN112182043A (zh) | 日志数据查询方法、装置、设备及存储介质 | |
CN114265927A (zh) | 数据查询方法及装置、存储介质及电子装置 | |
CN110727738A (zh) | 基于数据分片的全局路由系统、电子设备及存储介质 | |
CN111885184A (zh) | 高并发场景下热点访问关键字处理方法和装置 | |
WO2021027331A1 (zh) | 基于图数据的全量关系计算方法、装置、设备及存储介质 | |
CN111274209B (zh) | 话单文件处理方法及装置 | |
CN106156258B (zh) | 一种在分布式存储系统中统计数据的方法、装置及系统 | |
CN111259012B (zh) | 数据均匀化方法、装置、计算机设备及存储介质 | |
Jin et al. | A parallel community structure mining method in big social networks | |
CN107451154B (zh) | 一种数据表的处理方法、装置及系统 | |
CN106156210B (zh) | 一种确定应用标识匹配列表的方法和装置 | |
CN108960378B (zh) | 一种数据下载方法、系统、装置和存储介质 | |
CN112817980B (zh) | 一种数据索引处理方法、装置、设备及存储介质 | |
CN111881086B (zh) | 大数据的存储方法、查询方法、电子装置及存储介质 | |
CN114115696B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |