数据处理方法和数据处理装置的制造方法

文档序号:9844131阅读:309来源:国知局
数据处理方法和数据处理装置的制造方法
【技术领域】
[0001] 本发明涉及计算机技术领域,具体涉及一种数据处理方法和数据处理装置。
【背景技术】
[0002] 随着互联网发展,数据统计已经越来越重要。例如,某个公司投放广告之后需要马 上知道在当前时刻根据某个条件或者某几个条件统计得到的关于该广告的数据,例如广告 的点击率等。下面以日志数据为例进行描述。对于数据量不太大的日志数据来说,通过关系 型数据库管理系统(mysql或sqlserver)、文档型数据库(mongo)等数据库完全可以满足对 数据的查询和统计需求。但是对于数据量较大的日志数据来说,如果希望实时对数据进行 统计并得出结果是非常困难的。例如,对于单表数据超过1亿条的情况,如果希望按每1秒 钟,每1分钟,每5分钟,每15分钟,每1小时,每1天等等这样的时间量度进行查询和统计并得 出需要的报表数据,采用mysql,mongo,sqlserver之类的数据库是很难满足需求的。

【发明内容】

[0003] 鉴于上述问题,提出了本发明以便提供一种至少部分地解决上述问题的数据处理 方法和数据处理装置。
[0004] 依据本发明的一个方面,提供了一种数据处理方法。该数据处理方法包括:从消息 队列中消费日志数据并将所消费的日志数据存储在临时缓存中,其中,消息队列用于存储 来自客户端的日志数据;对存储在临时缓存中的日志数据中的至少一部分进行整理,以获 得经整理的日志数据;以及将经整理的日志数据存储在文件系统中。
[0005] 依据本发明的另一个方面,提供了一种数据处理装置。该数据处理装置包括消费 单元、整理单元和存储单元。消费单元用于从消息队列中消费日志数据并将所消费的日志 数据存储在临时缓存中,其中,消息队列用于存储来自客户端的日志数据。整理单元用于对 存储在临时缓存中的日志数据中的至少一部分进行整理,以获得经整理的日志数据。存储 单元用于将经整理的日志数据存储在文件系统中。
[0006] 根据本发明提供的数据处理方法和数据处理装置,由于在将日志数据存储在文件 系统之前,先对日志数据进行了整理,也就是对日志数据进行边整理边存储,因此文件系统 中所存储的是已整理好的日志数据。这样,在对日志数据进行查询时,可以从部分已整理好 的日志数据中查询,因此可以节约数据查询时间,提高对查询请求的响应速度,从而可以实 现针对大数据的实时查询。
[0007]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够 更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0008]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通 技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明 的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0009] 图1示出根据本发明一个实施例的数据处理方法的流程示意图;
[0010] 图2示出根据本发明一个实施例的处理日志数据的工作流示意图;
[0011] 图3示出根据本发明另一个实施例的数据处理方法的流程示意图;
[0012] 图4示出根据本发明另一个实施例的数据处理方法的流程示意图;以及
[0013] 图5示出根据本发明一个实施例的数据处理装置的示意性框图。
【具体实施方式】
[0014] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开 的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例 所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围 完整的传达给本领域的技术人员。
[0015] 根据本发明的一个方面,提供一种数据处理方法。图1示出根据本发明一个实施例 的数据处理方法100的流程示意图。
[0016] 如图1所示,数据处理方法100包括以下步骤。
[0017] 在步骤S110,从消息队列中消费日志数据并将所消费的日志数据存储在临时缓存 中,其中,消息队列用于存储来自客户端的日志数据。
[0018] 日志数据(log data)就是一条日志消息的内在含义。换句话说,日志数据就是一 条日志消息里用来说明为什么生成日志消息的信息。例如,Web服务器一般会在用户访问 Web页面请求资源(图片、文件等等)的时候记录日志,生成日志数据。如果用户访问的页面 需要通过认证,日志消息将会包含用户名。在Web日志中,每条日志通常代表着用户的一次 访问行为。举例来说,日志数据可以包含访问时间、用户名、用户年龄、访问网页的统一资源 定位符(ur 1)、访问次数等信息。
[0019] 日志数据包含了大量产品分析人员会感兴趣的信息。举例来说,可以从日志数据 中获取网站每类页面的PV值(PageView,页面访问量)、独立IP(互联网协议地址)数等。另 外,可以从日志数据中计算得出用户所检索的关键词排行榜、用户停留时间最高的页面等。 更进一步地,还可以利用日志数据构建广告点击模型、分析用户行为特征等等。
[0020] 消息队列是在消息的传输过程中保存消息的容器。消息队列的主要目的是提供路 由并保证消息的传递。如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功 地传递它。这里的消息就是日志数据。
[0021] 可选地,消息队列可以存储在集群服务器中。具体地,可以搭建zookeeper和卡夫 卡(kafka)系统来配置高可用消息队列集群,也就是说,可以利用kafka集群服务器来存储 消息队列。
[0022]在客户端上运行的应用程序(例如web应用程序)可以将生成的日志数据以JS0N格 式写入到消息队列中。举例来说,客户端上的web应用程序在用户希望查看微博话题时向微 博服务器发出请求,微博服务器根据请求返回该微博话题的相关数据。此后,web应用程序 生成关于用户查看了该微博话题的日志数据并将日志数据以JS0N格式写入到消息队列中。
[0023]随后,可以从消息队列中消费日志数据。例如,可以利用德鲁伊(druid)数据库中 的实时(realtime)节点来消费日志数据。实时节点可以将所消费的日志数据存储在实时节 点的临时缓存中。
[0024]图2示出根据本发明一个实施例的处理日志数据的工作流示意图。为了描述方便, 下文将结合图2来描述数据处理方法的操作过程。然而,可以理解的是,图2所示的工作流仅 是示例而非对本发明的限制,本发明可以具有其他合理的实现方式。如图2所示,日志数据 210写入了消息队列220。随后,druid数据库的实时节点从消息队列220中消费日志数据并 将所消费的日志数据存储在实时节点的临时缓存(未示出)中。
[0025]在步骤S120,对存储在临时缓存中的日志数据中的至少一部分进行整理,以获得 经整理的日志数据。
[0026] druid数据库的实时节点230在将日志数据存储在文件系统(l〇Calst〇rag e)260中 之前,可以对日志数据进行一些处理。例如,实时节点230可以周期性地启动后台的计划任 务搜索与日志数据相关的持久化索引,后台计划任务将这些持久化索引合并到一起并生成 不可变的数据块。这些数据块包含了一段时间内的所有已经由实时节点消费的数据,这些 数据块可以称为"Segment"。随后,实时节点可以将这些数据块传送到一个永久持久化的备 份存储中,即本文所描述的文件系统。消费、持久化、合并和传送这些阶段都是流动的,并且 在这些处理阶段中不会有任何数据的丢失。
[0027]在步骤S130,将经整理的日志数据存储在文件系统中。
[0028]文件系统260可以采用任何合适的文件存储系统实现,例如hadoop分布式文件系 统(HDFS)等,本发明不对此进行限制。可以由druid数据库的实时节点将经整理的日志数据 存储在文件系统260中。在现有技术中,通常直接将未经处理的日志数据存储在mysql等数 据库中。这样,在后期对数据进行查询时,往往首先将未经整理的日志数据提取出来,再进 行统计分析。这种情况下,如果数据量较大,则需要花费较长的时间进行统计运算,导致查 询结果的反馈时间很长
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1