一种基于Kafka的电力客户数据采样方法与流程

文档序号:33018661发布日期:2023-01-20 18:08阅读:26来源:国知局
一种基于Kafka的电力客户数据采样方法与流程
一种基于kafka的电力客户数据采样方法
技术领域
1.本发明涉及一种数据采样方法,尤其涉及一种基于kafka的电力客户数据采样方法。


背景技术:

2.当前,随着电网业务多元化和多渠道融合时代的到来以及电网数字化、能源互联网快速发展新浪潮的冲击,各式的电力数据产品层出不穷,各类客户端应用产品变得琳琅满目,用以满足广大用电客户的需要;用电客户在使用各类产品的同时,海量的用户行为数据信息应运而生。与此同时,海量的用户行为数据如果不能得到及时有效的采样、挖掘、分析和应用,便失去了用户行为数据本身具有的增值属性。
3.在实际用电客户数据的采样及应用中,其一是,用户行为埋点数据定义不全面、开发流程混乱、使用不规范,埋点的元事件、元数据缺乏统一的标准管理,这样便无法满足全域用户行为分析、产品智能化,精细化运营等实际需要,进而无法解决数据应用过程中的难点痛点。其二是,已有埋点数据采样技术中,多为异步的、准实时的、离线的采样、处理等方式,并无在埋点数据采样的同时,针对产品运营、用户行为分析业务相关的业务指标进行实时计算、分析、挖掘,并不能及时、高效地满足埋点采样领域的实时指标分析应用的需要。
4.针对上述问题,目前的数据采样技术应用中,尚无全面的、行之有效的解决方案。


技术实现要素:

5.本发明的目的在于提供一种基于kafka的电力数据采样方法,以解决上述背景技术中提出的问题。采用kafka技术实时采样用电客户访问行为数据信息,并在源头加工实时指标,解决当前技术中存在的埋点数据采样、加工实时指标效率低下,不能高效及时满足埋点数据采样领域的实时指标计算、产品运营分析、用户行为分析的需要。
6.为了实现上述目的,本发明采用了如下技术方案:
7.一种基于kafka的电力客户数据采样方法,其特征在于,包括以下步骤以用于实现所提出的基于kafka的电力客户数据采样方法:
8.s1:首先,定义用电客户数据源前端埋点内容和业务应用系统后端接口埋点内容,并在业务系统前端和后端开展数据埋点;
9.s2:然后,依据数据管理用户在操作业务应用系统时产生的埋点数据类型,选择前端或后端与埋点客户数据采样系统建立连接;建立连接后,埋点客户数据采样系统采样并接收前端埋点数据或后端接口埋点数据;
10.s3:进一步地,埋点客户数据采样系统解析接收到的埋点数据,得到基本字段和衍生字段,将产生的基本字段和衍生字段实时转发至kafka消息队列;
11.s4:同时,埋点客户数据采样系统根据步骤(s3)中得到的基础字段和衍生字段,对电力数据产品运营、用电客户行为分析涉及到的业务指标进行统计,加工计算得到实时指标,并将上述实时指标实时转发至kafka消息队列的topic_result中;
12.s5:最后,bi可视化系统通过实时消费步骤(s4)所述kafka消息队列topic_result中的电力业务指标数据或查询实时数据仓库中的hbase业务指标表,将业务指标进行可视化展示。
13.作为本技术方案的进一步改进方案,所述获取前端和后端埋点数据的方法包括:
14.前端埋点数据为用电客户行为触发前端事件所产生的数据,后端接口埋点数据为用电户客户行为触发的后端接口调用所产生的数据。
15.作为本技术方案的进一步改进方案,所述业务系统与埋点数据建立连接的方法包括:
16.当数据管理用户在操作业务系统时,如果产生业务系统的前端埋点数据,则对应业务系统的前端和埋点电力客户数据用电采样系统接口进行参数校验,如果产生业务系统的后端埋点数据,则对应业务系统的后端和埋点采样系统接口进行参数校验。二者之间的参数校验包括:域名校验、ip地址校验、接口名校验、端口号校验等;根据预先设定的相关参数,校验成功后,再建立socket连接。
17.作为本技术方案的进一步改进方案,所述埋点电力客户数据采样系统采样并接收前端或后端埋点数据的方法包括:
18.当与埋点采样系统进行连接的为业务系统前端时,埋点采样系统采样并接收前端埋点数据;当与埋点采样系统进行连接的为业务系统后端时,埋点采样系统采样并接收后端埋点数据。
19.作为本技术方案的进一步改进方案,所述的用于获取并转发基本字段和衍生字段的方法包括:
20.s5.1:埋点采样系统接收到结构化的电力客户埋点数据,并根据key-value的形式进行解析,得到解析后的前端事件、后端接口,以及每个前端事件对应的其他字段内容以及每个后端接口对应的其他字段内容;
21.s5.2:将解析后的字段实时转发至kafka消息队列,其中前端事件对应的字段,实时转发至kafka消息队列中名称为topic_evt的topic,其中后端接口对应的字段,实时转发至kafka消息队列中名称为topic_interface的topic。
22.s5.3:s5.1和s5.2所述的两个topic中对应的电力客户数据作为采样到的埋点数据的基本字段和衍生字段。
23.作为本技术方案的进一步改进方案,所述用于获取并发送电力客户业务指标的方法包括:
24.s6.1:通过flink的方法实时消费kafka消息队列topic_evt、topic_interface中的字段,通过tumbling windows方法让电力客户数据不重叠,采用filter方法过滤数据、keyby方法对数据分组、join方法对数据关联、connect方法将多个数据流整合为一个数据流、aggregate方法对数据进行聚合处理,譬如:通过计数、求和、平均、加权平均等计算,输出得到实际的电力客户对应业务指标;
25.s6.2:通过slipstream批量消费kafka消息队列topic_evt、topic_interface中的字段,再根据sql对数据进行过滤、关联、分组、聚合,得到业务指标;
26.s6.3:上述s6.1和s6.2两种方法均可得到目标的电力客户业务指标,后者的时效性低于前者。将通过s6.1方法得到的电力客户业务指标,实时发送至kafka消息队列的
topic_result中;将通过s6.2方法得到的电力客户业务指标固化到实时数据仓库hbase表中。
27.作为本技术方案的进一步改进方案,所述用于业务指标进行可视化展示和数据固化的方法包括:
28.s7.1:通过bi可视化系统的应用程序实时消费kafka消息队列topic_result中的电力客户业务指标,在业务可视化系统中将电力客户业务指标进行可视化展示,或者通过查询实时数据仓库中的hbase业务指标表,将实时数据仓库中的业务指标通过bi工具进行可视化展示;
29.s7.2:将步骤(4)和(5)中得到的业务指标、基本字段、衍生字段,以数据流的方式固化存储于实时数据仓库中,固化到实时数据仓库时,将基本字段、衍生字段、业务指标,均存储到hbase表中;
30.s7.3:借助数据仓库的etl工具将实时数据仓库的数据固化到离线数据仓库中,供后续业务分析查询使用。
31.与现有技术相比,本发明的有益效果是:
32.本发明公开了一种基于kafka的电力客户数据采样方法,通过自定义埋点数据事件,全面的定义了用户行为埋点数据,使整个数据加工流程清晰可见、并使埋点数据的定义规范化,对埋点的元事件、元数据进行统一的管理,满足了全域用户行为分析、数据产品智能化,数据资产精细化运营等实际需要;同时,通过埋点采样系统解析埋点数据得到基本字段和衍生字段,并将得到的基本字段和衍生字段实时转发至kafka消息队列,可视化系统通过实时消费kafka消息队列,可视化目标用电客户业务指标。
33.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。本发明的具体实施方式由以下实施例及其附图详细给出。
附图说明
34.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
35.图1为本发明所示的一种基于kafka的电力客户数据采样方法的流程图。
36.图2为本发明所示的一种基于kafka的电力客户数据采样方法的架构图。
37.图3为本发明所示的一种基于kafka的电力客户数据采样方法的系统图。
38.图4为本发明所示的内、外网交互连接时以ip映射方式的网络负载图。
39.图5为本发明所示的内、外网交互连接时以域名映射方式的网络负载图。
具体实施方式
40.以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。在下列段落中参照附图以举例方式更具体地描述本发明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
41.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的
技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
42.请参阅附图1所示,本发明所公开的一种基于kafka的电力客户数据采样方法,包括:
43.a、定义前端埋点内容和后端接口埋点内容,并在前端和后端进行埋点;
44.所述的前端埋点内容是由前端的各类事件组成,包括每个事件的:事件id、事件名称。
45.所述的后端接口埋点内容是由所有接口自身信息及接口调用结果组成,包括每个接口的:接口id、接口名称、接口调用时间、接口响应时间、接口响应结果。
46.b、根据用户在操作业务系统时产生的行为,选择前端或后端与埋点采样系统建立连接;
47.当数据管理用户在操作业务系统时,如果产生业务系统的前端埋点数据,则业务系统的前端和埋点采样系统接口进行参数校验,建立socket连接;如果产生业务系统的后端埋点数据,则业务系统的后端和埋点采样系统接口进行参数校验,建立socket连接;所述的参数校验包括:域名或者ip地址校验、接口名校验、端口号校验,根据预先设定,校验成功后,再建立socket连接。所述连接为外网与内网的连接,此时需要外网和内网进行交互,交互时的网络策略采用nginx或者f5的方式对公网到内网的网络进行映射。
48.c、建立连接后,埋点采样系统采样并接收前端埋点数据或后端接口埋点数据;
49.所述埋点采样系统采样并接收前端或后端埋点数据,具体为:当步骤(2)中与埋点采集系统进行连接的为业务系统前端时,埋点采样系统采样并接收前端埋点数据;当步骤(2)中与埋点采样系统进行连接的为业务系统后端时,埋点采样系统采样并接收后端埋点数据。
50.d、埋点采样系统解析接收到的埋点数据,得到基本字段和衍生字段,将得到的前端埋点事件、后端接口埋点内容的基本字段和衍生字段实时转发至kafka消息队列的不同topic中,前者转发至topic_evt中,后者转发至topic_interface中。
51.e、埋点采样系统根据步骤(4)中得到的基础字段和衍生字段,对数据产品运营、用电客户行为分析涉及到的业务指标进行统计计算得到实时指标,并将上述实时指标实时转发至kafka消息队列的topic_result中;
52.f、可视化系统通过实时消费步骤(5)所述kafka消息队列topic_result中的业务指标,或查询实时数据仓库中的hbase业务指标表,将业务指标进行可视化展示。
53.请参阅附图2和附图3所示,本发明公开的一种基于kafka的电力客户数据采样方法的架构图,包括:
54.s1、用户在外网操作业务系统时,用户行为触发产生埋点数据;如果用户行为触发前端埋点事件,则产生前端埋点数据,如果用户行为触发后端接口调用,则产生后端接口埋点数据;
55.s2、前后端与埋点采样系统建立连接,并将各自的埋点数据向上至埋点采样系统;
56.s3、埋点采样系统对接收到的结构化埋点数据,根据key-value的形式进行解析,得到前端事件、后端接口,以及每个前端事件对应的其他字段内容,每个后端接口对应的其他字段内容。然后将解析到字段实时转发至kafka消息队列,其中前端事件对应的字段,实
时转发至名称为topic_evt的topic中(topic是代表着数据的类别,一个topic可以认为是一类消息。);后端接口对应的字段,实时转发至名称为topic_interface的topic中;埋点采样系统对数据产品运营、用电客户行为数据分析涉及到的业务指标进行统计计算,得到相应的业务指标并实时发送至kafka消息队列的topic_result中;
57.s4、通过应用程序(包括但不限于java、python、smartbi)实时消费kafka消息队列topic_result中的业务指标,将业务指标进行可视化展示。
58.s5、通过数据仓库的etl(抽取(extract)、转换(transform)、加载(load)),将实时数仓中的数据固化到离线数据仓库中。
59.如附图4或5所示,为本发明内网与外网交互连接时的网络负载图,本发明为达到负载均衡,灵活配置流量的目的,系统需要对外网和内网进行映射,通过映射方式达到网络负载均衡的方法有两种:
60.方法一,以ip映射方式的网络负载均衡,以nginx或者f5的负载均衡方式,将外网ip_outer,映射到内网ip_inner,端口号均为port;
61.方法二,以域名映射方式的网络负载均衡,以同样的负载均衡方式nginx或者f5,将外网的“域名_outer”,映射到内网“域名_inner”,端口号均为port。
62.进一步地,通过实例来展示所述的一种基于kafka的电力客户数据采样方法:
63.步骤(1):定义埋点内容,包括前端埋点内容和后端接口埋点内容;前端埋点内容表如下:
64.表1前端埋点内容表
[0065][0066]
前端埋点内容所包含的事件包括但不限于表1列出的事件。
[0067]
其中,客户端类型包括:android、ios、h5、小程序。
[0068]
另外,不同的事件包含不同的字段,如用户事件包括:事件id、用户手机号、姓名、客户端类型、渠道、经纬度、时间、代码版本号、屏幕分辨率、网络类型、ip地址、设备型号、操作系统。浏览事件除了用户事件中包含的内容外,还包括:事件id、当前页面名称、来源页名称、当前页url、来源页url。点击事件除了用户事件中包含的内容外,还包括:事件id、点击事件名称、点击事件含义。
[0069]
后端接口埋点内容表如下:
[0070]
表2后端接口埋点内容表
[0071][0072]
后端接口埋点内容所包含的接口包括但不限于表2列出的接口。
[0073]
根据表1、表2,完成对前端埋点内容、后端接口埋点内容的定义。另外,可对定义的事件、接口进行元数据管理,包括启用、停用、修改。
[0074]
步骤(2):当用户产生行为时,前端代码自动和埋点采样系统接口进行参数校验,包括:域名或者ip地址校验、接口名校验、端口号校验;根据预先设定,校验成功后,建立socket连接。同理,当用户行为触发产生后端埋点数据时,后端和埋点采样系统建立连接。后端接口和埋点采样系统接口以同样的方式进行参数校验,包括:域名或者ip地址校验、接口名校验、端口号校验;根据预先设定,校验成功后,建立socket连接。由于用户行为在外网产生,而埋点数据的接收、解析、指标加工、固化存储均在内网进行,因此为达到负载均衡,灵活配置流量的目的,系统需要对外网和内网进行映射,映射方式如图3、图4所示。
[0075]
步骤(3):当前端和埋点采样系统建立连接后,前端调用埋点采样系统的接口https://ip_inner:port/collect/info或https://域名_inner:port/collect/info,将步骤(1)中定义的前端埋点数据,以post的请求方式向上传输至埋点采样系统。反之亦然。
[0076]
其中,以上的两种埋点内容向上,为了数据传输安全,避免在传输过程中被非法窃取,客户端(client,此处客户端指android、ios、h5、小程序)到服务器端(server,此处指埋点采样系统)的接口调用均采用https方法,数据传输均采用post方法,非get方法。
[0077]
步骤(4):埋点采样系统对接收到的埋点数据进行实时解析得到步骤(1)中定义的埋点数据各个基本字段,以及衍生字段;其中,埋点采样系统对接收到的结构化埋点数据,根据key-value的形式进行解析,得到前端事件、后端接口,以及每个前端事件对应的其他字段内容,每个后端接口对应的其他字段内容。然后将解析到字段实时转发至kafka消息队列,其中前端事件对应的字段,实时转发至名称为topic_evt的topic中(topic是代表着数据的类别,一个topic可以认为是一类消息。producer在发送消息时必须指定发往哪个topic,此后,订阅了该topic的所有consumer都能够接收到消息。后端接口对应的字段,实时转发至名称为topic_interface的topic中。
[0078]
步骤(5):根据步骤(4)中得到的各个基本字段和衍生字段,对产品运营、用户行为分析涉及到的业务指标进行匹配、统计、计算得到实时指标,并将上述实时指标分类别的转发至kafka消息队列名称为topic_result的topic中。统计计算的方法包括但不限于flink实时流计算方法(实时统计更新业务指标)、slipstream的流处理方法(分钟级分批次统计业务指标)。具体如下:
[0079]
[5-1]通过flink实时流计算方法(实时统计更新业务指标)实时消费kafka消息队列topic_evt、topic_interface中的字段,通过tumbling windows方法(不重叠的,数据流中的每一条数据仅属于一个窗口。每一个都有固定的大小,同时窗口间彼此之间不会出现重叠的部分),采用filter方法过滤数据、keyby方法对数据分组、join方法对数据关联、
connect方法合并多个数据流为一个数据流、aggregate方法对数据聚合处理,如计数、求和、平均、加权平均。
[0080]
[5-2]通过slipstream的流处理方法(批量统计业务指标)分钟级批量消费kafka消息队列topic_evt、topic_interface中的字段,再根据sql对数据进行过滤、关联、分组、聚合,得到业务指标。
[0081]
其中,业务指标的统计维度包括但不限于:渠道、产品、时间(今日实时累计)、事件名称。
[0082]
业务指标包括但不限于:按照不同维度,统计用户数(新注册用户、老用户、游客:未登陆用户)、pv(页面访问次数)、uv(访问用户数)、平均停留时长(每个页面的停留时长取平均值)、跳出率(没有下一页的页面访问次数除以页面访问次数)、留存率、用户画像(性别、年龄、民族、位置)。
[0083]
[5-3]最终,上述[5-1]和[5-2]两种方法均可得到目标业务指标,后者的时效性低于前者。将通过[5-1]方法得到的业务指标,实时发送至kafka消息队列的topic_result中;将通过[5-2]方法得到的业务指标固化到实时数据仓库hbase表中。
[0084]
步骤(6):可视化系统通过实时消费步骤(5)所述kafka消息队列topic_result中的业务指标,或查询实时数据仓库中的hbase业务指标表,将业务指标进行可视化展示。
[0085]
以上所述,仅为本发明的较佳实施例而已,并非对本发明作任何形式上的限制;凡本行业的普通技术人员均可按说明书附图所示和以上所述而顺畅地实施本发明;但是,凡熟悉本专业的技术人员在不脱离本发明技术方案范围内,利用以上所揭示的技术内容而做出的些许更动、修饰与演变的等同变化,均为本发明的等效实施例;同时,凡依据本发明的实质技术对以上实施例所作的任何等同变化的更动、修饰与演变等,均仍属于本发明的技术方案的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1