本发明涉及互联网数据处理技术领域,具体而言,涉及一种网站日志中访客信息的识别方法及装置。
背景技术:
网站日志是记录Web服务器接收处理请求和Web服务器运行时等各种原始信息的文件。网站日志中记录了网站运营中,被访问请求的数据信息。通过网站日志也可以获知用户访问网页的具体信息。
网站日志分析是互联网中常见的场景,在每天的网站日志中,都存在大量的访客,往往需要判断各个访客是否为新访客。新旧访客的判断原理为,每个访客都会有一个固定ID,该访客ID第一次出现则为新访客,将该访客ID写入数据库,保证在第二次进行该访客ID查询时,该访客成为旧用户。现有技术中采用的传统数据库存储旧访客ID,在执行新旧访客判断时,通过访客ID与数据库中存储的访客ID进行比较,即可判断出新旧访客的信息。但是在需要同时判断大量新旧访客的过程中,因为传统数据库只能在单机上运行,并行度差,因此导致处理速度慢。
针对相关技术中识别网站日志中新旧访客的速度慢的问题,目前尚未提出有效的解决方案。
技术实现要素:
本发明实施例提供了一种网站日志中访客信息的识别方法及装置,以至少解决相关技术中识别网站日志中新旧访客的速度慢的技术问题。
根据本发明实施例的一个方面,提供了一种网站日志中访客信息的识别方法,该方法包括:获取待处理的访客ID和预先创建的分布式数据库,其中,待处理的访客ID为待处理网站日志中的访客ID,分布式数据库为存储有历史访客ID的分布式数据库;以及通过分布式数据库对待处理的访客ID进行识别,确定待处理的访客ID为新访客的ID或旧访客的ID。
进一步地,通过分布式数据库对待处理的访客ID进行识别,确定待处理的访客 ID为新访客的ID或旧访客的ID包括:判断待处理的访客ID是否在分布式数据库中已经存在;如果待处理的访客ID在分布式数据库中已经存在,判定待处理的访客ID为旧访客的ID;以及如果待处理的访客ID在分布式数据库中不存在,判定待处理的访客ID为新访客的ID。
进一步地,待处理网站日志中包括待处理网站日志的时间信息和待处理的访客ID,在判定待处理的访客ID为新访客的ID之后,该方法还包括:将新访客的ID存储至分布式数据库;以及根据待处理网站日志的时间信息修改分布式数据库中新访客的ID对应的时间戳。
进一步地,待处理网站日志中包括待处理网站日志的时间信息和待处理的访客ID,通过分布式数据库对待处理的访客ID进行识别,确定待处理的访客ID为新访客的ID或旧访客的ID包括:获取待处理网站日志的时间信息;判断待处理网站日志的时间信息与分布式数据库中待处理的访客ID对应的时间戳是否相同;如果待处理网站日志的时间信息与分布式数据库中待处理的访客ID对应的时间戳相同,确定待处理的访客ID为新访客的ID;以及如果待处理网站日志的时间信息与分布式数据库中待处理的访客ID对应的时间戳不相同,确定待处理的访客ID为旧访客的ID。
进一步地,在获取待处理的访客ID和预先创建的分布式数据库之前,该方法还包括:创建分布式数据库;获取历史访客ID;以及将历史访客ID存储至分布式数据库。
进一步地,本发明实施例提供的一种网站日志中访客信息的识别方法中任一项的分布式数据库为HBase数据库。
根据本发明实施例的另一方面,还提供了一种网站日志中访客信息的识别装置,该装置包括:获取单元,用于获取待处理的访客ID和预先创建的分布式数据库,其中,待处理的访客ID为待处理网站日志中的访客ID,分布式数据库为存储有历史访客ID的分布式数据库;以及确定单元,用于通过分布式数据库对待处理的访客ID进行识别,确定待处理的访客ID为新访客的ID或旧访客的ID。
进一步地,确定单元包括:第一判断模块,用于判断待处理的访客ID是否在分布式数据库中已经存在;第一判定模块,用于在待处理的访客ID在分布式数据库中已经存在的情况下,判定待处理的访客ID为旧访客的ID;以及第二判定模块,用于在待处理的访客ID在分布式数据库中不存在的情况下,判定待处理的访客ID为新访客的ID。
进一步地,待处理网站日志中包括待处理网站日志的时间信息和待处理的访客ID,确定单元包括:获取模块,用于获取待处理网站日志的时间信息;第二判断模块,用 于判断待处理网站日志的时间信息与分布式数据库中待处理的访客ID对应的时间戳是否相同;第一确定模块,用于在待处理网站日志的时间信息与分布式数据库中待处理的访客ID对应的时间戳相同的情况下,确定待处理的访客ID为新访客的ID;以及第二确定模块,用于在待处理网站日志的时间信息与分布式数据库中待处理的访客ID对应的时间戳不相同,确定待处理的访客ID为旧访客的ID。
进一步地,本发明实施例提供的一种网站日志中访客信息的识别装置中任一项的分布式数据库为HBase数据库。
在本发明实施例中,采用获取待处理的访客ID和预先创建的分布式数据库,其中,待处理的访客ID为待处理网站日志中的访客ID,分布式数据库为存储有历史访客ID的分布式数据库;以及通过分布式数据库对待处理的访客ID进行识别,确定待处理的访客ID为新访客的ID或旧访客的ID,达到了提升识别网站日志中新旧访客速度的目的,从而实现了提升识别网站日志中新旧访客的速度的技术效果,进而解决了相关技术中识别网站日志中新旧访客的速度慢的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的网站日志中访客信息的识别方法的流程图;以及
图2是根据本发明实施例的网站日志中访客信息的识别装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方 法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种网站日志中访客信息的识别的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的网站日志中访客信息的识别方法的流程图。如图1所示,该方法包括如下步骤:
步骤S102,获取待处理的访客ID和预先创建的分布式数据库。
获取待处理的访客ID和预先创建的分布式数据库,其中,待处理的访客ID为待处理网站日志中的访客ID,分布式数据库为存储有历史访客ID的分布式数据库。
在每天待处理的网站日志中,都存在大量的访客信息,每个访客信息都会有一个固定ID,因此为了识别待处理的网站日志中的新旧访客信息,获取待处理的访客ID。
需要说明的是,待处理的网站日志是记录web服务器接收处理请求以及运行时错误等各种原始信息的以log结尾的文件。网站日志最大的意义是记录网站运营中比如空间的运营情况,被访问请求的记录。通过网站日志可以清楚的得知用户在什么I P、什么时间、用什么操作系统、什么浏览器、什么分辨率显示器的情况下访问了目标网站的哪个页面,是否访问成功。
分布式数据库为可扩展的分布式大数据存储数据库。它是一个适合于非结构化数据存储的数据库。在本实施例提供的分布式数据库横向扩容,分布在多台计算机中。
预先创建的分布式数据库中存储有历史访客ID,该历史访客ID是已经访问过网站的访客ID,即旧访客的ID。当识别出新访客的ID时,通过将该新访客的ID存储至分布式数据库中,保证及时对分布式数据库进行更新。
在本实施例提供的网站日志中访客信息的识别方法中,在获取待处理的访客ID和预先创建的分布式数据库之前,该方法还包括:创建分布式数据库;获取历史访客ID;以将历史访客ID存储至分布式数据库。
优选地,本发明实施例的网站日志中访客信息的识别方法中的分布式数据库为HBase(Hadoop database)数据库,其中,HBase数据库是一个分布式的、面向列的开源数据库。在本实施例中,HBase数据库中存储有历史访客ID。
需要说明的是,分布式数据库还可采用其它的可扩展分布式大数据存储方式,例如MySQL cluster等。对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,选择其它的可扩展分布式大数据存储方式均在本发明的保护范围内。
在本实施例提供的网站日志中访客信息的识别方法中,通过利用获取到的待处理的访客ID和预先创建的分布式数据库,进行识别待处理的网站日志中的新旧访客信息。
步骤S104,通过分布式数据库对待处理的访客ID进行识别,确定待处理的访客ID为新访客的ID或旧访客的ID。
为了提升识别待处理的网站日志中新旧访客信息,通过分布式数据库对待处理的访客ID进行识别,确定待处理的访客ID为新访客的ID或旧访客的ID包括:判断待处理的访客ID是否在分布式数据库中已经存在;如果待处理的访客ID在分布式数据库中已经存在,判定待处理的访客ID为旧访客的ID;以及如果待处理的访客ID在分布式数据库中不存在,判定待处理的访客ID为新访客的ID。
本发明实施例提供的一种网站日志中访客信息的识别方法,通过获取待处理的访客ID和预先创建的分布式数据库,其中,待处理的访客ID为待处理网站日志中的访客ID,分布式数据库为存储有历史访客ID的分布式数据库;以及通过分布式数据库对待处理的访客ID进行识别,确定待处理的访客ID为新访客的ID或旧访客的ID,达到了提升识别网站日志中新旧访客速度的目的,从而实现了提升识别网站日志中新旧访客的速度的技术效果,进而解决了相关技术中识别网站日志中新旧访客的速度慢的技术问题。
可选地,待处理网站日志中包括待处理网站日志的时间信息和待处理的访客ID,在判定待处理的访客ID为新访客的ID之后,该方法还包括:将新访客的ID存储至分布式数据库;以及根据待处理网站日志的时间信息修改分布式数据库中新访客的ID对应的时间戳。
通过上述步骤,判定出待处理的访客ID为新访客的ID或旧访客的ID。由于HBase为分布式数据库,通过增加集群机器数量,提高了存储和计算能力,从而并行度高,提高了识别网站日志中新旧访客信息的速度。
在网站日志分析过程中,如果判定出待处理的访客ID为新访客的ID,分布式数据库将存储新访客的ID。如果此时因为某种异常而中途退出,需要重新执行判断新旧访客。在分布式数据库中可能已经存储部分新访客的ID,因此,在重新执行判断新旧访客时,新旧访客的判断结果将发生变化。因此,该方法不具备重试性。
例如,待处理的网站日志中有访客id、id2…id100的访客ID,第一次执行分析 处理时,如果判断出分布式数据库中没有访客id1,id2…d100的访客ID,执行到id50时,都正确执行,判断id、id2…id50的ID全为新访客的ID,并将id、id2…id50的ID写入了分布式数据库。如果此时因为某种异常导致中途退出,需要重新执行进行判断新旧访客的信息。在第二次执行分析处理时,分布式数据库中已经包含了访客id、id2…id50的访客ID,此时,访客id、id2…id50将被错误的判断为旧访客,id51、id52…id100仍将被判断是新访客,新旧访客的判断结果发生了变化。因此,该方法不具备重试性。
为了使本实施例提供的网站日志中访客信息的识别方法具备重试性,待处理网站日志中包括待处理网站日志的时间信息和待处理的访客ID,通过分布式数据库对待处理的访客ID进行识别,确定待处理的访客ID为新访客的ID或旧访客的ID包括:获取待处理网站日志的时间信息;判断待处理网站日志的时间信息与分布式数据库中待处理的访客ID对应的时间戳是否相同;如果待处理网站日志的时间信息与分布式数据库中待处理的访客ID对应的时间戳相同,确定待处理的访客ID为新访客的ID;以及如果待处理网站日志的时间信息与分布式数据库中待处理的访客ID对应的时间戳不相同,确定待处理的访客ID为旧访客的ID。
需要说明的是,上述的待处理网站日志的时间信息为待处理网站日志当前的时间。
通过以上方法,即从分布式数据库中查找待处理的访客ID(即读取该访客ID对应的rowkey),如果在分布式数据库中不存在待处理的访客ID,则该访客ID为新用户的ID,将该访客ID插入分布式数据库,并修改时间戳为日志当天时间。如果在分布式数据库中存在待处理的访客ID,而且时间戳与日志当天时间相同,说明该访客ID是上次执行失败时存储的ID,仍然判定该访客ID为新访客的ID。如果在分布式数据库中存在待处理的访客ID,而且时间戳与日志当天时间不同,判定该访客ID为旧访客的ID。通过以上步骤,解决网站日志中访客信息的识别方法不具备重试性的问题,即使中途退出,再次重启计算,新旧访客的判断结果不会发生变化。即该方法具备可重试性。
例如,待处理的网站日志中有访客id、id2…id100的访客ID,第一次执行分析处理时,如果判断出分布式数据库中没有访客id1,id2…id100的访客ID,执行到id50时,都正确执行,判断id、id2…id50的访客ID全为新访客的ID,并将id、id2…id50的ID写入了分布式数据库,并修改id、id2…id50的访客ID对应的时间戳。如果此时因为某种异常中途退出,需要重新执行进行判断新旧访客的信息。第二次执行分析处理时,判断出分布式数据库中已经包含了访客id、id2…id50的访客ID,再次判断id、id2…id50的访客ID对应的时间戳与待处理网站日志的时间信息(即日志当天时 间)是否相同,如果id、id2…id50的访客ID对应的时间戳与待处理网站日志的时间信息(即日志当天时间)相同,说明id、id2…id50的访客ID是上次执行失败时存储的访客ID,判定id、id2…id50的访客ID为新访客的ID。如果在分布式数据库中存在待处理的访客ID,而且时间戳与日志当天时间不同,判定id、id2…id50的访客ID为旧访客的ID。
通过以上步骤,即使中途退出,再次重启计算,新旧访客的判断结果不会发生变化。即使得该方法具备可重试性。
综上所述,本发明实施例提供的一种网站日志中访客信息的识别方法,在新旧访客的判断方面具备可重试性,提高了判断新旧访客的准确性。
本发明实施例还提供了一种网站日志中访客信息的识别装置,需要说明的是,本发明实施例的网站日志中访客信息的识别装置可以用于执行本发明实施例所提供的用于网站日志中访客信息的识别方法。以下对本发明实施例提供的网站日志中访客信息的识别装置进行介绍。
图2是根据本发明实施例的网站日志中访客信息的识别装置的示意图。如图2所示,该装置包括:获取单元10和确定单元20。
获取单元10,用于获取待处理的访客ID和预先创建的分布式数据库,其中,待处理的访客ID为待处理网站日志中的访客ID,分布式数据库为存储有历史访客ID的分布式数据库。
确定单元20,用于通过分布式数据库对待处理的访客ID进行识别,确定待处理的访客ID为新访客的ID或旧访客的ID。
在本发明实施例提供的网站日志中访客信息的识别装置中,通过获取单元10获取待处理的访客ID和预先创建的分布式数据库,其中,待处理的访客ID为待处理网站日志中的访客ID,分布式数据库为存储有历史访客ID的分布式数据库;确定单元20通过分布式数据库对待处理的访客ID进行识别,确定待处理的访客ID为新访客的ID或旧访客的ID,达到了提升识别网站日志中新旧访客速度的目的,从而实现了提升识别网站日志中新旧访客的速度的技术效果,进而解决了相关技术中识别网站日志中新旧访客的速度慢的技术问题。
可选地,为了更准确的识别待处理的新旧访客,在本发明实施例提供的网站日志中访客信息的识别装置中,该确定单元20包括:第一判断模块,用于判断待处理的访客ID是否在分布式数据库中已经存在;第一判定模块,用于在待处理的访客ID在分布式数据库中已经存在的情况下,判定待处理的访客ID为旧访客的ID;以及第二判 定模块,用于在待处理的访客ID在分布式数据库中不存在的情况下,判定待处理的访客ID为新访客的ID。
可选地,为了使判断新旧访客具备可重试性,在本发明实施例提供的网站日志中访客信息的识别装置中,该装置还包括:待处理网站日志中包括待处理网站日志的时间信息和待处理的访客ID,该确定单元20包括:获取模块,用于获取待处理网站日志的时间信息;第二判断模块,用于判断待处理网站日志的时间信息与分布式数据库中待处理的访客ID对应的时间戳是否相同;第一确定模块,用于在待处理网站日志的时间信息与分布式数据库中待处理的访客ID对应的时间戳相同的情况下,确定待处理的访客ID为新访客的ID;以及第二确定模块,用于在待处理网站日志的时间信息与分布式数据库中待处理的访客ID对应的时间戳不相同,确定待处理的访客ID为旧访客的ID。
可选地,在本发明实施例提供的网站日志中访客信息的识别装置中的分布式数据库为HBase数据库。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质 上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。