数据处理方法、装置和系统与流程

文档序号:27831877发布日期:2021-12-07 22:29阅读:72来源:国知局
数据处理方法、装置和系统与流程

1.本发明涉及计算机技术领域,尤其涉及一种数据处理方法、装置和系统。


背景技术:

2.在进行数据分析之前,首先要解决的是数据采集问题。通常情况下,需要采集的数据可大致分为以下几种:第一种,网页上的用户行为数据,这类数据的特点是数据量较大且上报地址较为分散;第二种,服务器上的实时日志数据,这类数据的特点是数据量适中且上报地址较为集中;第三种,用户自定义上传的实时数据,这类数据的特点是数据量不大,但是数据格式较为灵活。
3.在现有技术中,针对不同的数据存在不同的数据采集方案。针对于第一种数据,目前多采用前端代码埋点的方式进行数据采集,即开发人员采用前端代码(比如javascript代码)对web页面上的控件事件进行监听,在前端代码监听到用户触发的控件事件时收集用户行为数据,并将其发送给后台服务器;针对后两种数据,目前多基于数据采集服务器提供的http接口进行数据采集,即由用户将需要上报的数据封装到http请求中,通过向后台服务器发送http请求进行数据上报。
4.在实现本发明的过程中,本发明的发明人发现:现有技术中针对不同终端数据的采集方案过于分散与定制化;对于需要这些数据的数据分析师来说,则需要接入不同的数据输出源才能获取到不同终端的数据,导致接入成本高,效率低下。


技术实现要素:

5.有鉴于此,本发明提供了一种数据处理方法、装置和系统,实现了多终端数据的统一采集、输出,不仅提高了多终端数据采集、输出的安全性和时效性,而且降低了数据输出源的接入成本,提高了数据输出源的接入效率。
6.为实现上述目的,根据本发明的第一个方面,提供了一种数据处理方法。
7.本发明的数据处理方法包括:在接收到采集客户端发送的数据上报消息后,对所述数据上报消息进行校验;其中,所述采集客户端有多个,用于对多个终端的数据进行采集;在所述数据上报消息通过校验的情况下,根据所述数据上报消息获取与之对应的通道信息,并根据所述通道信息判断是否对消息中间件中的通道进行限流;在无需对所述通道进行限流的情况下,从所述数据上报消息中提取采集的终端数据,并将所述终端数据写入所述通道。
8.可选地,所述对所述数据上报消息进行校验包括:根据所述数据上报消息携带的验证码对数据的正确性进行校验,和/或,对所述数据上报消息进行字段完整性校验,和/或,根据所述数据上报消息携带的用户信息对用户身份进行校验。
9.可选地,根据所述数据上报消息获取与之对应的通道信息,并根据所述通道信息判断是否对消息中间件中的通道进行限流包括:根据所述数据上报消息携带的应用标识确定与之对应的通道标识;根据所述通道标识查询出与之对应的通道信息;其中,所述通道信
息包括该通道的限流标志位;若所述通道的限流标志位为第一取值,则无需对消息中间件中的通道进行限流;若所述通道的限流标志位为第二取值,则需要对消息中间件中的通道进行限流。
10.可选地,所述通道信息还包括:时间段、所述时间段内通道已存数据量;所述方法还包括:在将所述终端数据写入所述通道之后,根据所述终端数据的数据量对所述时间段内通道已存数据量进行更新;在更新后的通道已存数据量大于限流阈值的情况下,将所述通道的限流标志位设置为第二取值。
11.可选地,所述时间段内通道已存数据量包括:所述时间段内通道已存数据的条数、以及所述时间段内通道已存数据的字节数;所述更新后的通道已存数据量大于限流阈值的情况包括:更新后的通道已存数据的条数大于第一限流阈值,或者,更新后的通道已存数据的字节数大于第二限流阈值。
12.可选地,所述从所述数据上报消息中提取采集的终端数据,并将所述终端数据写入所述通道包括:从所述数据上报消息中提取采集的终端数据;读取所述通道对应的数据结构配置信息;根据所述数据结构配置信息对所述终端数据进行组装处理,将组装处理后的数据写入所述通道。
13.可选地,所述方法还包括:在需要对所述通道进行限流的情况下,将所述数据上报消息写入缓存。
14.为实现上述目的,根据本发明的第二个方面,提供了一种数据处理装置。
15.本发明的数据处理装置包括:校验模块,用于在接收到采集客户端发送的数据上报消息后,对所述数据上报消息进行校验;其中,所述采集客户端有多个,用于对多个终端的数据进行采集;
16.判断模块,用于在所述数据上报消息通过校验的情况下,根据所述数据上报消息获取与之对应的通道信息,并根据所述通道信息判断是否对消息中间件中的通道进行限流;
17.写入模块,用于在无需对所述通道进行限流的情况下,从所述数据上报消息中提取采集的终端数据,并将所述终端数据写入所述通道。
18.为实现上述目的,根据本发明的第三个方面,提供了一种数据处理系统。
19.本发明的数据处理系统包括:多个采集客户端、网关、以及消息中间件;所述多个采集客户端部署在多个终端上,用于对所述多个终端的数据进行采集;所述网关设置有数据处理装置,用于在接收到多个采集客户端中的任意一个发送的数据上报消息后,对所述数据上报消息进行校验;还用于在所述数据上报消息通过校验的情况下,根据所述数据上报消息获取与之对应的通道信息,并根据所述通道信息判断是否对所述消息中间件中的通道进行限流;还用于在无需对所述通道进行限流的情况下,从所述数据上报消息中提取采集的终端数据,并将所述终端数据写入所述通道;所述消息中间件,用于对写入所述通道的终端数据进行输出。
20.为实现上述目的,根据本发明的第四个方面,提供了一种电子设备。
21.本发明的电子设备,包括:一个或多个处理器;以及,存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明的数据处理方法。
22.为实现上述目的,根据本发明的第五个方面,提供了一种计算机可读介质。
23.本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明的数据处理方法。
24.上述发明中的一个实施例具有如下优点或有益效果:通过在接收到采集客户端发送的数据上报消息后,对所述数据上报消息进行校验,在所述数据上报消息通过校验后根据所述数据上报消息获取与之对应的通道信息,并根据所述通道信息判断是否对消息中间件中的通道进行限流,以及在无需限流时从所述数据上报消息中提取采集的终端数据、并将所述终端数据写入所述通道这些步骤,实现了多终端数据的统一采集、输出,不仅提高了多终端数据采集、输出的安全性和时效性,而且降低了数据输出源的接入成本,提高了数据输出源的接入效率。
25.上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
26.附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
27.图1是本发明实施例可以应用于其中的示例性系统架构图;
28.图2是根据本发明第一实施例的数据处理方法的主要流程示意图;
29.图3是根据本发明第二实施例的数据处理方法的主要流程示意图;
30.图4是根据本发明第三实施例的数据处理装置的主要模块示意图;
31.图5是根据本发明第四实施例的数据处理系统的主要模块示意图;
32.图6是适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
具体实施方式
33.以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
34.需要指出的是,在不影响本发明实施的情况下,本发明中的各个实施例以及实施例中的技术特征可以相互组合。
35.在详细介绍本发明的实施例之前,首先对本发明实施例涉及的部分技术术语进行说明。
36.kafka:由apache软件基金会开发的一个开源流处理平台,由scala和java编写。该项目的目标是为处理实时数据提供一个统一、高吞吐、低延迟的平台。
37.topic:在kafka中引入topic(主题)的目的是为了对消息分类,在kafka中对消息的保存时以topic进行归类的。
38.flume:是一个分布式的高可靠、可扩展的数据采集服务,并且提供了自定义的功能。
39.http client:是apache jakarta common下的子项目,可以用来提供高效的、最新的、功能丰富的支持http协议的客户端编程工具包,并且它支持http协议最新的版本和建
议。
40.图1示出了可以应用本发明实施例的数据处理方法或数据处理装置的示例性系统架构100。
41.如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
42.终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上设置有采集客户端,用于采集终端数据,并将采集的终端数据通过网络104上报至服务器105。
43.终端设备101、102、103可以是例如具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。此外,终端设备101、102、103也可以是后台服务器。
44.服务器105是对从终端设备101、102、103上采集的数据进行统一处理、输出的后台管理服务器。后台管理服务器可以在接收到终端设备的数据上报消息后,对数据上报消息进行处理,并将处理结果返回至终端设备。
45.需要说明的是,本发明实施例所提供的数据处理方法一般由服务器105执行,相应地,数据处理装置一般设置于服务器105中。
46.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
47.图2是根据本发明第一实施例的数据处理方法的主要流程示意图。如图2所示,本发明实施例的数据处理方法包括:
48.步骤s201:在接收到采集客户端发送的数据上报消息后,对所述数据上报消息进行校验。
49.其中,所述采集客户端有多个,用于对多个终端的数据进行采集。例如,当需要针对终端1的数据(比如web页面上的用户行为数据)、终端2的数据(比如后台服务器的日志数据)进行采集时,可针对终端1部署相应的采集客户端,针对终端2部署相应的采集客户端,以实现多终端数据的采集。之后,采集客户端可将采集的终端数据携带在数据上报消息中一并发送至数据处理装置。
50.在一个可选实施方式中,对所述数据上报消息进行校验包括:根据所述数据上报消息携带的验证码对数据的正确性进行校验。比如,可将所述数据上报消息携带的验证码与预先存储的验证码或者实时生成的验证码进行比较;若两者一致,则确认所述消息携带的数据未经篡改,即所述消息携带的数据正确;若两者不一致,则确认所述消息携带的数据已被篡改,即所述消息携带的数据不正确。通过以上步骤,能够提高数据的安全性。
51.在另一个可选实施方式中,对所述数据上报消息进行校验包括:对所述数据上报消息进行字段完整性校验。比如,可遍历数据上报消息中的各个字段,如果出现字段空缺,确认所述消息未通过字段完整性校验;如果未出现字段空缺,确认所述消息通过字段完整性校验。
52.在再一个可选实施方式中,对所述数据上报消息进行校验包括:根据所述数据上报消息携带的用户信息对用户身份进行校验。比如,可从所述数据上报消息中获取用户的
账号和密码,如果该用户的账号和密码匹配,确认所述用户为合法用户;如果该用户的账号和密码不匹配,确认所述用户为非法用户。
53.为进一步提高数据的安全性,还可将上述三个可选实施方式中的任意两个或三个进行组合。另外,在具体实施时,还可采用其他方式对数据上报消息进行校验。
54.步骤s202:在所述数据上报消息通过校验的情况下,根据所述数据上报消息获取与之对应的通信信息,并根据所述通道信息判断是否对消息中间件中的通道进行限流。
55.其中,所述消息中间件包括多个通道(或者称为消息管道),不同的通道可用于存储不同类型的数据。示例性地,若所述消息中间件采用kafka,则所述多个通道可以为kafka中的多个topic(主题),不同的topic可用于存储不同类型的数据。比如,topic1用于存储web页面上的用户行为数据,topic2用于存储后台服务器的日志数据。又比如,topic1用于存储从应用1采集的数据,topic2用于存储从应用2采集的数据。
56.示例性地,在步骤s202中,可根据所述数据上报消息携带的数据源标识(比如应用名称)确定用于存储该数据源数据的通道,然后获取该通道的信息,并根据通道信息判断当前是否需要对该通道进行限流。
57.在一个可选实施方式中,所述通道信息包括限流标志位。其中,所述限流标志位有两种可能的取值:第一取值和第二取值。例如,第一取值为“否”且第二取值为“是”,又或者,第一取值为“0”且第二取值为“1”。在该可选实施方式中,可通过读取该通道的限流标志位的取值判断当前是否需要对该通道进行限流。若该通道的限流标志位为第一取值,则无需对该通道进行限流;若该通道的限流标志位为第二取值,则需要对该通道进行限流。
58.在另一个可选实施方式中,所述通道信息包括该通道已存数据量。在该可选实施方式中,可计算所述数据上报消息携带的终端数据的数据量与该通道已存数据量之和;若这两者之和大于预设的限流阈值,则需要对该通道进行限流;若这两者之和小于或等于预设的限流阈值,则无需对该通道进行限流。
59.步骤s203:在无需对所述通道进行限流的情况下,从所述数据上报消息中提取采集的终端数据,并将所述终端数据写入所述通道。
60.例如,假设所述数据上报请求对应的通道为topic1,则将从所述数据上报消息中提取的终端数据写入topic1中。
61.在本发明实施例中,通过基于多个采集客户端对多终端数据进行采集,以及在接收到采集客户端发送的数据上报消息后,对数据上报消息进行校验,并在校验通过后判断是否需要对应的通道进行限流,以及在无需限流时从所述数据上报消息中提取采集的终端数据、并将所述终端数据写入该通道这些步骤,实现了多终端数据的统一采集、输出,不仅提高了多终端数据采集、输出的安全性和时效性,而且降低了数据输出源的接入成本,提高了数据输出源的接入效率。
62.图3是根据本发明第二实施例的数据处理方法的主要流程示意图。如图3所示,本发明实施例的数据处理方法包括:
63.步骤s301:通过采集客户端对终端数据进行采集、封装,并将携带有封装后数据的数据上报消息发送至网关。
64.其中,所述采集客户端为多个,用于对多个终端的数据进行采集。例如,当需要针对终端1的数据(比如web页面上的用户行为数据)、终端2的数据(比如后台服务器的日志数
据)进行采集时,可针对终端1部署相应的采集客户端,针对终端2部署相应的采集客户端,以实现多终端数据的采集。之后,采集客户端可将采集的终端数据携带在数据上报消息中一并发送至网关。
65.对于不同类型的终端数据,可通过不同的采集客户端进行数据采集。例如,对于web页面上的用户行为数据,可通过js sdk(一种基于javascript语言编写的数据采集埋点的工具)进行数据采集;对于后台服务器上的日志数据,可通过自定义的flume进行数据采集。
66.在一个可选示例中,通过js sdk对web页面上的用户行为数据进行采集主要包括以下步骤:
67.步骤a1:向配置中心请求预先保存的埋点信息。其中,请求入参为web页面的url(统一资源定位符,又叫网页地址)。
68.步骤a2:在接收到配置中心返回的埋点信息后,对所述埋点信息进行解析,并将其中的控件的xpath(xml中的路径)转化为csspath(css中的路径)。
69.步骤a3:通过csspath在页面上定位到相应的控件元素,并将埋点信息中的监听事件绑定到控件元素上。
70.步骤a4:在终端用户在访问web页面时触发了相应控件元素的监听事件后,按照埋点配置信息中所定义的数据项依次进行数据采集。
71.在通过步骤a1至a4搜集到所有的用户行为数据后,js sdk对数据进行封装。具体来说,可将采集到的数据项按照key-value(键值对)的形式封装到json字符串中,之后可通过调用http client将数据通过网络发送给网关。
72.在通过js sdk对web页面上的用户行为数据进行采集之前,需要配置埋点信息。在上述可选示例中,可通过js sdk进行可视化埋点,具体包括以下步骤:
73.步骤b1:响应于用户的触发操作,进入可视化埋点模式。
74.在步骤b1中,用户首先输入url(网页地址),并在url末尾添加识别参数,比如识别参数“visualization=true”。js-sdk在识别到“visualization=true”这样的入参时,会自动进入可视化埋点模式。
75.步骤b2:js-sdk自动扫描页面上的所有控件,并对所有可以进行埋点的控件绑定javascript鼠标悬停事件。
76.在完成步骤2后,所有的可埋点控件都被绑定了特殊的触发事件。
77.步骤b3:当用户鼠标悬停于控件上时,js-sdk会在控件上层生成半透明遮罩层,用于标识此控件可以进行可视化埋点。
78.步骤b4:当用户点击遮罩层时,js-sdk动态生成选择框,供用户选择需要绑定的监听事件与需要采集上传的数据。
79.步骤b5:在用户保存埋点信息之后,js-sdk将埋点配置信息保存至后台服务器上的配置中心。
80.示例性地,埋点配置信息可包括:可视化埋点对应web页面的url、埋点控件的xpath(xml中的路径,用于在web页面上唯一标识一个控件所在的位置)、需要绑定的监听事件、需要采集上报的数据项。
81.在对于后台服务器上的日志数据,可通过自定义的flume进行数据采集。flume主
要包括source模块、channel模块和sink模块。本发明对flume中的sink模块进行了重写,并在sink模块中自定义实现了http client。具体实施时,自定义sink模块时需要继承abstractsink,重写configure函数与process函数。
82.其中,source模块用于从真正的数据源进行数据接收,而后将数据发送到一个或者多个channel模块;channel模块是在source模块与sink模块间的缓冲组件,用于保障不同采集传输速率的source模块和sink模块能够协同运行,保证采集到的数据不丢失;sink模块用于数据封装,并将封装好的数据发送给网关。
83.示例性地,自定义sink模块可用于执行以下步骤:步骤c1:接收来自于channel模块的日志数据;步骤c2:对日志数据进行清洗与过滤;步骤c3:对数据进行封装;步骤c4:通过http client进行流式数据上报,在该步骤中,可通过调用http client将数据通过网络发送给网关。
84.步骤s302:通过网关对所述数据上报消息进行校验。
85.在本发明实施例中,所述网关设置有数据处理装置,用于执行包括步骤s302至步骤s306的处理流程。
86.在一个可选示例中,网关接收的数据上报消息包括如表1所示的数据项:
87.表1
[0088][0089]
在该可选示例中,对所述数据上报消息进行校验包括:
[0090]
步骤d1:通过数据上报消息中的验证码验证数据的正确性,以避免数据在传输过程中被修改。
[0091]
如果步骤d1验证通过,执行步骤d2;如果步骤d1验证未通过,结束此次校验。
[0092]
步骤d2:对数据上报消息进行字段完整性校验。
[0093]
如果出现字段空缺,表明步骤d2校验未通过,结束此次校验;否则,表明步骤d2校验通过,执行步骤d3。
[0094]
步骤d3:根据用户身份标识与用户身份密码进行校验。
[0095]
示例性地,所述用户身份标识可以为用户的账号、用户的手机号、等等,所述用户
身份密码可以为用户设置的密码。在该步骤中,可对用户身份标识与用户身份密码是否匹配进行校验。如果这两者匹配,表明该用户为合法用户,进而校验通过;如果这两者不匹配,校验未通过。
[0096]
在所述数据上报消息通过校验的情况下,执行步骤s303;在所述数据上报消息未通过校验的情况下,执行步骤s304。
[0097]
步骤s303:根据所述数据上报消息获取与之对应的通道信息,并根据所述通道信息判断是否对消息中间件中的通道进行限流。
[0098]
其中,所述消息中间件包括多个通道(或者称为消息管道),不同的通道可用于存储不同类型的数据。示例性地,若所述消息中间件采用kafka,则所述多个通道可以为kafka中的多个topic(主题),不同的topic可用于存储不同类型的数据。比如,topic1用于存储web页面上的用户行为数据,topic2用于存储后台服务器的日志数据。又比如,topic1用于存储从应用1采集的数据,topic2用于存储从应用2采集的数据。
[0099]
在一个可选示例中,步骤s303具体包括:
[0100]
步骤e1:根据所述数据上报消息携带的应用标识确定与之对应的通道标识。
[0101]
在该步骤中,可根据所述数据上报消息携带的应用标识查询预先存储的应用与通道的对应关系表,以确定与之对应的通道标识。例如,假设消息中间件为kafka,根据数据上报消息携带的应用标识“app1”查询出用于存储该应用数据的topic为“topic1”。
[0102]
步骤e2:根据所述通道标识查询出与之对应的通道信息。
[0103]
网关通常采用分布式部署的方式,一条数据上报消息会根据负载均衡策略,随机上传到集群中的任意一台网关服务器。因此,可采用分布式缓存(比如redis)存储通道消息。
[0104]
在步骤e2中,可根据通道标识查询分布式缓存(比如redis),以查询出与之对应的通道信息。示例性地,所述通道信息包括:该通道的限流标志位、时间段、以及该时间段内通道已存数据量。其中,所述限流标志位有两种可能的取值:第一取值和第二取值。例如,第一取值为“否”且第二取值为“是”,又或者,第一取值为“0”且第二取值为“1”等等。其中,所述时间段具体为当前时间窗口的时间段;所述时间段内通道已存数据量可进一步包括:该时间段内通道已存数据的条数、以及所述时间段内通道已存数据的字节数。
[0105]
步骤e3:若所述通道的限流标志位为第一取值,则无需对消息中间件中的通道进行限流;若所述通道的限流标志位为第二取值,则需要对消息中间件中的通道进行限流。
[0106]
在通过步骤e1至e3判断出无需对该通道进行限流的情况下,执行步骤s305;在判断出需要对该通道进行限流的情况下,执行步骤s306。
[0107]
步骤s304:丢弃所述数据上报消息。
[0108]
在通过步骤s302对数据上报消息校验失败后,丢弃所述数据上报消息。进一步,为了提高数据采集过程中的用户体验,还可在对数据上报消息校验失败后,向采集客户端发送校验失败提示信息。
[0109]
步骤s305:从所述数据上报消息中提取采集的终端数据,并将所述终端数据写入所述通道。
[0110]
其中,步骤s305可具体包括:从所述数据上报消息中提取采集的终端数据;读取所述通道对应的数据结构配置信息;根据所述数据结构配置信息对所述终端数据进行组装处
理,将组装处理后的数据写入所述通道。
[0111]
例如,假设消息中间件选用kafka,可根据数据上报消息携带的应用标识确定对应的topic,从配置中心读取该topic对应的数据结构配置信息。并且,从数据上报消息中提取采集的终端数据(比如表1所示的data)。在按照数据结构配置信息对所述终端数据进行组装处理后,将组装后的数据写入kafka中的该topic中,从而完成了整个数据采集上报处理的过程。接下来,可通过kafka进行输出赋能,以供后端的数据分析师接入使用。
[0112]
进一步,本发明实施例的方法还可包括以下步骤:在将终端数据写入通道之后,根据所述终端数据的数据量对所述时间段内通道已存数据量进行更新;在更新后的通道已存数据量大于限流阈值的情况下,将所述通道的限流标志位设置为第二取值。在将限流标志位设置为第二取值后,后续再到达的需要存储在该通道的消息会被限流,直至当前时间窗口的时间耗尽,进入下一个时间窗口。
[0113]
在一个可选示例中,所述时间段内通道已存数据量包括:所述时间段内通道已存数据的条数、以及所述时间段内通道已存数据的字节数。在该可选示例中,可先计算数据上报消息携带的终端数据的数据条数与该通道已存数据条数之和(即更新后的通道已存数据的条数),若这两者之和大于第一限流阈值,则将所述通道的限流标志位设置为第二取值;若这两者之和小于或等于第一限流阈值,再计算数据上报消息携带的终端数据的字节数与该通道已存数据的字节数之和(即更新后的通道已存数据的字节数),若这两者之和大于第二限流阈值,则将所述通道的限流标志位设置为第二取值,否则,无需更新限流标志位的取值。
[0114]
步骤s306:将从所述数据上报消息提取的终端数据写入缓存。
[0115]
在通过步骤s303判断出需要对消息中间件中的通道进行限流后,可将从所述数据上报消息提取的终端数据写入缓存。其中,所述缓存可采用list(队列)或者其他方式实现。
[0116]
在本发明实施例中,通过以上步骤实现了多终端数据的统一采集、输出,不仅提高了多终端数据采集、输出的安全性和时效性,而且降低了数据输出源的接入成本,提高了数据输出源的接入效率。
[0117]
图4是根据本发明第三实施例的数据处理装置的主要模块示意图。如图4所示,本发明实施例的数据处理装置400包括:校验模块401、判断模块402、写入模块403。
[0118]
校验模块401,用于在接收到采集客户端发送的数据上报消息后,对所述数据上报消息进行校验。
[0119]
其中,所述采集客户端有多个,用于对多个终端的数据进行采集。例如,当需要针对终端1的数据(比如web页面上的用户行为数据)、终端2的数据(比如后台服务器的日志数据)进行采集时,可针对终端1部署相应的采集客户端,针对终端2部署相应的采集客户端,以实现多终端数据的采集。之后,采集客户端可将采集的终端数据携带在数据上报消息中一并发送至数据处理装置。
[0120]
在一个可选实施方式中,校验模块401对所述数据上报消息进行校验包括:根据所述数据上报消息携带的验证码对数据的正确性进行校验。比如,可将所述数据上报消息携带的验证码与预先存储的验证码或者实时生成的验证码进行比较;若两者一致,则确认所述消息携带的数据未经篡改,即所述消息携带的数据正确;若两者不一致,则确认所述消息携带的数据已被篡改,即所述消息携带的数据不正确。通过以上步骤,能够提高数据的安全
性。
[0121]
在另一个可选实施方式中,校验模块401对所述数据上报消息进行校验包括:对所述数据上报消息进行字段完整性校验。比如,可遍历数据上报消息中的各个字段,如果出现字段空缺,确认所述消息未通过字段完整性校验;如果未出现字段空缺,确认所述消息通过字段完整性校验。
[0122]
在再一个可选实施方式中,校验模块401对所述数据上报消息进行校验包括:根据所述数据上报消息携带的用户信息对用户身份进行校验。比如,可从所述数据上报消息中获取用户的账号和密码,如果该用户的账号和密码匹配,确认所述用户为合法用户;如果该用户的账号和密码不匹配,确认所述用户为非法用户。
[0123]
为进一步提高数据的安全性,校验模块401还可将上述三个可选实施方式中的任意两个或三个进行组合。另外,在具体实施时,校验模块401还可采用其他方式对数据上报消息进行校验。
[0124]
判断模块402,用于在所述数据上报消息通过校验的情况下,根据所述数据上报消息获取与之对应的通信信息,并根据所述通道信息判断是否对消息中间件中的通道进行限流。
[0125]
其中,所述消息中间件包括多个通道(或者称为消息管道),不同的通道可用于存储不同类型的数据。示例性地,若所述消息中间件采用kafka,则所述多个通道可以为kafka中的多个topic(主题),不同的topic可用于存储不同类型的数据。比如,topic1用于存储web页面上的用户行为数据,topic2用于存储后台服务器的日志数据。又比如,topic1用于存储从应用1采集的数据,topic2用于存储从应用2采集的数据。
[0126]
在一个可选示例中,判断模块402可根据所述数据上报消息携带的数据源标识(比如应用名称)确定用于存储该数据源数据的通道,然后获取该通道的信息,并根据通道信息判断当前是否需要对该通道进行限流。
[0127]
在上述可选示例的一个可选实施方式中,所述通道信息包括限流标志位。其中,所述限流标志位有两种可能的取值:第一取值和第二取值。例如,第一取值为“否”且第二取值为“是”,又或者,第一取值为“0”且第二取值为“1”。在该可选实施方式中,判断模块402可通过读取该通道的限流标志位的取值判断当前是否需要对该通道进行限流。若该通道的限流标志位为第一取值,则无需对该通道进行限流;若该通道的限流标志位为第二取值,则需要对该通道进行限流。
[0128]
在上述可选示例的另一个可选实施方式中,所述通道信息包括该通道已存数据量。在该可选实施方式中,判断模块402可计算所述数据上报消息携带的终端数据的数据量与该通道已存数据量之和;若这两者之和大于预设的限流阈值,则需要对该通道进行限流;若这两者之和小于或等于预设的限流阈值,则无需对该通道进行限流。
[0129]
写入模块403,用于在无需对所述通道进行限流的情况下,从所述数据上报消息中提取采集的终端数据,并将所述终端数据写入所述通道。
[0130]
例如,假设所述数据上报请求对应的通道为topic1,则将从所述数据上报消息中提取的终端数据写入topic1中。
[0131]
在本发明实施例的装置中,通过基于多个采集客户端对多终端数据进行采集,以及在接收到采集客户端发送的数据上报消息后,通过校验模块对数据上报消息进行校验,
并在校验通过后通过判断模块判断是否需要对应的通道进行限流,以及在无需限流时通过写入模块从所述数据上报消息中提取采集的终端数据、并将所述终端数据写入该通道,实现了多终端数据的统一采集、输出,不仅提高了多终端数据采集、输出的安全性和时效性,而且降低了数据输出源的接入成本,提高了数据输出源的接入效率。
[0132]
图5是根据本发明第四实施例的数据处理系统的主要模块示意图。如图5所示,本发明实施例的数据处理系统500包括:采集客户端501、采集客户端502、采集客户端503、网关504、消息中间件505。
[0133]
采集客户端501、502、503,部署在多个终端上,用于对所述多个终端的数据进行采集。对于不同类型的终端数据,可通过不同的采集客户端进行数据采集。例如,对于web页面上的用户行为数据,可通过js sdk(一种基于javascript语言编写的数据采集埋点的工具)进行数据采集;对于后台服务器上的日志数据,可通过自定义的flume进行数据采集。
[0134]
需要指出的是,图5所示采集客户端的数量为示例性的,并不构成对本发明的限制。在具体实施时,可根据实际需求灵活调整采集客户端的数量。
[0135]
网关504设置有数据处理装置,用于在接收到多个采集客户端中的任意一个发送的数据上报消息后,对所述数据上报消息进行校验;还用于在所述数据上报消息通过校验的情况下,根据所述数据上报消息获取与之对应的通道信息,并根据所述通道信息判断是否对所述消息中间件中的通道进行限流;还用于在无需对所述通道进行限流的情况下,从所述数据上报消息中提取采集的终端数据,并将所述终端数据写入所述通道。
[0136]
其中,所述消息中间件包括多个通道(或者称为消息管道),不同的通道可用于存储不同类型的数据。示例性地,若所述消息中间件采用kafka,则所述多个通道可以为kafka中的多个topic(主题),不同的topic可用于存储不同类型的数据。比如,topic1用于存储web页面上的用户行为数据,topic2用于存储后台服务器的日志数据。又比如,topic1用于存储从应用1采集的数据,topic2用于存储从应用2采集的数据。
[0137]
消息中间件505,用于对写入所述通道的终端数据进行输出。
[0138]
例如,在通过网关504完成了整个数据采集上报处理的过程之后,可通过kafka进行输出赋能,以供后端的数据分析师接入使用。
[0139]
在本发明实施例中,通过以上系统实现了多终端数据的统一采集、输出,不仅提高了多终端数据采集、输出的安全性和时效性,而且降低了数据输出源的接入成本,提高了数据输出源的接入效率。
[0140]
下面参考图6,其示出了适于用来实现本发明实施例的电子设备的计算机系统600的结构示意图。图6示出的计算机系统仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0141]
如图6所示,计算机系统600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram 603中,还存储有系统600操作所需的各种程序和数据。cpu 601、rom 602以及ram 603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
[0142]
以下部件连接至i/o接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;
以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
[0143]
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(cpu)601执行时,执行本发明的系统中限定的上述功能。
[0144]
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0145]
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0146]
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括校验模块、判断模块和写入模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,校验模块还可以被描述为“对数据上报消息进行校验的模块”。
[0147]
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是
上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行以下流程:在接收到采集客户端发送的数据上报消息后,对所述数据上报消息进行校验;其中,所述采集客户端有多个,用于对多个终端的数据进行采集;在所述数据上报消息通过校验的情况下,根据所述数据上报消息获取与之对应的通道信息,并根据所述通道信息判断是否对消息中间件中的通道进行限流;在无需对所述通道进行限流的情况下,从所述数据上报消息中提取采集的终端数据,并将所述终端数据写入所述通道。
[0148]
根据本发明实施例的技术方案,实现了针对多终端数据的统一采集、输出,不仅提高了多终端数据采集、输出的安全性和时效性,而且降低了数据输出源的接入成本,提高了数据输出源的接入效率。
[0149]
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1