数据处理方法、数据处理系统及计算设备与流程

文档序号:24189670发布日期:2021-03-09 14:43阅读:131来源:国知局
数据处理方法、数据处理系统及计算设备与流程

1.本发明涉及网络通信技术领域,尤其涉及一种数据处理方法、数据处理系统及计算设备。


背景技术:

2.随着互联网技术的发展和移动设备的普及,资讯的传播、广告的投放、营销活动的推广均可以通过数据分析来提供策略。流量数据能够为产品或活动的曝光量、页面的访问量提供依据,而用户留下的身份信息、实际的购买行为等业务数据则可以用于评价产品或活动的质量和转化率。通过进行数据分析,运营人员可以根据实时数据即时更改运营策略,也可以基于以月、年为单位的历史数据表现制定中长期运营规划。
3.随着业务模式的精细化、用户的不断增长以及时间跨度的扩大,流量数据和业务数据的规模也越来越庞大,并且数据关系复杂,不同类型数据的采集方式也不同。如何汇集大量的流量数据与业务数据,为运营人员提供精准、即时、快速的数据处理和分析结果,成为目前亟待解决的问题。
4.现有技术中针对大规模、关系复杂的数据处理,主要是通过将数据导入到数据仓库中,并通过etl(extract-transform-load,用来描述将数据从来源端经过抽取、转换、加载至目的端的过程)开发进行分布式存储和分布式计算,最终计算得到统计指标和数据分析结果,并将结果导入到数据展示平台。采用这种技术方案虽然可以利用数据仓库为大量的数据提供计算和处理,但,由于业务数据向数据仓库的导入以及数据计算结果回传均会产生时延,并且数据仓库本身对数据处理的执行速度具有一定限制,使得这种技术方案主要面向历史数据,统计结果往往是t+1更新(t为数据处理的时间周期),t+1更新也就是说,当前时间周期生成的数据只能到下一个周期才能处理和统计,不能实时获取当前时间周期的数据,导致难以对实时增长的业务数据以及流量数据的分析提供有效支持。
5.另外,现有技术中针对实时增长的业务数据的实时查询,例如对最近数分钟、数小时的业务增长情况的查询,或是对某个特定订单号的查询核验等,主要通过直接查询业务数据库表中的数据。一方面,直接查询业务数据只能应对小规模数据量的查询需求,而当数据查询范围扩展至数月甚至跨年的时候,大规模的数据量会大大增加数据库的执行压力,挤占正常业务逻辑使用的数据库资源,干扰正常业务甚至造成正常业务的中断。另一方面,目前大多数的流量数据并非存储在具体的业务数据库中,而是通过访问日志进行采集并从日志中获取,因此业务数据库往往不能包含活动、产品对应的流量数据。
6.为此,需要一种数据处理方法和数据处理系统,来解决上述技术方案中存在的问题。


技术实现要素:

7.为此,本发明提供一种数据处理方法、系统及计算设备,以解决或至少缓解上面存在的问题。
8.根据本发明的一个方面,提供一种数据处理方法,在计算设备中执行,所述计算设备分别与数据库服务器、分布式存储系统、流量采集服务器连接,且所述计算设备与数据展示平台连接,所述方法包括:接收数据展示平台获取目标数据的请求,目标数据包括流量数据和业务数据;判断数据展示平台请求获取的目标数据是否包括历史数据、实时数据;如果包括历史数据,则从分布式存储系统中获取相应的历史目标数据;如果包括实时数据,则:从流量采集服务器获取实时流量数据,并将实时流量数据存储到内存;从数据库服务器中查询获取实时业务数据;将所述实时流量数据和实时业务数据进行关联,得到实时目标数据。
9.可选地,在根据本发明的数据处理方法中,历史数据是在预定时间节点之前生成的数据,实时数据是在预定时间节点或预定时间节点之后生成的数据;判断数据展示平台请求获取的目标数据是否包括历史数据、实时数据的步骤包括:根据数据展示平台获取目标数据的请求确定目标数据对应的时间区间;根据所述预定时间节点确定所述时间区间是否包括历史时间区间、实时时间区间;如果包括历史时间区间,则确定包括历史数据,并基于所述历史时间区间获取相应的历史目标数据;如果包括实时时间区间,则确定包括实时数据,并基于所述实时时间区间获取相应的实时目标数据。
10.可选地,在根据本发明的数据处理方法中,还包括步骤:将所述历史目标数据和/或实时目标数据返回至数据展示平台,以便在数据展示平台展示目标数据。
11.可选地,在根据本发明的数据处理方法中,如果数据展示平台请求获取的目标数据同时包括历史数据和实时数据,则还包括步骤:将所述历史目标数据和实时目标数据进行合并处理,得到最终目标数据,并将所述最终目标数据返回至数据展示平台。
12.可选地,在根据本发明的数据处理方法中,获取实时流量数据的步骤包括:从流量采集服务器获取实时日志数据;将实时日志数据添加到消息队列中;从消息队列中逐次获取实时日志数据,并对获取的实时日志数据进行流处理,以获取实时流量数据。
13.可选地,在根据本发明的数据处理方法中,对实时日志数据进行流处理包括:通过flink流处理框架对实时日志数据进行流处理。
14.可选地,在根据本发明的数据处理方法中,在从分布式存储系统中获取相应的目标历史数据之前,包括步骤:基于预定时间周期将历史数据抽取到分布式存储系统中,并基于历史数据生成相应的hive表,以便从分布式存储系统的hive表中获取历史目标数据。
15.可选地,在根据本发明的数据处理方法中,基于预定时间周期将历史数据抽取到分布式存储系统中的步骤包括:每隔预定时间周期,将当前时间周期的前一个时间周期内生成的数据作为历史数据抽取到分布式存储系统中。
16.可选地,在根据本发明的数据处理方法中,将历史数据抽取到分布式存储系统中的步骤包括:基于预定时间周期从流量采集服务器中获取历史日志数据,对历史日志数据进行解析、格式化处理,以获取历史流量数据,并基于etl将历史流量数据存储在分布式存储系统中,生成与历史流量数据相对应的hive表;基于预定时间周期从数据库服务器中获取历史业务数据,并基于etl将历史业务数据存储在分布式存储系统中,生成与历史业务数据相对应的hive表;将所述分布式存储系统中的历史流量数据、历史业务数据进行合并处理,以生成与历史数据相对应的hive表。
17.可选地,在根据本发明的数据处理方法中,还包括步骤:对历史目标数据进行清
洗、筛选、统计。
18.可选地,在根据本发明的数据处理方法中,对实时日志数据进行流处理包括:对实时日志数据进行过滤、筛选、分组、并基于时间窗口进行统计。
19.根据本发明的一个方面,提供一种数据处理系统,包括:数据处理设备,与所述数据库服务器、分布式存储系统连接,适于执行如上所述的数据处理方法;数据展示平台,与所述数据处理设备连接,适于向所述数据处理设备请求获取目标数据,并适于展示目标数据,所述目标数据包括流量数据和业务数据;数据库服务器,与所述数据处理设备连接,适于存储业务数据;分布式存储系统,与所述数据处理设备连接,适于存储历史数据;以及流量采集服务器,适于获取流量数据,所述数据处理设备与流量采集服务器连接,适于从所述流量采集服务器获取实时流量数据。
20.可选地,在根据本发明的数据处理系统中,还包括:网络服务器,与所述流量采集服务器耦接,所述流量采集服务器适于从所述网络服务器获取日志数据;以及业务应用服务器,分别与网络服务器、数据库服务器耦接,适于从所述网络服务器获取业务数据,并将业务数据存储在数据库服务器中。
21.可选地,在根据本发明的数据处理系统中,还包括:消息队列服务器,与所述流量采集服务器连接,适于从流量采集服务器获取实时日志数据,并将实时日志数据添加到消息队列中;所述数据处理设备适于从消息队列中逐次获取实时日志数据,并对获取的实时日志数据进行流处理,以获取实时流量数据。
22.可选地,在根据本发明的数据处理系统中,所述数据处理设备适于:基于预定时间周期将历史数据抽取到分布式存储系统中,并基于历史数据生成相应的hive表,以便从分布式存储系统的hive表中获取历史目标数据。
23.可选地,在根据本发明的数据处理系统中,所述数据处理设备进一步适于:
24.基于预定时间周期从流量采集服务器中获取历史日志数据,对历史日志数据进行解析、格式化处理,以获取历史流量数据,并基于etl将历史流量数据存储在分布式存储系统中,生成与历史流量数据相对应的hive表;基于预定时间周期从数据库服务器中获取历史业务数据,并基于etl将历史业务数据存储在分布式存储系统中,生成与历史业务数据相对应的hive表;将所述分布式存储系统中的历史流量数据、历史业务数据进行合并处理,以生成与历史数据相对应的hive表。
25.根据本发明的一个方面,提供一种计算设备,包括:至少一个处理器;存储器,存储有程序指令,其中,程序指令被配置为适于由上述至少一个处理器执行,所述程序指令包括用于执行如上所述的数据处理方法的指令。
26.根据本发明的一个方面,提供一种存储有程序指令的可读存储介质,当该程序指令被计算设备读取并执行时,使得该计算设备执行如上所述的数据处理方法。
27.根据本发明的技术方案,通过基于预定时间周期将历史数据(包括历史流量数据和历史业务数据)抽取到分布式存储系统中,而对于实时数据进行实时处理和获取,并且对于实时数据中的流量数据和业务数据是分别从流量采集服务器、数据库服务器中获取。当运营人员在数据处理平台向数据处理设备请求获取预定时间区间内的目标数据(通常包括流量数据和业务数据)时,对于目标数据中的历史数据可以直接从分布式存储系统中获取,而实时数据分别从流量采集服务器、数据库服务器中获取。这样,一方面避免了对大量的历
史数据进行处理造成的延时问题,有利于更及时、快速地获取目标数据进行展示。另一方面,对于目标数据包括的历史数据和实时数据分别进行获取,能实现实时获取当前时间周期生成的数据,而且,在获取较长时间区间内的大规模的目标数据时,也仅仅需要针对实时业务数据查询数据库服务器,并不会增加数据库服务器的压力,不会干扰正常业务,能保证数据处理系统的稳定运行。可见,根据本发明的技术方案,更有利于获取较长时间内的大规模数据。
28.此外,根据本发明的技术方案,流量数据是单独从流量采集服务器获取,这样有利于更精准地获取流量数据和业务数据。
29.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
30.为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
31.图1示出了根据本发明一个实施例的数据处理系统100的示意图;
32.图2示出了根据本发明一个实施例的计算设备200的示意图;以及
33.图3示出了根据本发明一个实施例的数据处理方法300的流程图。
具体实施方式
34.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
35.图1示出了根据本发明一个实施例的数据处理系统100的示意图。
36.如图1所示,数据处理系统100包括数据展示平台110、数据处理设备120、数据库服务器130、分布式存储系统150。其中,数据展示平台110与数据处理设备120通信连接,例如通过有线或无线的方式网络连接。数据处理设备120与数据库服务器130、分布式存储系统150连接,从而可以从数据库服务器130、分布式存储系统150中获取相应数据。
37.数据展示平台110即用户(运营人员)所使用的终端设备,其具体可以实现为桌面电脑、笔记本电脑等个人计算机,也可以实现为手机、平板电脑、多媒体设备、智能可穿戴设备等,但不限于此,数据展示平台110也可以是驻留在终端设备上的应用程序。
38.数据处理设备120用于向数据展示平台110提供服务,其可以实现为现有技术中的任何一种能够实现为数据展示平台110提供数据处理服务的设备,本发明对设备的具体种类不作限制。例如,数据处理设备120可以实现为桌面电脑、笔记本电脑、处理器芯片、手机、平板电脑等计算设备,但不限于此,也可以是驻留在计算设备上的应用程序。
39.数据库服务器130例如是关系型数据库mysql,但不限于此。分布式存储系统150例如可以基于hadoop进行分布式数据存储,基于mapreduce对数据并行运算。
40.在一个实施例中,运营人员可以通过数据展示平台110向数据处理设备120请求获取预定时间区间内产生的数据(目标数据)。数据处理设备120在接收到数据展示平台110获取目标数据的请求后,对相应数据进行处理后得到目标数据,并将目标数据返回给数据展示平台110。数据展示平台110可以展示获取到的目标数据,以便运营人员在数据展示平台110查看目标数据。
41.在一个实施例中,数据处理系统100还包括网络服务器180、与网络服务器180耦接的流量采集服务器170和业务应用服务器140。其中,网络服务器180用于向客户端提供网络信息浏览服务,例如,网络服务器180可以包括多个页面文件,用户可以通过客户端向网络服务器180请求获取页面,以便用户访问页面、浏览页面内容,页面例如是网络页面、应用页面。
42.需要说明的是,当用户访问网络页面或应用页面时,用户对页面内容的浏览、点击、滑动等操作,均会生成相应的日志数据。通过获取日志数据、对日志数据进行解析可以获取相应的流量数据。在用户在访问网络页面或应用页面过程中可以生成业务数据,业务数据例如包括用户注册账户时生成的账户信息、用户的购买行为(例如加入购物车、下单、付款等操作)生成的订单信息等,但不限于此。
43.在根据本发明的实施例中,运营人员在数据展示平台110请求获取的目标数据通常包括流量数据和业务数据。还应当指出,无论是流量数据还是业务数据,均会基于预定时间周期和预定时间节点,划分为相应的历史数据和实时数据。
44.在一个实施例中,流量采集服务器170与分布式存储系统150、数据处理设备120相连,业务应用服务器140与数据库服务器130相连。用户在访问页面时生成的日志数据可以上传到与网络服务器180耦接的流量采集服务器170中,换言之,流量采集服务器170可以从网络服务器180中采集获取用户访问页面时生成的日志数据。并且,流量采集服务器170可以将获取的日志数据提供给分布式存储系统150、数据处理设备120,例如,数据处理设备120可以从流量采集服务器170中获取实时日志数据。
45.用户在访问页面过程中生成的业务数据可以上传到业务应用服务器140中,换言之,业务应用服务器140可以从网络服务器180中获取用户在访问页面过程中生成的业务数据。并且,业务应用服务器140可以将获取的业务数据存储在数据库服务器130中,这样,数据处理设备120可以从数据库服务器130获取业务数据。
46.在根据本发明的实施例中,对于历史数据而言,数据处理设备120可以基于预定时间周期将相应的历史数据抽取到分布式存储系统150中进行存储,并基于历史数据生成相应的hive表。这样,当数据处理设备120接收到数据展示平台110获取目标数据的请求时,如果确定目标数据包括历史数据,便可以直接从分布式存储系统150的hive表中获取相应的历史目标数据。
47.具体而言,每隔预定时间周期,数据处理设备120将当前时间周期的前一个时间周期内生成的数据作为历史数据抽取到分布式存储系统150中。这里,预定时间周期例如为每天,从而可以以日期来区分每个时间周期。
48.在一个实施例中,数据处理设备120基于预定时间周期从流量采集服务器170中获
取历史日志数据,具体而言,每隔预定时间周期从流量采集服务器170中获取当前时间周期的上一个时间周期内生成的日志数据,作为与当前时间周期相对应的历史日志数据。通过对历史日志数据进行解析、格式化处理,能获取相应的历史流量数据,并基于etl将历史流量数据存储在分布式存储系统150中,生成与历史流量数据相对应的hive表。应当理解,在当前时间周期获取的历史流量数据是在上一个时间周期内生成的流量数据。例如,今天获取的历史流量数据是昨天生成的流量数据。
49.数据处理设备120基于预定时间周期从数据库服务器130中获取历史业务数据,具体而言,每隔预定时间周期从数据库服务器130中获取当前时间周期的上一个时间周期内生成的业务数据,作为与当前时间周期相对应的历史业务数据。进而,基于etl将历史业务数据存储在分布式存储系统150中,生成与历史业务数据相对应的hive表。应当理解,在当前时间周期获取的历史业务数据是在上一个时间周期内生成的业务数据。例如,今天获取的历史业务数据是昨天生成的业务数据。
50.数据处理设备120可以将分布式存储系统150中同一个时间周期的历史流量数据、历史业务数据进行合并处理,生成与时间周期相对应的历史数据(即是历史流量数据、历史业务数据合并后的数据)对应的hive表。这样,当目标数据包括历史数据时,数据处理设备120便可以直接从分布式存储系统150中获取相应的历史目标数据,而不再需要对历史数据进行处理。
51.在一个实施例中,数据处理系统100还包括与流量采集服务器170连接的消息队列服务器160,分布式存储系统150通过消息队列服务器160与流量采集服务器170连接,从而可以基于消息队列服务器160将流量采集服务器170中的流量数据抽取到分布式存储系统150中。
52.在根据本发明的实施例中,对于实时数据而言,实时数据并没有被抽取到分布式存储系统中。故,当数据处理设备120接收到数据展示平台110获取目标数据的请求时,如果确定目标数据包括实时数据(包括相应的实时流量数据、实时业务数据),则需要分别从流量采集服务器170获取实时流量数据、从数据库服务器130中获取实时业务数据。
53.在一个实施例中,数据处理设备120可以直接基于sql函数查询数据库服务器130中的实时业务数据,并从数据库服务器130获取实时业务数据。
54.在一个实施例中,数据处理设备120与流量采集服务器170连接,可以从流量采集服务器170中获取实时日志数据,通过对实时日志数据进行处理来获取实时流量数据。
55.在一个实施例中,数据处理设备120与消息队列服务器160连接,并通过消息队列服务器160与流量采集服务器170相连。消息队列服务器160包括分布式消息队列。通过消息队列服务器160可以从流量采集服务器170中获取实时日志数据,并将实时日志数据添加到消息队列服务器160的消息队列中。数据处理设备120可以从消息队列中逐次获取实时日志数据,并通过flink流处理框架对每次获取的实时日志数据进行流处理后,能得到相应的实时流量数据,并将实时流量数据存储到数据处理设备120的内存(redis服务器)。
56.另外,通过将存储到内存中的实时流量数据和从数据库服务器130中获取到的实时业务数据进行关联,能够得到实时目标数据。
57.在根据本发明的实施例中,当数据处理设备120获取到历史目标数据和/或实时目标数据之后,将历史目标数据和/或实时目标数据返回给数据展示平台110,以便在数据展
示平台110展示目标数据,供运营人员查看。需要说明的是,当目标数据只包括历史数据时,数据处理设备120仅获取历史目标数据,并将历史目标数据返回给数据展示平台110。当目标数据只包括实时数据时,数据处理设备120仅获取实时目标数据,并将实时目标数据返回给数据展示平台110。当目标数据同时包括历史数据和实时数据时,数据处理设备120获取历史目标数据和实时目标数据,并将历史目标数据和实时目标数据一起返回给数据展示平台110。
58.根据本发明的数据处理系统,通过基于预定时间周期将历史数据抽取到分布式存储系统中,而对于实时数据进行实时处理和获取,并且对于实时数据中的流量数据和业务数据是分别从流量采集服务器、数据库服务器中获取。当运营人员在数据处理平台向数据处理设备请求获取预定时间区间内的目标数据时,对于目标数据中的历史数据可以直接从分布式存储系统中获取,而实时数据分别从流量采集服务器、数据库服务器中获取。这样,一方面避免了对大量的历史数据进行处理造成的延时问题,有利于更及时、快速地获取目标数据进行展示。另一方面,对于目标数据包括的历史数据和实时数据分别进行获取,能实现实时获取当前时间周期生成的数据,而且,在获取较长时间区间内的大规模的目标数据时,也仅仅需要针对实时业务数据查询数据库服务器,并不会增加数据库服务器的压力,不会干扰正常业务,能保证数据处理系统的稳定运行。可见,根据本发明的技术方案,更有利于获取较长时间内的大规模数据。
59.在本发明的实施例中,数据处理设备120适于执行数据处理方法。本发明的数据处理方法将在下文中详述。
60.在一个实施例中,本发明的数据处理设备120可以实现为一种计算设备,使得本发明的数据处理方法可以在计算设备中执行。
61.图2示出了根据本发明一个实施例的计算设备200的结构图。如图2所示,在基本的配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
62.取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μp)、微控制器(μc)、数字信息处理器(dsp)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(alu)、浮点数单元(fpu)、数字信号处理核心(dsp核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
63.取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如ram)、非易失性存储器(诸如rom、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个应用222以及程序数据224。应用222实际上是多条程序指令,其用于指示处理器204执行相应的操作。在一些实施方式中,应用222可以布置为在操作系统上使得处理器204利用程序数据224进行操作。
64.计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个a/v端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外
设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个i/o端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
65.网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(rf)、微波、红外(ir)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
66.在根据本发明的计算设备200中,应用222包括执行数据处理方法300的多条程序指令,这些程序指令可以指示处理器204执行本发明的数据处理方法300,以便计算设备200通过执行本发明的数据处理方法300来对数据进行处理,并将处理后的数据提供给数据展示平台110进行展示。
67.图3示出了根据本发明一个实施例的数据处理方法300的流程图。方法300适于在计算设备(例如前述计算设备200)中执行。计算设备200分别与数据库服务器130、分布式存储系统150、流量采集服务器170连接,且计算设备200与数据展示平台110通信连接。
68.如图3所示,方法300始于步骤s310。
69.在步骤s310中,接收数据展示平台110获取目标数据的请求。这里,业务人员(例如运营人员)可以在数据展示平台110请求获取目标数据,请求获取的目标数据通常包括流量数据和业务数据。进而,数据展示平台110将业务人员获取目标数据的请求发送给计算设备200。需要说明的是,数据展示平台110是业务人员用于请求获取数据并查看数据的客户端平台。
70.需要说明的是,流量数据是用户(浏览者)访问网站的各个页面或访问应用时的访问数据。具体而言,当用户访问网络页面或应用页面时,用户对页面内容的浏览、点击、滑动等操作,均会生成相应的日志数据。通过获取日志数据、对日志数据进行解析可以获取相应的流量数据。业务数据是在用户访问网络页面或应用页面过程中生成的数据,业务数据例如是用户注册账户时生成的账户信息、用户的购买行为(例如加入购物车、下单、付款等操作)生成的订单信息等,但不限于此。这里,用户可以通过客户端向网络服务器180请求获取页面,并访问页面。网络服务器180可以包括多个页面文件,用于向客户端提供网络信息浏览服务。
71.随后,在步骤s320中,判断数据展示平台110请求获取的目标数据是否包括历史数据、实时数据。
72.应当指出,对于目标数据而言,数据展示平台110的运营人员可以请求获取在预定时间区间内生成的流量数据和业务数据,也就是说,运营人员请求获取的目标数据对应一个时间区间。
73.基于数据展示平台请求的目标数据对应的时间区间,无论是目标数据中的流量数
据还是业务数据,均可能包括历史数据和/或实时数据。这里,历史数据与实时数据是基于预定时间节点来划分的,具体而言,在预定时间节点之前生成的数据为历史数据,在预定时间节点或在预定时间节点之后生成的数据为实时数据。
74.可以理解,在确定预定时间节点和目标数据对应的时间区间后,通过判断预定时间节点是否是时间区间中的一个时间节点,便可以确定时间区间是否包括历史时间区间、实时时间区间。具体地,如果预定时间节点是时间区间内的一个时间节点,则基于预定时间节点可以将目标数据对应的时间区间划分为历史时间区间、实时时间区间,历史时间区间对应的是历史数据,实时时间区间对应的是实时数据,在此情况下,目标数据既包括历史数据也包括实时数据。如果时间区间中的任意时间节点均在预定时间节点之前,说明整个时间区间均为历史时间区间,在此情况下,目标数据只包括历史数据。如果时间区间中的任意时间节点均在预定时间节点之后,说明整个时间区间均为实时时间区间,在此情况下,目标数据只包括实时数据。
75.根据一个实施例,在判断数据展示平台110请求获取的目标数据是否包括历史数据、实时数据时,首先根据数据展示平台110获取目标数据的请求来确定目标数据对应的时间区间,并确定用于划分历史时间和实时时间的预定时间节点。
76.进而,根据预定时间节点确定时间区间是否包括历史时间区间、实时时间区间。如果预定时间节点是时间区间中的一个时间节点、或者时间区间中的任意时间节点均在预定时间节点之前,说明时间区间包括历史时间区间,则可以确定数据展示平台请求获取的目标数据包括相应的历史数据,并且,可以基于历史时间区间来获取相应的历史目标数据。
77.如果预定时间节点是时间区间中的一个时间节点、或者时间区间中的任意时间节点均在预定时间节点之后,说明时间区间包括实时时间区间,则可以确定数据展示平台请求获取的目标数据包括相应的实时数据,并且,可以基于实时时间区间来获取相应的实时目标数据。
78.根据一个实施例,如果确定数据展示平台110请求获取的目标数据包括历史数据,则执行步骤s330。在步骤s330中,从分布式存储系统150中获取相应的历史目标数据。需要说明的是,历史数据(包括历史流量数据、历史业务数据)已经预先处理过,并且存储在分布式存储系统150中,从而可以直接从分布式存储系统150中获取历史数据,即是历史目标数据。
79.根据一个实施例,如果包括实时数据,则执行步骤s340~s360。需要说明的是,实时数据并未经过预先处理,故,在接收到数据展示平台110获取目标数据的请求时,还需要对目标数据中的实时数据进行处理。应当理解,实时数据包括实时流量数据和实时业务数据。
80.在步骤s340中,从流量采集服务器170获取实时流量数据,并将获取的实时流量数据存储到计算设备200的内存(redis服务器)。需要说明的是,当用户访问网页时,用户对页面内容的浏览、点击、滑动等操作,均会在网络服务器180生成相应的日志数据,流量采集服务器170可以从网络服务器180中采集获取日志数据。计算设备200与流量采集服务器170连接,从而,计算设备200可以从流量采集服务器170中获取相应的实时日志数据,通过对实时日志数据进行处理能够获取实时流量数据,并将实时流量数据存储到与计算设备200耦接的redis服务器。
81.在一个实施例中,计算设备200与消息队列服务器160连接,并通过消息队列服务器160与流量采集服务器170连接。在获取实时流量数据时,通过消息队列服务器160从流量采集服务器170中获取实时日志数据,并将实时日志数据添加到消息队列服务器160的消息队列中。计算设备200可以从消息队列中逐次获取实时日志数据,并通过flink流处理框架对每次获取的实时日志数据进行流处理后,能得到相应的实时流量数据。这里,flink一种开源流处理框架,其核心是用java和scala编写的分布式流数据流引擎。flink适于以数据并行和流水线方式执行任意流数据程序,flink的流水线运行时系统可以执行批处理和流处理程序。
82.在一个实施例中,对实时日志数据进行流处理包括:对实时日志数据进行过滤、筛选、分组、并基于时间窗口进行统计。
83.随后,在步骤s350中,从数据库服务器130中查询获取实时业务数据。这里,数据库服务器130例如是关系型数据库服务器,计算设备200与数据库服务器130连接,且数据库服务器130与业务应用服务器140耦接,业务应用服务器140与网络服务器180连接。用户在访问网页或应用过程中,用户注册账户、将商品加入购物车、下单、付款等行为均会在网络服务器180中生成相应的业务数据,业务应用服务器140可以从网络服务器180中获取用户在访问页面过程中生成的业务数据,并可以将获取的业务数据存储到数据库服务器130中。这样,计算设备200可以直接基于sql函数查询数据库服务器130中的实时业务数据,并从数据库服务器130获取实时业务数据。
84.最后,在步骤s360中,将步骤s340中存储到内存中的实时流量数据和步骤s350中从数据库服务器130中获取到的实时业务数据进行关联,得到实时目标数据。
85.根据一个实施例,在获取到历史目标数据和/或实时目标数据之后,计算设备200将历史目标数据和/或实时目标数据返回给数据展示平台110,以便在数据展示平台110展示目标数据。需要说明的是,当目标数据只包括历史数据时,计算设备200仅获取历史目标数据,并将历史目标数据返回给数据展示平台110。当目标数据只包括实时数据时,计算设备200仅获取实时目标数据,并将实时目标数据返回给数据展示平台110。当目标数据同时包括历史数据和实时数据时,计算设备200获取历史目标数据和实时目标数据,并将历史目标数据和实时目标数据一起返回给数据展示平台110。
86.根据一个实施例,如果数据展示平台110请求获取的目标数据同时包括历史数据和实时数据,则计算设备200在获取历史目标数据和实时目标数据之后,还将历史目标数据和实时目标数据进行合并处理,合并处理后得到最终目标数据,并将最终目标数据返回至数据展示平台110,以便在数据展示平台110展示最终目标数据供用户查看。
87.根据一个实施例,计算设备200可以基于预定时间周期将相应的历史数据抽取到分布式存储系统150中,并基于历史数据生成相应的hive表。这样,当接收到数据展示平台110获取目标数据的请求时,如果目标数据包括历史数据,便可以直接从分布式存储系统150的hive表中获取相应的历史目标数据。
88.具体而言,每隔预定时间周期,将当前时间周期的前一个时间周期内生成的数据作为历史数据抽取到分布式存储系统150中。当前时间周期生成的数据为实时数据。当前时间周期即是从预定时间节点之后的时间段。例如,预定时间周期可以为每天,从而可以以日期来区分每个时间周期,预定时间节点即是今天0点,实时数据即是从今天0点及0点之后的
时间段内生成的数据,历史数据即是在今天0点之前生成的数据。
89.根据一个实施例,将历史数据抽取到分布式存储系统150中进一步可以按照以下方法执行:
90.基于预定时间周期从流量采集服务器170中获取历史日志数据,具体而言,每隔预定时间周期从流量采集服务器170中获取当前时间周期的上一个时间周期内生成的日志数据,作为与当前时间周期相对应的历史日志数据。通过对历史日志数据进行解析、格式化处理,能获取相应的历史流量数据,并基于etl将历史流量数据存储在分布式存储系统150中,生成与历史流量数据相对应的hive表。应当理解,在当前时间周期获取的历史流量数据是在上一个时间周期内生成的流量数据。例如,今天获取的历史流量数据是昨天生成的流量数据。
91.基于预定时间周期从数据库服务器130中获取历史业务数据,具体而言,每隔预定时间周期从数据库服务器130中获取当前时间周期的上一个时间周期内生成的业务数据,作为与当前时间周期相对应的历史业务数据。进而,基于etl将历史业务数据存储在分布式存储系统150中,生成与历史业务数据相对应的hive表。应当理解,在当前时间周期获取的历史业务数据是在上一个时间周期内生成的业务数据。例如,今天获取的历史业务数据是昨天生成的业务数据。
92.计算设备200通过将分布式存储系统中同一个时间周期的历史流量数据、历史业务数据进行合并处理,生成与时间周期相对应的历史数据(即是历史流量数据、历史业务数据合并后的数据)对应的hive表。这样,当目标数据包括历史数据时,计算设备200便可以直接从分布式存储系统150中获取相应的历史目标数据,而不再需要对历史数据进行处理。
93.根据一个实施例,分布式存储系统150通过消息队列服务器160与流量采集服务器170连接,从而可以基于消息队列服务器160将流量采集服务器170中的流量数据抽取到分布式存储系统150中。
94.根据一个实施例,在获取历史目标数据之后,还对历史目标数据进行清洗、筛选、统计。
95.根据本发明的数据处理方法,通过基于预定时间周期将历史数据(包括历史流量数据和历史业务数据)抽取到分布式存储系统中,而对于实时数据进行实时处理和获取,并且对于实时数据中的流量数据和业务数据是分别从流量采集服务器、数据库服务器中获取。当运营人员在数据处理平台向数据处理设备请求获取预定时间区间内的目标数据(通常包括流量数据和业务数据)时,对于目标数据中的历史数据可以直接从分布式存储系统中获取,而实时数据分别从流量采集服务器、数据库服务器中获取。这样,一方面避免了对大量的历史数据进行处理造成的延时问题,有利于更及时、快速地获取目标数据进行展示。另一方面,对于目标数据包括的历史数据和实时数据分别进行获取,能实现实时获取当前时间周期生成的数据,而且,在获取较长时间区间内的大规模的目标数据时,也仅仅需要针对实时业务数据查询数据库服务器,并不会增加数据库服务器的压力,不会干扰正常业务,能保证数据处理系统的稳定运行。可见,根据本发明的技术方案,更有利于获取较长时间内的大规模数据。
96.此外,由于流量数据是单独从流量采集服务器获取,这样有利于更精准地获取流量数据和业务数据。
97.a8、如a7所述的数据处理方法,其中,基于预定时间周期将历史数据抽取到分布式存储系统中的步骤包括:每隔预定时间周期,将当前时间周期的前一个时间周期内生成的数据作为历史数据抽取到分布式存储系统中。
98.a9、如a7或a8所述的数据处理方法,其中,将历史数据抽取到分布式存储系统中的步骤包括:基于预定时间周期从流量采集服务器中获取历史日志数据,对历史日志数据进行解析、格式化处理,以获取历史流量数据,并基于etl将历史流量数据存储在分布式存储系统中,生成与历史流量数据相对应的hive表;基于预定时间周期从数据库服务器中获取历史业务数据,并基于etl将历史业务数据存储在分布式存储系统中,生成与历史业务数据相对应的hive表;将所述分布式存储系统中的历史流量数据、历史业务数据进行合并处理,以生成与历史数据相对应的hive表。
99.a10、如a7-a9任一项所述的数据处理方法,其中,还包括步骤:对历史目标数据进行清洗、筛选、统计。
100.a11、如a5或a6所述的数据处理方法,其中,对实时日志数据进行流处理包括:对实时日志数据进行过滤、筛选、分组、并基于时间窗口进行统计。
101.b13、如b12所述的数据处理系统,其中,还包括:网络服务器,与所述流量采集服务器耦接,所述流量采集服务器适于从所述网络服务器获取日志数据;以及业务应用服务器,分别与网络服务器、数据库服务器耦接,适于从所述网络服务器获取业务数据,并将业务数据存储在数据库服务器中。
102.b14、如b13所述的数据处理系统,其中,还包括:消息队列服务器,与所述流量采集服务器连接,适于从流量采集服务器获取实时日志数据,并将实时日志数据添加到消息队列中;所述数据处理设备适于从消息队列中逐次获取实时日志数据,并对获取的实时日志数据进行流处理,以获取实时流量数据。
103.b15、如b12-b14任一项所述的数据处理系统,其中,所述数据处理设备适于:基于预定时间周期将历史数据抽取到分布式存储系统中,并基于历史数据生成相应的hive表,以便从分布式存储系统的hive表中获取历史目标数据。
104.b16、如b15所述的数据处理系统,其中,所述数据处理设备进一步适于:基于预定时间周期从流量采集服务器中获取历史日志数据,对历史日志数据进行解析、格式化处理,以获取历史流量数据,并基于etl将历史流量数据存储在分布式存储系统中,生成与历史流量数据相对应的hive表;基于预定时间周期从数据库服务器中获取历史业务数据,并基于etl将历史业务数据存储在分布式存储系统中,生成与历史业务数据相对应的hive表;将所述分布式存储系统中的历史流量数据、历史业务数据进行合并处理,以生成与历史数据相对应的hive表。
105.这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、u盘、软盘、cd-rom或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
106.在程序代码在可编程计算机上执行的情况下,移动终端一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至
少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的数据处理方法。
107.以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
108.在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
109.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
110.类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
111.本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
112.本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
113.此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
114.此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法
元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
115.如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
116.尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1