一种日志处理方法、装置及服务器制造方法及图纸

技术编号:10815153 阅读:183 留言:0更新日期:2014-12-24 19:25
本发明专利技术提供了一种日志的处理方法、装置及服务器,其中方法包括:为待处理的日志文件分配多个线程;根据所述多个线程的数量,对所述待处理的日志文件的数据进行分块;使用所述多个线程并行地对所述日志文件的各个块分别进行处理。本发明专利技术使用多个线程并行地对日志文件的各个块分别进行处理,与现有技术中采用串行方式处理日志文件的方式相比,可以有效地提高日志的执行速度,提升了日志的整体处理效率,同时节约了处理器的资源。

【技术实现步骤摘要】
【专利摘要】本专利技术提供了一种日志的处理方法、装置及服务器,其中方法包括:为待处理的日志文件分配多个线程;根据所述多个线程的数量,对所述待处理的日志文件的数据进行分块;使用所述多个线程并行地对所述日志文件的各个块分别进行处理。本专利技术使用多个线程并行地对日志文件的各个块分别进行处理,与现有技术中采用串行方式处理日志文件的方式相比,可以有效地提高日志的执行速度,提升了日志的整体处理效率,同时节约了处理器的资源。【专利说明】—种日志处理方法、装置及服务器
本专利技术涉及数据处理
,尤其涉及一种日志的处理方法、装置及服务器。
技术介绍
在数据处理
,通常会采用一种载体将某种行为相关的数据进行记录下来用于分析,例如,在计算机中,这种载体例如可以是用户行为日志等,一种纯文本。根据提前制定的记录规则,该载体记录了用户个体的全部行为,随着客户端用户的增多、用户行为的复杂,该载体的容量大小也会随之变大。 举个实际的例子来说,在客户端发起点播视频的操作并加载成功后,客户端会将用户的行为数据发送给服务器,这些行为数据包括:播放操作、播放的内容、频道、播放的码率和网络速率等数据。服务器会将这些数据按照设定的格式例如W3C的格式存储为日志,并可以通过读取这些日志记录的内容,对用户的行为数据进行处理例如进行统计和分析,从而得到有价值的信息。 因此,越高效地对日志进行处理,可以越早地得到有价值的信息,现有用户行为日志,通常以按日期(天或者小时)的方式进行存储,里面每一行数据均是一条完整的用户行为数据,现有的日志处理方式通常使用的是串行方式即:针对每一个日志文件以从头读到尾的方式顺序处理数据,处理完一个文件后,再处理下一个日志文件。这种处理方式,会造成过多的时间等待,浪费大量的处理器资源,导致日志处理的整体效率较低。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种日志处理方法、装置及服务器。 基于上述问题,本专利技术实施例提供的一种日志的处理方法,包括: 为待处理的日志文件分配多个线程; 根据所述多个线程的数量,对所述待处理的日志文件的数据进行分块; 使用所述多个线程并行地对所述日志文件的各个块分别进行处理。 本专利技术实施例提供的一种日志的处理装置,包括: 分配模块,用于为待处理的日志文件分配多个线程; 分块模块,用于根据所述多个线程的数量,对所述待处理的日志文件的数据进行分块; 并行处理模块,用于使用多个线程并行地对日志文件的各个块分别进行处理。 本专利技术实施例提供的服务器,包括本专利技术实施例提供的上述日志的处理装置。 本专利技术实施例的有益效果包括: 本专利技术实施例提供的日志的处理方法、装置及服务器,首先为待处理的日志文件分配多个线程,然后根据多个线程的数量,对待处理的日志文件的数据进行分块,使用多个线程并行地对日志文件的各个块分别进行处理,与现有技术中采用串行方式处理日志文件的方式相比,可以有效地提高日志的执行速度,提升了日志的整体处理效率,同时节约了处理器的资源。 上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的【具体实施方式】。 【专利附图】【附图说明】 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中: 图1为本专利技术实施例提供的日志的处理方法的流程图; 图2为本专利技术实施例提供的初步分块后各块的示意图; 图3为本专利技术实施例提供的实例的流程图; 图4为本专利技术实施例提供的日志的处理装置的结构图。 【具体实施方式】 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。 下面结合说明书附图,对本专利技术实施例提供的一种日志的处理方法、装置及服务器的【具体实施方式】进行说明。 首先对本专利技术实施例提供的一种日志的处理方法进行说明,如图1所示,该方法具体包括以下步骤: SI 1、为待处理的日志文件分配多个线程; S12、根据多个线程的数量,对待处理的日志文件的数据进行分块; S13、使用多个线程并行地对日志文件的各个块分别进行处理。 下面分别对上述各步骤进行详细说明。 上述Sll中,用于处理待处理日志的多个线程的数量,在具体实施时,可以根据处理器的数量和每个处理器的内核数来确定。 在现有技术中,由于串行的日志处理方式,会带来日志处理效率的低下,在本专利技术实施例中,将日志由串行处理更改为并行处理,这就需要多个线程同时参与日志的处理过程。 处理日志的线程的数量,可以依照当前处理器的内核数来确定,按照目前的计算机技术的发展,采用多处理器已经成为主流,这样,多个处理器存在的情况下,可以根据处理器的内核数量来确定线程的数量,例如,采用下述公式来计算多个线程的数量: 多个线程的数量=处理器的数量*每个处理器的内核数-1。 上述公式中,处理器的内核是指处理器的逻辑核心数。 上述公式的原理在于:所有处理器拥有的线程数即处理器拥有的逻辑核心数的总数,由于在多线程并行处理日志时,除了并行处理的多个线程之外,还必须保留一个主线程,因此,参照上述公式,参与并行处理日志的线程数量可以为处理器的数量*每个处理器的内核数-1。 当然,本专利技术实施例中,参与并行处理日志的线程数量也不限于使用上述公式计算,与串行进行日志的处理的方式相比,即使参与并行处理的线程数量较少,比如2、3个,也会带来处理效率的极大的提高,但是,在能够使用的线程数量的范围内,并不是参与并行处理的线程的数量越多并行处理的效率越高,在并行处理的线程数量达到一定的数值时,随着线程的数量的增加其处理效率会无变化甚至会稍有降低,在具体实施时,可以经过试验,选取适当数量的线程参与并行处理日志,达到提高处理效率的技术效果。 进一步地,上述S12中,根据多个线程的数量,对待处理的日志文件的数据进行分块,具体通过下述过程实现: 将日志文件的大小除以多个线程的数量,得到每个线程需处理的字节数; 根据每个线程需处理的字节数,对日志文件进行分块。 由于日志文件中每行日志均以分割符与其他行相区分,如果将日志文件的大小除以多个线程的数量,得到每个线程需处理的字节数,严格按照每个线程需处理的字节数作为块大小进行分块的话,会使得分块的首或者尾出现断行,即不完整的数据,对于每个线程来说,断行的数据是不能正常处理的,因此,在本专利技术实施例中,需要把这些不完整的数据的大小计算出来,把日志文件中相邻的两块的断行补全。 具体来说,就是在进行分块时,将前面计算出来的线程需处理的字节数作为每个块的大小,对日志文件进行初步分块,然后判断每个分块的最后一行日志是否为断行,若是,将该最后一行日志进本文档来自技高网
...
一种日志处理方法、装置及服务器

【技术保护点】
一种日志的处理方法,其特征在于,包括:为待处理的日志文件分配多个线程;根据所述多个线程的数量,对所述待处理的日志文件的数据进行分块;使用所述多个线程并行地对所述日志文件的各个块分别进行处理。

【技术特征摘要】

【专利技术属性】
技术研发人员:郭涛
申请(专利权)人:北京国双科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1