一种账单处理方法、装置及系统与流程

文档序号:22615978发布日期:2020-10-23 19:16阅读:145来源:国知局
一种账单处理方法、装置及系统与流程

本申请涉及数据处理领域,尤其涉及一种账单处理方法、装置及系统。



背景技术:

目前,内容安全识别服务的主要调用形式为通过api请求进行调用,以达到对图片、视频、音频、文本等不同内容形式的媒体进行安全识别,包括鉴黄、暴恐、违规、涉政等违规内容。主要计费方式包括按api调用频次、时长等方式进行账单统计计算。对于内容安全识别服务的账单统计方式主要根据用户调用的服务及安全识别的媒体类型生成响应的流水数据,统计服务对流水数据进行数据库存储,按不同账户计算后进行付费。

现有技术仅适合小数据量级的账单统计计算,当数据量达到一定阈值后会出现计算任务耗时时间长,不能够满足大数据量级下客户对账单要求的稳定可靠要求。



技术实现要素:

为了解决上述技术问题或者至少部分地解决上述技术问题,本申请实施例提供了一种账单处理方法、装置及系统。

根据本申请实施例的一个方面,提供了一种账单处理方法,包括:

构建数据消费进程;

通过所述数据消费进程消费消息系统中的流水数据和账单数据,将所述流水数据和账单数据写入文件存储系统;

根据接收到的统计任务从所述文件存储系统中调度所述流水数据和账单数据进行统计计算,得到统计结果;

将所述统计结果同步到指定数据库。

可选的,所述通过所述数据消费进程消费消息系统中的流水数据和账单数据,将所述流水数据和账单数据写入文件存储系统,包括:

确定所述消息系统中待消费的业务主题;

将所述数据消费进程中数据收集组件的数据源地址信息配置为所述业务主题,将所述数据消费进程中数据发送组件的目标地址信息配置为所述文件存储系统;

通过所述数据收集组件从所述业务主题读取所述流水数据和账单数据;

通过所述数据发送组件将所述流水数据和账单数据发送到所述文件存储系统进行存储。

可选的,当一条所述流水数据中包括多项内容安全识别服务交易时,所述根据接收到的统计任务从所述文件存储系统中调度所述流水数据和账单数据进行统计计算,包括:

将所述流水数据拆分为多个子流水数据,每个所述子流水数据与一项所述内容安全识别服务交易对应;

确定所述子流水数据对应的所述账单数据;

根据所述子流水数据及其对应的所述账单数据进行统计计算。

可选的,所述根据接收到的统计任务从所述文件存储系统中调度所述流水数据和账单数据进行统计计算,包括:

确定所述统计任务对应的指定统计维度;

根据所述指定统计维度对所述流水数据和账单数据进行统计计算。

可选的,所述方法还包括:

在内容安全识别服务被调用后生成所述流水数据和账单数据;

将所述流水数据和账单数据写入到所述消息系统。

可选的,所述在内容安全识别服务被调用后生成所述流水数据和账单数据,包括:

获取被调用的所述内容安全识别服务对应的媒体格式及服务类型;

根据所述媒体格式和服务类型生成所述内容安全识别服务对应的所述流水数据和账单数据。

根据本申请实施例的另一个方面,提供了一种账单处理装置,包括:

构建模块,用于构建数据消费进程;

消费模块,用于通过所述数据消费进程消费消息系统中的流水数据和账单数据,将所述流水数据和账单数据写入文件存储系统;

计算模块,用于根据接收到的统计任务从所述文件存储系统中调度所述流水数据和账单数据进行统计计算,得到统计结果;

同步模块,用于将所述统计结果同步到指定数据库。

根据本申请实施例的另一个方面,提供了一种账单处理系统,包括:

消息系统,用于存储在内容安全识别服务被调用后生成的流水数据和账单数据;

日志收集系统,用于构建数据消费进程,通过所述数据消费进程消费所述消息系统中的所述流水数据和账单数据,将所述流水数据和账单数据写入文件存储系统;

所述文件存储系统,用于存储所述流水数据和账单数据;

任务调度器,用于根据接收到的统计任务从所述文件存储系统中调度所述流水数据和账单数据;

计算引擎,用于对所述任务调度器调度的所述流水数据和账单数据进行统计计算,得到统计结果,并将所述统计结果存储到所述文件存储系统;

数据转移器,用于将所述文件存储系统中的所述统计结果同步到指定数据库;

所述指定数据库,用于存储所述统计结果。

根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的步骤。

根据本申请实施例的另一方面,还提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

所述存储器,用于存放计算机程序;

所述处理器,用于执行计算机程序时,实现上述方法步骤。

根据本申请实施例的另一方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法步骤。

本申请实施例提供的上述技术方案与现有技术相比具有如下优点:通过数据消费进程消费消息系统中的流水数据和账单数据,将流水数据和账单数据写入文件存储系统,在高并发、高每秒查询率(queries-per-second,简称qps)下,保证大数据量数据可以持续准确地写入存储系统,同时,可以精准对用户调用内容安全识别服务对不同媒体类型的内容进行安全识别后所产生的账单进行统计计算,提高账单统计的可靠性。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种账单处理方法的流程图;

图2为本申请另一实施例提供的一种账单处理方法的流程图;

图3为本申请另一实施例提供的一种账单处理方法的流程图;

图4为本申请另一实施例提供的一种账单处理方法的流程图;

图5为本申请实施例提供的一种账单处理装置的框图;

图6为本申请实施例提供的一种账单处理系统的框图;

图7为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例,用户调用内容安全识别服务的应用程序接口(applicationprogramminginterface,简称api)后,该次调用的流水数据和账单数据被发送至消息系统中,如kafka,从消息系统中获取流水数据和账单数据进行统计。

其中,kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。

下面首先对本发明实施例所提供的一种账单处理方法进行介绍。

图1为本申请实施例提供的一种账单处理方法的流程图。如图1所示,该方法包括以下步骤:

步骤s11,构建数据消费进程。

该步骤中,可以采用flume日志收集系统从消息系统中获取流水数据和消费数据。首先,需要构建数据消费进程,如flumeagent。

其中,flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,flume提供对数据进行简单处理,并写到各种数据接受方的能力。

flumeagent为独立的flume进程,是一个完整的数据收集工具。本实施例中,可以通过flumeagent进行流水数据和账单数据的收集。

步骤s12,通过数据消费进程消费消息系统中的流水数据和账单数据,将流水数据和账单数据写入文件存储系统。

该步骤中,文件存储系统可以为hadoop分布式文件系统(hadoopdistributedfilesystem,简称hdfs)。

例如,通过flumeagent消费kafka中的流水数据和账单数据,将其写入到hdfs。

步骤s13,根据接收到的统计任务从文件存储系统中调度对应的流水数据和账单数据进行统计计算,得到统计结果。

该步骤中,可以通过azkaban任务调度器从hdfs中调度统计任务对应的流水数据和账单数据,对调度的流水数据和账单数据执行sparksql任务,进行统计计算。

其中,azkaban是一个批量工作流任务调度器,主要用于在一个工作流内以一个特定的顺序运行一组工作和流程。sparksql是spark用来处理结构化数据的一个模块,提供两个编程抽象dataframe(组织成命名列的数据集)和dataset(数据分布式集合),用于作为分布式sql查询引擎。spark是基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序。

步骤s14,将统计结果同步到指定数据库。

该步骤中,可以通过sqoop工具将存储于hdfs的统计结果同步到指定数据库,如关系型数据库mysql。后续可以从关系型数据库mysql中获取账单统计结果进行数据传输或展示。

sqoop主要用于在hadoop(hive)与传统的数据库(如mysql、postgresql、oracle、……)间进行数据的传递,可以将一个关系型数据库中的数据导入到hadoop的hdfs中,也可以将hdfs的数据导进到关系型数据库中。

本实施例中,通过数据消费进程消费消息系统中的流水数据和账单数据,将流水数据和账单数据写入文件存储系统,在高并发、高每秒查询率(queries-per-second,简称qps)下,保证大数据量数据可以持续准确地写入存储系统,同时,可以精准对用户调用内容安全识别服务对不同媒体类型的内容进行安全识别后所产生的账单进行统计计算,提高账单统计的可靠性。

图2为本申请另一实施例提供的一种账单处理方法的流程图。如图2所示,上述步骤s12包括:

步骤s21,确定消息系统中待消费的业务主题。

flumeagent可以消费kafka中指定的业务topic(主题)。

flumeagent中包括三类组件:数据收集组件(source)、数据缓冲组件(channel)及数据发送组件(sink)。

其中,source负责将数据捕获后进行特殊的格式化,将数据封装到事件(event)里,然后将事件推入channel中。flume提供了很多内置的source,支持avro,log4j,syslog和httppost,flume还提供自动以source。

channel是连接source和sink的组件,可以看作一个数据缓冲区(数据队列),它可以将事件暂存到内存中也可以持久化到本地磁盘上,直到sink处理完该事件。

sink从channel中取出事件,然后将数据发到别处,可以向文件系统、数据库、hdfs等,也可以是其他agent的source。

步骤s22,将数据消费进程中数据收集组件的数据源地址信息配置为业务主题,将数据消费进程中数据发送组件的目标地址信息配置为文件存储系统。

该步骤中,将source的数据源地址信息配置为步骤s21中确定的业务topic,将sink的目标地址信息配置为hdfs。

步骤s23,通过数据收集组件从业务主题读取流水数据和账单数据。

在配置数据原地址信息后,通过source从业务topic读取流水数据和账单数据。该流水数据和账单数据被推入到channel中。

步骤s24,通过数据发送组件将流水数据和账单数据发送到文件存储系统进行存储。

在配置目标地址信息之后,通过sink从channel中取出数据并发送到hdfs进行存储。

本实施例中,可以通过flumeagent从kafka的业务topic中读取流水数据和账单数据,将其写入到hdfs中。这样,kafka中业务topic的数据,经过source组件消费后,再由sink组件写入到hdfs,整个过程省略了大量的业务编码工作。

在进行账单统计过程中,由于一条流水数据中可能包括多项内容安全识别服务交易,例如,用户同时对视频进行鉴黄识别、暴恐识别、违规识别,三项识别服务交易记录在同一流水数据中,而每项识别服务交易分别对应不同的账单数据,这样,不同识别服务之间账单统计量无法对齐,无法准确进行账单统计计算。

图3为本申请另一实施例提供的一种账单处理方法的流程图。如图3所示,为解决上述技术问题,当一条流水数据中包括多项内容安全识别服务交易时,步骤s13包括:

步骤s31,将流水数据拆分为多个子流水数据,每个子流水数据与一项内容安全识别服务交易对应;

步骤s32,确定子流水数据对应的账单数据;

步骤s33,根据子流水数据及其对应的账单数据进行统计计算。

这样,通过对流水数据的拆分,使得对于每一项内容安全识别服务交易都得到其对应的流水数据和账单数据,实现对不同识别服务的账单进行统计,提高账单统计的准确度和可靠性。

在可选实施例中,步骤s13包括:确定统计任务对应的指定统计维度;根据指定统计维度对流水数据和账单数据进行统计计算。

其中,统计维度可以包括:用户维度、内容安全识别服务维度、时间维度、媒体类型维度等等。指定统计维度可以包含上述一种统计维度或至少两种统计维度的组合。

本实施例中,可以灵活选择统计维度对用户调用内容安全识别服务进行账单统计,并且,基于不同内容安全识别服务对其账单,使得对账单的统计更加准确。

在另一个可选实施例中,该方法还包括将用户使用内容安全识别服务后所产生的流水数据和账单数据写入消息系统kafka的步骤,具体如下:

步骤a1,在内容安全识别服务被调用后生成流水数据和账单数据;

步骤a2,将流水数据和账单数据写入到消息系统。

其中,流水数据和账单数据可以按照protobuf(googleprotocolbuffer)协议在kafka中进行结构化数据存储。

可选的,步骤a1包括:

步骤a11,获取被调用的内容安全识别服务对应的媒体格式及服务类型。

其中,媒体格式包括图片、视频、音频、文字等等。服务类型包括:鉴黄识别、暴恐识别、违规识别、涉政识别等等。

步骤a12,根据媒体格式和服务类型生成内容安全识别服务对应的流水数据和账单数据。

根据媒体格式不同,用户调用内容安全识别服务所产生的流水数据和账单数据也不同。例如,对图片、视频、音频、文本的安全识别服务所对应的计费形式不同,图片是按张计费,而视频、音频是根据数据量计费,文本是根据字符数计费。另外,不同的服务类型也可能对应不同的计费标准。因此,根据用户调用内容安全识别服务的媒体格式和服务类型生成相应的流水数据和账单数据。

下面以一个具体实例对本申请的账单处理方法进行详细说明。

图4为本申请另一实施例提供的一种账单处理方法的流程图。如图4所示,对于内容安全识别服务的账单处理步骤如下:

步骤s41,将用户调用内容安全识别服务api所产生的流水数据和账单数据按照protobuf协议在kafka中存储;

步骤s42,通过flumeagent消费kafka中的流水数据和账单数据,将其写入到hdfs;

步骤s43,通过azkaban任务调度器从hdfs中调度统计任务对应的流水数据和账单数据;

步骤s44,对调度的流水数据和账单数据执行sparksql任务,进行统计计算,得到统计结果;

步骤s45,将统计结果写入hdfs;

步骤s46,通过sqoop工具将hdfs中的统计结果同步到mysql。

本实施例,可以在高并发、高qps、大数据量条件下精准计算客户内容安全识别服务不同媒体形式的通用账单统计计算,支持对媒体格式和内容安全服务类型的任意扩展,实现百亿级数据存储及高可靠性的账单统计计算。

下述为本申请装置实施例,可以用于执行本申请方法实施例。

图5为本申请实施例提供的一种账单处理装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图5所示,该账单处理装置包括:

构建模块51,用于构建数据消费进程;

消费模块52,用于通过数据消费进程消费消息系统中的流水数据和账单数据,将流水数据和账单数据写入文件存储系统;

计算模块53,用于从文件存储系统中调度统计任务对应的流水数据和账单数据进行统计计算,得到统计结果;

同步模块54,用于将统计结果同步到指定数据库。

图6为本申请实施例提供的一种账单处理系统的框图,如图6所示,该账单处理系统包括:

消息系统61,用于存储在内容安全识别服务被调用后生成的流水数据和账单数据;

日志收集系统62,用于构建数据消费进程,通过数据消费进程消费消息系统61中的流水数据和账单数据,将流水数据和账单数据写入文件存储系统63;

文件存储系统63,用于存储流水数据和账单数据;

任务调度器64,用于从文件存储系统63中调度统计任务对应的流水数据和账单数据;

计算引擎65,用于对任务调度器64调度的流水数据和账单数据进行统计计算,得到统计结果,并将统计结果存储到文件存储系统63;

数据转移器66,用于将文件存储系统63中的统计结果同步到指定数据库67;

指定数据库67,用于存储统计结果。

可选的,消息系统61可以为kafka。日志收集系统62可以为flume。文件存储系统63可以为hdfs。任务调度器64可以为azkaban。计算引擎65可以为spark。数据转移器66可以为sqoop。指定数据库67可以为mysql。

本申请实施例还提供一种电子设备,如图7所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。

存储器1503,用于存放计算机程序;

处理器1501,用于执行存储器1503上所存放的计算机程序时,实现以下上述方法实施例的步骤。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下上述方法实施例的步骤。

需要说明的是,对于上述装置、电子设备及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

进一步需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1