掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法、装置、设备及存储介质

文献发布时间:2023-06-19 11:54:11


数据处理方法、装置、设备及存储介质

技术领域

本公开涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备及存储介质。

背景技术

归因分析是指多种因素的共同作用下造成某一结果时,分析各种因素分别起到了多大的作用,从而确定该结果是由哪一种或哪一些因素引起的,以便对结果的出现提供解释。

相关技术中,算法工程师和后端工程师在编程时,通常会使用不同的计算机语言。例如,算法工程师会基于python语言开发归因分析算法,后端工程师会基于java语言开发后端工程。其中,python语言是一种交互式的计算机程序设计语言,具有丰富的第三方插件。java语言是一种面向对象的程序设计语言。在归因分析的过程中,要人工对归因分析算法的程序代码进行翻译,将归因分析算法的程序代码从python语言翻译至java语言,然后通过后端工程运行归因分析算法,从而应用归因分析算法对业务数据进行处理。

采用上述方法时,翻译的过程会耗费大量时间,并带来很大的人力成本,造成数据处理的效率低下。

发明内容

本公开提供一种数据处理方法、装置、设备及存储介质,以至少解决相关技术中数据处理的效率低下的问题。本公开的技术方案如下:

根据本公开实施例的第一方面,提供一种数据处理方法,包括:

通过归因分析模块,从服务器接收基于第一计算机语言的调用指令;

响应于所述调用指令,调用算法模块,所述算法模块封装了基于第二计算机语言的归因分析算法;

在运行所述算法模块的过程中,通过所述归因分析算法对业务数据进行处理,得到处理结果。

可选地,所述归因分析模块基于进程实现,所述算法模块基于嵌入至所述进程中的子进程实现。

可选地,所述调用算法模块,包括:

将业务数据的地址传入所述子进程;

所述调用算法模块之后,所述方法还包括:

通过所述子进程,访问所述地址,得到所述地址存储的所述业务数据。

可选地,所述归因分析模块基于远程过程调用存根RPC Stub实现,所述算法模块基于所述RPC Stub对应的RPC服务端实现。

可选地,所述业务数据的数据结构为目标数据结构,所述目标数据结构的索引包括指标标识、维度标识和维度值,所述目标数据结构的值包括至少一个时间点中每个时间点对应的指标值,指标值为所述指标标识对应的指标在对应时间点的取值。

可选地,所述目标数据结构通过对原始数据结构按照时间点进行处理后得到,所述原始数据结构的索引包括时间点、指标标识、维度标识和维度值,所述原始数据结构的值包括指标值。

可选地,所述通过归因分析模块,从服务器接收基于第一计算机语言的调用指令之前,所述方法还包括:

根据基础数据进行关联查询,得到所述基础数据对应的用户画像数据,所述基础数据包括所述服务器对应的客户端在至少一个维度的维度值;

根据所述基础数据以及所述用户画像数据,生成所述业务数据,所述业务数据包括所述基础数据以及所述用户画像数据。

根据本公开实施例的第二方面,提供一种数据处理装置,包括:

接收单元,被配置为执行通过归因分析模块,从服务器接收基于第一计算机语言的调用指令;

调用单元,被配置为执行响应于所述调用指令,调用算法模块,所述算法模块封装了基于第二计算机语言的归因分析算法;

处理单元,被配置为执行在运行所述算法模块的过程中,通过所述归因分析算法对业务数据进行处理,得到处理结果。

可选地,所述归因分析模块基于进程实现,所述算法模块基于嵌入至所述进程中的子进程实现。

可选地,所述调用单元,被配置为执行:将业务数据的地址传入所述子进程;

所述装置还包括:访问单元,被配置为执行通过所述子进程,访问所述地址,得到所述地址存储的所述业务数据。

可选地,所述归因分析模块基于远程过程调用存根RPC Stub实现,所述算法模块基于所述RPC Stub对应的RPC服务端实现。

可选地,所述业务数据的数据结构为目标数据结构,所述目标数据结构的索引包括指标标识、维度标识和维度值,所述目标数据结构的值包括至少一个时间点中每个时间点对应的指标值,指标值为所述指标标识对应的指标在对应时间点的取值。

可选地,所述目标数据结构通过对原始数据结构按照时间点进行处理后得到,所述原始数据结构的索引包括时间点、指标标识、维度标识和维度值,所述原始数据结构的值包括指标值。

可选地,所述装置还包括:

查询单元,被配置为执行根据基础数据进行关联查询,得到所述基础数据对应的用户画像数据,所述基础数据包括所述服务器对应的客户端在至少一个维度的维度值;

生成单元,被配置为执行根据所述基础数据以及所述用户画像数据,生成所述业务数据,所述业务数据包括所述基础数据以及所述用户画像数据。

根据本公开实施例的第三方面,提供一种电子设备,包括:

一个或多个处理器;

用于存储所述处理器可执行指令的一个或多个存储器;

其中,所述一个或多个处理器被配置为执行所述指令,以实现上述数据处理方法。

根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行上述数据处理方法。

根据本公开实施例的第五方面,提供一种计算机程序产品,包括一条或多条指令,所述一条或多条指令由电子设备的处理器执行时,使得所述电子设备能够执行上述数据处理方法。

本公开的实施例提供的技术方案至少带来以下有益效果:

本实施例提供的方法,通过算法模块,将第二计算机语言实现的归因分析算法封装起来,通过归因分析模块,对外部服务提供基于第一计算机语言调用的接口,在归因分析的过程中,归因分析模块能够充当外部服务与算法模块之间的通信媒介,外部服务通过基于第一计算机语言调用归因分析模块,即可触发算法模块对业务数据进行处理,得到处理结果。该方法由于免去了将归因分析算法的程序代码从第二计算机语言翻译至第一计算机语言的过程,因此节省了翻译过程耗费的时间,并节约了翻译过程带来的人力成本以及物力成本,提高了归因分析过程中处理数据的效率,让数据处理更便捷、更快速,有助于方便、高效的对算法工程线上服务化。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

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

图1是根据一示例性实施例示出的一种归因分析的实施环境的示意图;

图2是根据一示例性实施例示出的一种数据处理方法的系统架构图;

图3是根据一示例性实施例示出的一种数据处理方法的流程图;

图4是根据一示例性实施例示出的一种数据处理方法的流程图;

图5是根据一示例性实施例示出的一种目标数据结构的示意图;

图6是根据一示例性实施例示出的一种原始数据结构的示意图;

图7是根据一示例性实施例示出的一种数据处理方法的示意图;

图8是根据一示例性实施例示出的一种数据处理方法的示意图;

图9是根据一示例性实施例示出的一种数据处理装置的框图;

图10是根据一示例性实施例示出的一种终端的框图;

图11是根据一示例性实施例示出的一种服务器的框图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

本公开所涉及的用户信息可以为经用户授权或者经过各方充分授权的信息。

以下,对本公开涉及的几个术语进行描述。

归因分析是大数据技术领域中数据化分析与运营技术的一个技术领域。在多种因素共同作用造成的某一结果时,可以通过归因分析,找到各种因素应该占有造成该结果的多大的作用,即功劳应该如何分配以及归咎于谁。目前,归因分析的数据产品稀缺,主要原因其一是完备的归因分析算法相对较少,服务化难度较高,其二业界没有一套成熟的归因分析数据产品解决方案能提供参考。归因分析的应用大多还停留在case by case(具体问题具体分析)的工作模式,这种方式门槛高且消耗大量的人力。概括上来说归因分析有以下几个问题需要解决:第一,归因算法预研问题;第二,算法线上服务化问题;第三,归因基础数据计算链路问题。很多情况下,即使具有算法预研能力,由于缺乏将算法高效地服务化方案,导致无法将归因分析做到产品化,也就难以发挥更大的价值。而通过下述实施例,可以提供归因分析数据产品,该归因分析数据产品可以是自动化分析工具,能够通过一系列指标值的波动挖掘,对指标给出更合理的解释,从而大大降低了分析的门槛,大大节约了人力成本和物力成本。

算法服务化是一种微服务的思想,分布式服务架构主要通过服务化和层次化进行解耦拆分。系统可以降解为策略和层次,架构设计就是把相同的策略分到同一个组件中。所以,架构设计可以通过分层设计,由高层次服务调用低层次服务,之间通过接口提供服务,从而实现系统间的解耦。其中,低层次服务是指从高层次服务拆分出来的服务,低层次服务是高层次服务的子服务,即微服务。例如,高层次服务可以是归因分析服务,该归因分析服务可以提供一种或多种归因分析算法对应的子服务,每个子服务为低层次服务。

以下,对本公开实施例的硬件环境进行示例性说明。

图1是根据一示例性实施例示出的一种数据处理方法的实施环境的示意图。该实施环境包括:终端101和归因分析平台110。

终端101通过无线网络或有线网络与归因分析平台110相连。终端101可以是智能手机、游戏主机、台式计算机、平板电脑、电子书阅读器、MP3(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)播放器或MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器和膝上型便携计算机中的至少一种。终端101安装和运行有支持应用程序。该应用程序可以是直播应用、多媒体应用、短视频应用等。示例性的,终端101是用户使用的终端,终端101中运行的应用程序内登录有用户账号。

终端101通过无线网络或有线网络与归因分析平台110相连。

归因分析平台110包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。归因分析平台110用于为应用程序提供后台服务。作为示例,归因分析平台110可以具有图2所示的逻辑功能架构,归因分析平台110可以执行下述图3实施例或图4实施例。

可选地,归因分析平台110包括:服务器1101、服务器1102和数据库1103。服务器1101用于进行业务处理,服务器1102用于提供归因分析服务。服务器1101可以向服务器1102发送调用指令,从而指令服务器1102进行归因分析。数据库1103可以用于存储业务数据,当需要时,数据库1103可以将存储的业务数据提供给服务器1101或服务器1102。

本领域技术人员可以知晓,终端101、服务器1101、服务器1102的数量可以更多或更少。比如终端101、服务器1101、服务器1102可以仅为一个,或者终端101、服务器1101或服务器1102为几十个或几百个,或者更多数量,此时上述归因分析系统还包括其他终端或其他服务器。本公开实施例对终端或服务器的数量和设备类型不加以限定。

以上示例性介绍了本申请的硬件架构,该硬件架构可以作为下述方法实施例的基础设施。以下通过图2,示例性介绍本申请提供的逻辑功能架构。

参见图2,图2是根据一示例性实施例示出的一种数据处理方法的系统架构图,该系统架构可以提供为归因分析工程化的解决方案,该架构包括若干软件逻辑模块,该架构主要包括:数据源、数据采集层、计算分析层、结果存储层,应用层。各层主要作用如下:

数据源:用于存储数据,向上层提供数据。应用在归因分析领域中,数据源存储的数据可以是业务数据。该业务数据可以是应用在一个或多个维度中每个维度上的维度值,具体可以是各种指标的指标值,比如说,可以是管理看板指标的指标值、核心日报的指标值以及各种服务的监控面板指标的指标值等。由于业务数据包括丰富的维度信息,便于利用维度信息对业务数据进行归因分析。数据源存储的数据可以是基础数据,也可以是从基础数据通过聚合得到的数据。其中,基础数据可以是格式化、半格式化的形式。

数据源可以包括一个或多个数据库。例如,数据源可以包括hive数据库以及clickhouse数据库。其中,hive数据库是基于Hadoop的一个数据仓库工具,用来进行数据抽取(extract)和转换(transform)以及加载(load),hive数据库是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据库能将结构化的数据文件映射为一张数据库表,并提供结构化查询语言(Structured Query Language,简称SQL)查询功能,能将SQL语句转变成MapReduce(分解合并)任务来执行。clickhouse数据库是一种用于联机分析处理的列式数据库管理系统。hive数据库和数据采集层中的HBase数据库能够离线进行通信,另外,clickhouse数据库和计算分析层中的归因中控模块能够在线进行通信。

当然,hive数据库以及clickhouse数据库是对数据源的举例说明,数据源也可以是其他类型的数据库,本实施例对此不做限定。

数据采集层用于采集数据源存储的数据,比如指标原始数据。数据采集层可以包括HBase数据库。HBase数据库是一个分布式的、面向列的开源数据库。另外,数据采集层可以进行画像数据关联。数据采集层和计算分析层中的归因中控模块能够离线进行通信。

计算分析层可以是下述方法实施例中的归因分析模块,计算分析层包括归因中控模块以及算法模块。归因中控模块用于接收基于第一计算机语言(例如java语言)的调用指令,归因中控模块能够和数据采集层进行通信,归因中控模块能够和结果存储层进行通信。算法模块包括数理统计子模块以及数据挖掘子模块,数理统计子模块包括假设校验单元、根因分析单元、异常检测单元、洼地检测单元。数据挖掘子模块包括时序预测单元、聚类分析单元、关联分析单元、趋势分析单元。算法模块能够通过归因中控模块与其他层中的模块进行通信。

结果存储层可以包括HBase数据库以及mysql数据库。结果存储层中的HBase数据库能够和归因中控模块离线进行通信,结果存储层中的HBase数据库能够和应用层离线进行通信。结果存储层中的mysql数据库能够和归因中控模块在线进行通信,结果存储层中的mysql数据库能够和应用层在线进行通信。

应用层包括算法在线分析服务以及归因分析服务。算法在线分析服务可以包括时序预测模块、异常检测模块、根因分析模块、趋势分析模块,归因分析服务可以包括时序解读模块、归因分析模块、异常发现模块、管理模块,时序解读模块包括预测分析子模块、趋势分析子模块、周期分析子模块、假日分析子模块。归因分析模块包括均值指标分析子模块、原子指标分析子模块、指标树主题分析子模块。异常发现模块包括自定义告警子模块、异常提示子模块、自动异常检测子模块。管理模块包括指标管理子模块、指标关系管理子模块。

以上提供了归因分析的系统架构,该架构可以作为归因分析产品的解决方案。时下,业界还没有提供类似的框架,一方面是由于归因分析产品的门槛较高,另一方面是由于工程实现比较复杂,所以缺乏有效的解决方案。而通过上述架构,实现了高效的架构设计,并且实现了从0到1的跨越式发展,可以为算法、数据、后端节约了大量的人力资源。该归因分析的解决方案积累了大量的实践经验,并不断对外输出,产生了很大的价值。归因分析工程可以对接应用的多个业务系统,包括而不限于日报系统、直播系统、搜索系统、海外系统、多媒体内容理解系统、小游戏系统、增长系统等。该架构能够分析上千个指标,能够节约大量分析的人力资源,提高了效率,节约了成本。

以上示例性描述了系统架构,以下示例性描述方法流程。

图3是根据一示例性实施例示出的一种数据处理方法的流程图,如图3所示,该方法用于电子设备中,包括以下步骤。

在S301中,通过归因分析模块,从服务器接收基于第一计算机语言的调用指令;

在S302中,响应于该调用指令,调用算法模块,该算法模块封装了基于第二计算机语言的归因分析算法;

在S303中,在运行该算法模块的过程中,通过该归因分析算法对业务数据进行处理,得到处理结果。

本实施例提供的方法,通过算法模块,将第二计算机语言实现的归因分析算法封装起来,通过归因分析模块,对外部服务提供基于第一计算机语言调用的接口,在归因分析的过程中,归因分析模块能够充当外部服务与算法模块之间的通信媒介,外部服务通过基于第一计算机语言调用归因分析模块,即可触发算法模块对业务数据进行处理,得到处理结果。该方法由于免去了将归因分析算法的程序代码从第二计算机语言翻译至第一计算机语言的过程,因此节省了翻译过程耗费的时间,并节约了翻译过程带来的人力成本以及物力成本,提高了归因分析过程中处理数据的效率,让数据处理更便捷、更快速,有助于方便、高效的对算法工程线上服务化。

可选地,该归因分析模块基于进程实现,该算法模块基于嵌入至该进程中的子进程实现。

可选地,该调用算法模块,包括:

将业务数据的地址传入该子进程;

该调用算法模块之后,该方法还包括:

通过该子进程,访问该地址,得到该地址存储的该业务数据。

可选地,该归因分析模块基于远程过程调用存根RPC Stub实现,该算法模块基于该RPC Stub对应的RPC服务端实现。

可选地,该业务数据的数据结构为目标数据结构,该目标数据结构的索引包括指标标识、维度标识和维度值,该目标数据结构的值包括至少一个时间点中每个时间点对应的指标值,指标值为该指标标识对应的指标在对应时间点的取值。

可选地,该目标数据结构通过对原始数据结构按照时间点进行处理后得到,该原始数据结构的索引包括时间点、指标标识、维度标识和维度值,该原始数据结构的值包括指标值。

可选地,该通过归因分析模块,从服务器接收基于第一计算机语言的调用指令之前,该方法还包括:

根据基础数据进行关联查询,得到该基础数据对应的用户画像数据,该基础数据包括该服务器对应的客户端在至少一个维度的维度值;

根据该基础数据以及该用户画像数据,生成该业务数据,该业务数据包括该基础数据以及该用户画像数据。

图4是根据一示例性实施例示出的一种数据处理方法的流程图,如图4所示,该方法用于电子设备中,包括以下步骤。

在步骤S401中,电子设备采集基础数据。

基础数据可以是分维度的指标明细数据,例如可以包括该服务器对应的客户端在至少一个维度的维度值。例如,基础数据可以包括日活指标。基础数据能够根据维度聚合,得到指标的统计结果。基础数据可以是格式化、半格式化的形式。基础数据可以是后台日志数据。其中,电子设备可以包括hive组件,可以通过hive组件采集基础数据。

在步骤S402中,电子设备根据基础数据进行关联查询,得到该基础数据对应的用户画像数据。

用户画像数据可以是用户在至少一种维度中每个维度的特征值,例如可以包括外貌的特征值、地理位置的特征值、基础特征的特征值等。关于关联查询的技术细节,基础数据和用户画像数据可以通过主键(Primary Key)相互关联,可以根据基础数据的主键进行关联查询,得到基础数据的主键对应的用户画像数据。其中,主键用于标识数据所在的数据表。其中,电子设备可以通过hive组件进行关联查询。

在步骤S403中,电子设备根据该基础数据以及该用户画像数据,生成业务数据,该业务数据包括该基础数据以及该用户画像数据。

通过上述实施方式,达到的效果至少可以包括:

对于很多基础数据而言,虽然基础数据本身带有丰富的维度和维度值,但是很多没有用户画像维度的数据,那么通过步骤S402至步骤S403,能够在采集的基础数据的基础上,扩充出对应的用户画像数据,从而实现维度扩充的功能。利用包含基础数据以及用户画像数据的业务数据进行分析,由于分析的维度增加了用户画像维度,考虑的维度更多,因此能够提高分析结果的准确性。

在步骤S404中,电子设备对业务数据的数据结构进行处理。

通过对业务数据的数据结构进行处理,能够将业务数据的数据结构从原始的数据结构转换为目标数据结构。

目标数据结构是本实施例为归因分析算法定义的统一的数据结构,目标数据结构的业务数据可以是归因分析算法的输入数据。该目标数据结构的索引包括指标标识、维度标识和维度值,参见图5,图5为目标数据结构的示意。图5的前三列是索引,分别是指标标识、维度、维度值。其中,该目标数据结构的索引结构可以为三级索引,其形式可以为<指标标识、维度、维度值>。

指标标识可以记为quota key,用于唯一标识对应的指标,例如在图5中,指标标识可以是144。指标标识可以是指标名称。指标标识也可以称为指标编码。同一平台的不同业务系统可以为同一指标配置统一的指标标识。

维度可以记为dimension,维度可以包括城市、性别、年龄等。例如参见图5,维度可以是年龄段(age_range),维度可以通过维度名称表示。

维度值是指维度的取值。例如,如果维度是城市,维度值可以是北京、上海等。如果维度是性别,维度值可以是男、女等。维度值可以记为dimension value,也可以称为因子或因子名称。例如在图5中,维度可以是2988783、11208292。

目标数据结构的值包括至少一个时间点中每个时间点对应的指标值,其中,目标数据结构中的指标值为指标标识对应的指标在对应时间点的取值。其中,该时间点可以使用日期为时间单位,例如参见图5,目标数据结构的值可以包括2018年12月1日的指标值、2018年11月24日的指标值、2018年11月17日的指标值。以时间点为12月1日为例,目标数据结构的值可以包括2018年12月1日年龄段为0至12岁的用户的指标值2988783、2018年12月1日年龄段为12至17岁的用户的指标值11208292、2018年12月1日年龄段为18至23岁的用户的指标值1277554301、2018年12月1日年龄段为24至30岁的用户的指标值2032407443、2018年12月1日年龄段为31至40岁的用户的指标值1553851456。

通过上述实施方式,达到的效果至少可以包括:归因分析的流程中通常包括一系列的算法处理过程,通过抽象定义了以上数据结构,可以为归因分析算法提供了统一的标准格式。尤其是,由于目标数据结构的索引包括时间点,对基于目标数据结构的业务数据进行归因分析时,便于根据时间点进行分析,比如对不同的时间的指标值进行同比分析、环比分析等。比如说,参见图5,每一行业务数据能够组成一个时间序列,比如第一行的3个2988783分别是2018年12月1日的业务数据、2018年11月24日的业务数据、2018年11月17日的业务数据,这样可以方便看出指标随着时间的变化的波动规律。因此,通过该数据结构,能够为归因分析算法的开发和迭代提供有力的支持。

在一些实施例中,该目标数据结构可以通过对原始数据结构按照时间点进行处理后得到。其中,原始数据结构的索引包括时间点、指标标识、维度标识和维度值,该原始数据结构的值包括指标值。其中,原始数据结构的索引中的时间点可以将日期作为时间单位,例如可以是年月日。原始数据结构可以采用键值对(Key-value,KV)的存储格式进行存储。原始数据结构可以定义如下:

key:<日期|指标编码|维度名称|因子名称>;value:<指标值>。

其中,key表示键,即索引。|为不同字段之间的间隔符。value表示值。

例如,参见图6,图6中的每一行表示一条原始数据结构的业务数据。图6中的xx表示原始数据结构中的值,xx之前的字符串表示原始数据结构中的索引。例如,图6第一行所示的原始数据结构的索引可以包括20190616little game#296|user_type|1-7天新用户。其中,20190616为时间点,little game(小游戏)为指标标识,为一种业务线。296为维度标识,1-7天新用户为维度值。原始数据结构可以是预聚合基础数据的数据结构。可以采用列式存储的HBase实时数据库,存储原始数据结构的业务数据。

关于处理得到目标数据结构的具体方式,可以对原始数据结构中的指标值按时间点(例如日期)进行打横处理,得到目标数据结构。其中,打横处理是指把时间点作为一个维度,将列式存储结构转换为行式存储结构。

通过上述实施方式,达到的效果至少可以包括:对于归因分析领域而言,为了实现实时分析,可以不仅依赖算法工程服务化能力,同时也依赖数据链路的准备工作。而通过上述方式,提供了数据链路的准备流程,从而为指标明细数据到线上实时计算提供了一系列的格式定义及转换工作,既满足了归因分析算法计算的高效可扩展特性,同时也兼顾了方便存储的需要。其中,数据链路的准备是指为归因分析算法生成所需的数据的过程。

在步骤S405中,电子设备通过归因分析模块,从服务器接收基于第一计算机语言的调用指令。

第一计算机语言可以是后端工程使用的计算机语言。例如,第一计算机语言可以是java语言,调用指令可以通过java程序实现。

归因分析模块为一种软件逻辑单元,归因分析模块可以通过基于第一计算机语言编写的程序代码实现,因此归因分析模块能够解析基于第一计算机语言的调用指令。归因分析模块也可以称为归因框架模块、归因包装模块或者归因模块。归因分析模块可以基于第一计算机语言提供对外通信的通用接口,并与python算法之间交互进行调用。归因分析模块起到了管理者和通信桥梁的作用,一方面能够管理算法模块,另一方面能够实现后台服务与算法模块之间的通信。任意要进行归因分析的后台服务可以作为归因分析模块的调用方,基于第一计算机语言,调用归因分析模块提供的接口,以使归因分析模块调用算法模块来进行归因分析。参见图2,归因分析模块可以是图2中的计算分析层,可以包括算法模块和归因中控模块。

通过归因分析模块,可以使用第一计算机语言,对外暴露统一的接口,而归因分析算法本身的程序代码仍可以基于第二计算机语言编写,这样充分利用了python的优势以及在算法领域的专长,同时也方便归因算法上线个迭代开发,相对于翻译不同语言的方式而言,可以极大地节省人力成本和时间开销。

在步骤S406中,电子设备响应于该调用指令,调用算法模块。

算法模块封装了基于第二计算机语言的归因分析算法。算法模块可以通过基于第二计算机语言编写的程序代码实现。算法模块封装的归因分析算法可以包括一种或多种。例如,算法模块可以封装假设校验算法、根因分析算法、异常检测算法、洼地检测算法、时序预测算法、聚类分析算法、关联分析算法、趋势分析算法。通过将不同的归因分析算法封装到算法模块,可以针对不同的应用场景调用不同的归因分析算法。此外,算法模块可以向归因分析模块提供接口,将接口的输入参数定义为场景参数,以便进行算法的选择,从而灵活地根据选择的算法进行归因计算。

第二计算机语言为用于实现归因分析算法的计算机语言,例如,第二计算机语言可以是python语言,算法模块可以通过python代码实现。

其中,归因分析模块和算法模块的功能可以有所区别。算法模块侧重于算法计算,归因分析模块侧重对外接口的封装,也就是说,归因分析模块除了完成与python算法的交互调用,还提供了供外部连接的通用接口。

由于python是一种交互式语言并且具有丰富的第三方插件,因此在数据分析与算法领域,算法模块通常基于第二计算机语言实现。而在大数据领域中,后端工程通常基于第一计算机语言实现。第二计算机语言的模块从HBase等大数据组件读取数据时,需要另外部署专门的客户端,以支持数据读取功能,而这种客户端效率比较低,并且难以提供高可用保障。因此从整个工程实现角度来看,可以结合第二计算机语言与第一计算机语言各自的优势,来兼容大数据框架以及降低开发成本。有鉴于此,本实施例搭建的归因分析框架提供了以下两种实现方式,能够将第二计算机语言与第一计算机语言结合起来。

实现方式一、将算法模块嵌入归因分析模块内部,算法模块为归因分析模块的子模块。

具体而言,归因分析模块可以基于进程实现,算法模块可以基于嵌入至该进程中的子进程实现。例如参见图7,归因分析模块可以基于图7中的java进程实现,算法模块可以基于嵌入至java进程中的python子进程实现。其中,java进程是主进程,可以用于包装算法以及算法的生命周期管理。java进程可以对外提供了统一的算法接口,当后台服务调用接口时,java进程可以基于计算机系统的标准化输入输出技术,调用内部的python子进程进行输入输出。同理地,Python子进程通过算法模块得到计算结果后,也可以通过计算机标准化输入输出,将计算结果返回给Java进程。java进程与python子进程之间的通信流程可以是进程内部的通信,该通信流程对外界是透明的,外界可以感知不到内部逻辑。java进程也可以称为归因框架进程、归因包装进程、或者归因进程。其中,计算机系统的标准化输入输出为一种不依赖语言的通信方式。

通过上述实施方式,达到的效果至少可以包括:通过java进程,可以对外提供统一的算法接口,任意后台服务通过调用java进程,即可使用归因分析算法,从而兼容了大数据框架。此外,利用了第二计算机语言的优势以及在算法领域的专长,同时也方便归因算法线上的迭代开发,因此,该方法能够实现算法服务化,并且开发成本较小,能够快速上线部署,可以满足伪实时的需求。

在一种可能的实现中,在调用算法模块的过程中,可以将业务数据的地址传入该子进程。调用算法模块之后,可以通过该子进程,访问该地址,得到该地址存储的该业务数据。其中,业务数据的地址可以是业务数据的路径。例如,参见图7,java进程与python子进程之间的通信流程可以包括:java进程从HBase读取待分析的业务数据,执行扫描操作,得到raw.csv,将raw.csv传入python子进程中的算法模块。算法模块根据raw.csv,获取res.json,res.json被解析,解析结果返回至HBase客户端,HBase客户端处理后,将结果返回给HBase数据库。其中,raw.csv包括业务数据的地址,raw.csv的形式可以是一个文件。扫描操作可以是HBase数据库的scan操作,scan操作用于根据正则表达式匹配,读取出待分析指标的所有数据。res.json包括归因分析结果的地址,res.json的形式可以是一个文件。

通过上述实施方式,达到的效果至少可以包括:由于进程内部通信时数据量的大小通常有限,导致Java进程和Python子进程每次通信时传输的业务数据的数据量会受到限制。而通过上述方式,由于Java进程将业务数据的地址传输至Python子进程,而不是直接将业务数据传输至Python子进程,由于地址的数据量远远小于业务数据本身的数据量,因此解决了通信数据量有限的问题。此外,由于Python子进程能够根据地址找到数据,根据数据进行算法处理,因此也实现了归因分析的功能。

实现方式二、对算法模块进行服务化。

实现方式二中,归因分析模块可以基于远程过程调用协议(Remote ProcedureCall Protocol,RPC)存根(Stub)实现,例如参见图8,归因分析模块可以是归因分析关联的、运行有RPC Stub的Java客户端。其中,RPC是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC将原来的本地调用方法转变为调用远端的服务器的方法,从而提升系统的处理能力和吞吐量。RPC客户端存根是RPC架构的核心组件之一,用于存放服务端的地址消息,再将客户端的请求参数打包成网络消息,然后通过网络远程发送给服务端。其中,归因分析模块可以gRPC Stub,gRPC是谷歌(Google)开源的一套rpc框架。

实现方式二中,算法模块可以基于该RPC Stub对应的RPC服务端实现,可以用于提供归因分析算法服务。例如参见图8,算法模块可以是用于执行归因分析算法的、运行有RPCStub的gRPC服务器,算法模块可以记为算法工程服务化模块。

在一种可能的实现中,参见图8,归因分析的流程可以包括:Java客户端通过gRPCStub,基于通讯协议序列化协议(proto协议)向gRPC服务器发送原始请求(protorequest),该proto request用于请求调用归因分析算法进行归因分析。proto request可以携带待通过归因分析算法分析的指标标识。gRPC服务器通过算法工程服务化模块接收proto request,响应于proto request,基于超文本传输协议(HTTP)协议,向Click House数据库发送HTTP请求,HTTP请求用于请求获取业务数据。Click House数据库通过多维分析引擎接收HTTP请求,响应于HTTP请求,将业务数据通过HTTP响应返回至gRPC服务器,gRPC服务器中的算法工程服务化模块接收HTTP响应,从HTTP响应获取业务数据,进行归因分析后得到归因分析结果,将归因分析结果携带在原始响应(proto response),返回给Java客户端。

同理地,Python客户端通过gRPC Stub,基于通讯协议序列化协议(proto协议)向gRPC服务器发送proto request。gRPC服务器通过算法工程服务化模块接收protorequest,响应于proto request,基于HTTP协议,向Click House数据库发送HTTP请求。Click House数据库通过多维分析引擎接收HTTP请求,响应于HTTP请求,将业务数据通过HTTP响应返回至gRPC服务器,gRPC服务器中的算法工程服务化模块接收HTTP响应,从HTTP响应获取业务数据,进行归因分析后得到归因分析结果,将归因分析结果携带在protoresponse,返回给Python客户端。

目前,主流的大数据平台是通过JAVA实现的,会依赖于很多第三方组件,而没有第二计算机语言的组件。而通过上述实施方式,算法模块可以作为RPC服务端对外提供服务,需要进行归因分析的任意后台服务可以通过RPC Stub调用算法模块,因此实现了算法服务化,可以将算法的执行与客户端使用完全分离,将算法与后端工程进行解耦,结构更加清晰,可以将算法能力开放出来,灵活对接更多业务,释放算法价值。

在步骤S407中,电子设备在运行该算法模块的过程中,通过该归因分析算法对业务数据进行处理,得到处理结果。

该处理结果可以称为归因分析结果,该处理结果可以表示引起业务数据中指标异常的原因。

相关技术中,算法开发主要基于第二计算机语言,而后端工程主要使用第一计算机语言,传统的方法是将python工程翻译到第一计算机语言,而该过程耗费了大量时间和人力成本,并且导致归因分析算法难以线上服务化。

本实施例提供的方法,通过算法模块,将第二计算机语言实现的归因分析算法封装起来,通过归因分析模块,对外部服务提供基于第一计算机语言调用的接口,在归因分析的过程中,归因分析模块能够充当外部服务与算法模块之间的通信媒介,外部服务通过基于第一计算机语言调用归因分析模块,即可触发算法模块对业务数据进行处理,得到处理结果。该方法由于免去了将归因分析算法的程序代码从第二计算机语言翻译至第一计算机语言的过程,因此节省了翻译过程耗费的时间,并节约了翻译过程带来的人力成本以及物力成本,提高了归因分析过程中处理数据的效率,让数据处理更便捷、更快速,有助于方便、高效的对算法工程线上服务化。

图9是根据一示例性实施例示出的一种数据处理装置的框图。参照图9,该装置包括接收单元901,调用单元902和处理单元903。

接收单元901,被配置为执行通过归因分析模块,从服务器接收基于第一计算机语言的调用指令;

调用单元902,被配置为执行响应于该调用指令,调用算法模块,该算法模块封装了基于第二计算机语言的归因分析算法;

处理单元903,被配置为执行在运行该算法模块的过程中,通过该归因分析算法对业务数据进行处理,得到处理结果。

本实施例提供的装置,通过算法模块,将第二计算机语言实现的归因分析算法封装起来,通过归因分析模块,对外部服务提供基于第一计算机语言调用的接口,在归因分析的过程中,归因分析模块能够充当外部服务与算法模块之间的通信媒介,外部服务通过基于第一计算机语言调用归因分析模块,即可触发算法模块对业务数据进行处理,得到处理结果。该方法由于免去了将归因分析算法的程序代码从第二计算机语言翻译至第一计算机语言的过程,因此节省了翻译过程耗费的时间,并节约了翻译过程带来的人力成本以及物力成本,提高了归因分析过程中处理数据的效率,让数据处理更便捷、更快速,有助于方便、高效的对算法工程线上服务化。

可选地,该归因分析模块基于进程实现,该算法模块基于嵌入至该进程中的子进程实现。

可选地,该调用单元902,被配置为执行:将业务数据的地址传入该子进程;

该装置还包括:访问单元,被配置为执行通过该子进程,访问该地址,得到该地址存储的该业务数据。

可选地,该归因分析模块基于远程过程调用存根RPC Stub实现,该算法模块基于该RPC Stub对应的RPC服务端实现。

可选地,该业务数据的数据结构为目标数据结构,该目标数据结构的索引包括指标标识、维度标识和维度值,该目标数据结构的值包括至少一个时间点中每个时间点对应的指标值,指标值为该指标标识对应的指标在对应时间点的取值。

可选地,该目标数据结构通过对原始数据结构按照时间点进行处理后得到,该原始数据结构的索引包括时间点、指标标识、维度标识和维度值,该原始数据结构的值包括指标值。

可选地,该装置还包括:

查询单元,被配置为执行根据基础数据进行关联查询,得到该基础数据对应的用户画像数据,该基础数据包括该服务器对应的客户端在至少一个维度的维度值;

生成单元,被配置为执行根据该基础数据以及该用户画像数据,生成该业务数据,该业务数据包括该基础数据以及该用户画像数据。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

上述方法实施例中的电子设备可以实现为终端,例如,图10示出了本公开一个示例性实施例提供的终端1000的结构框图。该终端1000可以是:智能手机、平板电脑、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1000还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

通常,终端1000包括有:一个或多个处理器1001和一个或多个存储器1002。

处理器1001可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1001可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1001也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1001可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1001还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器1002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1002中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1001所执行以实现本公开中方法实施例提供的数据处理方法。

在一些实施例中,终端1000还可选包括有:外围设备接口1003和至少一个外围设备。处理器1001、存储器1002和外围设备接口1003之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1003相连。具体地,外围设备包括:射频电路1004、触摸显示屏1005、摄像头组件1006、音频电路1007、定位组件1008和电源1009中的至少一种。

外围设备接口1003可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1001和存储器1002。在一些实施例中,处理器1001、存储器1002和外围设备接口1003被集成在同一芯片或电路板上;在一些其他实施例中,处理器1001、存储器1002和外围设备接口1003中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路1004用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1004通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1004将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1004包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1004可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1004还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本公开对此不加以限定。

显示屏1005用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1005是触摸显示屏时,显示屏1005还具有采集在显示屏1005的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1001进行处理。此时,显示屏1005还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1005可以为一个,设置终端1000的前面板;在另一些实施例中,显示屏1005可以为至少两个,分别设置在终端1000的不同表面或呈折叠设计;在再一些实施例中,显示屏1005可以是柔性显示屏,设置在终端1000的弯曲表面上或折叠面上。甚至,显示屏1005还可以设置成非矩形的不规则图形,也即异形屏。显示屏1005可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。

摄像头组件1006用于采集图像或视频。可选地,摄像头组件1006包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1006还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

音频电路1007可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1001进行处理,或者输入至射频电路1004以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1000的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1001或射频电路1004的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1007还可以包括耳机插孔。

定位组件1008用于定位终端1000的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件1008可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。

电源1009用于为终端1000中的各个组件进行供电。电源1009可以是交流电、直流电、一次性电池或可充电电池。当电源1009包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。

在一些实施例中,终端1000还包括有一个或多个传感器1010。该一个或多个传感器1010包括但不限于:加速度传感器1011、陀螺仪传感器1012、压力传感器1013、指纹传感器1014、光学传感器1015以及接近传感器1016。

加速度传感器1011可以检测以终端1000建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1011可以用于检测重力加速度在三个坐标轴上的分量。处理器1001可以根据加速度传感器1011采集的重力加速度信号,控制触摸显示屏1005以横向视图或纵向视图进行用户界面的显示。加速度传感器1011还可以用于游戏或者用户的运动数据的采集。

陀螺仪传感器1012可以检测终端1000的机体方向及转动角度,陀螺仪传感器1012可以与加速度传感器1011协同采集用户对终端1000的3D动作。处理器1001根据陀螺仪传感器1012采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。

压力传感器1013可以设置在终端1000的侧边框和/或触摸显示屏1005的下层。当压力传感器1013设置在终端1000的侧边框时,可以检测用户对终端1000的握持信号,由处理器1001根据压力传感器1013采集的握持信号进行左右手识别或快捷操作。当压力传感器1013设置在触摸显示屏1005的下层时,由处理器1001根据用户对触摸显示屏1005的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

指纹传感器1014用于采集用户的指纹,由处理器1001根据指纹传感器1014采集到的指纹识别用户的身份,或者,由指纹传感器1014根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1001授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1014可以被设置终端1000的正面、背面或侧面。当终端1000上设置有物理按键或厂商Logo时,指纹传感器1014可以与物理按键或厂商Logo集成在一起。

光学传感器1015用于采集环境光强度。在一个实施例中,处理器1001可以根据光学传感器1015采集的环境光强度,控制触摸显示屏1005的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1005的显示亮度;当环境光强度较低时,调低触摸显示屏1005的显示亮度。在另一个实施例中,处理器1001还可以根据光学传感器1015采集的环境光强度,动态调整摄像头组件1006的拍摄参数。

接近传感器1016,也称距离传感器,通常设置在终端1000的前面板。接近传感器1016用于采集用户与终端1000的正面之间的距离。在一个实施例中,当接近传感器1016检测到用户与终端1000的正面之间的距离逐渐变小时,由处理器1001控制触摸显示屏1005从亮屏状态切换为息屏状态;当接近传感器1016检测到用户与终端1000的正面之间的距离逐渐变大时,由处理器1001控制触摸显示屏1005从息屏状态切换为亮屏状态。

本领域技术人员可以理解,图10中示出的结构并不构成对终端1000的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

上述方法实施例中的电子设备可以实现为服务器,例如,图11是本公开实施例提供的一种服务器的结构示意图,该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)1101和一个或一个以上的存储器1102,其中,该存储器1102中存储有至少一条指令,该至少一条指令由该处理器1101加载并执行以实现上述各个方法实施例提供的数据处理方法。当然,该服务器还可以具有有线或无线网络接口以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。

在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器,上述指令可由电子设备的处理器执行以完成上述数据处理方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,该非临时性计算机可读存储介质可以是只读存储器(Read-Only Memory,简称:ROM)、随机存取存储器(Random Access Memory,简称:RAM)、只读光盘(Compact Disc Read-Only Memory,简称:CD-ROM)、磁带、软盘和光数据存储设备等。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 移动设备的数据处理方法、装置、存储介质和移动设备
  • 行驶设备的数据处理方法、装置、设备及存储介质
技术分类

06120113098929