行为日志查询系统及方法与流程

文档序号:12946949阅读:1075来源:国知局
行为日志查询系统及方法与流程

本发明属于大数据处理技术领域,尤其涉及一种行为日志查询系统及方法。



背景技术:

互联网时代发展到今天,诞生了无数个超大规模、超大流量的线上系统。大系统内部往往由多个模块组成,各个模块以服务和接口的方式输出功能,因此,大系统内部之间的协作可以看成是成百上千服务之间的调用与被调用。这样的模块划分有利于研发资源的分配和功能实现之间的隔离,带来的问题是系统日志的分散化,原本代表用户行为的日志会被分散到多个模块产生的日志,这给系统定位问题和研究用户的行为特性带来很大的困扰。

当前时代,大数据技术逐步趋于成熟,hadoop(一种分布式系统基础架构)、hive(基于hadoop的一个数据仓库工具)等处理框架能够很好解决海量日志存储的问题,但是对数据的实时查询性能有所欠缺;基于hive的查询优化,虽然查询性能有所提升,但似乎也满足不了web(全球广域网)应用秒级返回的需求,同时hive存储依赖于hdfs(hadoop分布式文件系统)的特性使得数据落地的实时性难以得到保障;elasticsearch(基于lucene的搜索服务器)、solr(独立的企业级搜索应用服务器)等分布式查询引擎,可以解决海量数据存储和近实时查询的问题,但是当日积月累的数据到达一定规模时,这些查询引擎的响应时间也很难得到保障。



技术实现要素:

本发明是为了克服现有技术中难以保障高效的用户行为日志实时查询和历史查询的缺陷,提供一种行为日志查询系统及方法。

本发明通过以下技术方案来解决上述问题:

一种行为日志查询系统,包括:

日志串接模块,用于在用户进行访问时将唯一标识增加到行为日志中;

至少一系统模块,每个系统模块存储有包含唯一标识的行为日志;

数据收集模块,用于从所述至少一系统模块中读取所有行为日志并写入查询引擎;

输入模块,用于输入查询关键词,所述查询关键词包括所述唯一标识;

查询引擎,包括至少一查询单位,每个查询单位存储有具有不同元数据的行为日志,所述元数据用于描述行为日志的属性,所述查询引擎还用于反馈包括所述查询关键词的行为日志。

较佳地,所述查询引擎包括实时查询引擎和历史查询引擎。

较佳地,所述行为日志查询系统还包括行为日志更新模块,所述行为日志更新模块用于检测所述查询引擎,在检测到存在新增行为日志时,将所述新增行为日志增加至所述查询引擎中对应的查询单位中。

较佳地,所述行为日志查询系统还包括可视化模块,用于显示包含所述查询关键词的行为日志。

一种行为日志查询方法,利用如上述各优选项任意组合的行为日志查询系统实现,所述行为日志查询方法包括以下步骤:

s1、用户进行访问时将唯一标识增加到行为日志中;

s2、数据收集模块从所述至少一系统模块中读取包含所述唯一标识的行为日志并写入查询引擎;

s3、所述查询引擎对每个唯一标识创建一个与查询单位相对应的索引;

s4、输入模块获取查询关键词,所述查询关键词包括所述唯一标识;

s5、所述查询引擎反馈包括所述查询关键词的行为日志。

较佳地,所述查询引擎包括实时查询引擎和历史查询引擎。

较佳地,所述行为日志查询系统还包括行为日志更新模块,所述行为日志查询方法还包括:

所述行为日志更新模块在检测到所述查询引擎存在新增行为日志时,将所述新增行为日志增加至所述查询引擎对应的查询单位中。

较佳地,所述行为日志查询方法还包括:

s6、可视化模块显示包含所述查询关键词的行为日志。

本发明的积极进步效果在于:本发明通过在系统入口为用户每次访问全局添加唯一标识,通过高吞吐量的消息队列收集用户行为日志,将暂存在消息队列里的带有唯一标识的行为日志,一方面实时将其etl(描述数据从来源端经过抽取、转换、加载至目的端的过程)到实时数据查询引擎,另一方面定期将积累的增量数据etl到历史查询引擎,从而支持历史数据和实时数据的查询。

附图说明

图1为本发明实施例1的行为日志查询系统的结构示意图。

图2为本发明实施例2的行为日志查询方法的流程图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

实施例1

一种行为日志查询系统,具体如图1所示,包括:至少一系统模块1、日志串接模块2、数据收集模块3、输入模块4和查询引擎5。

日志串接模块2用于为用户的每次访问添加唯一标识(如transactionid),并在系统模块1之间调用时一直将这个唯一标识作为参数传递下去,使得用户在不同的系统模块中分别产生并存储包括所述唯一标识的行为日志;

数据收集模块3用于从所有系统模块1中读取所有行为日志并写入查询引擎5,所述查询引擎5包括至少一查询单位,每个查询单位存储有具有不同元数据的行为日志,元数据用于描述行为日志的属性。

所述查询引擎5包括实时查询引擎和历史查询引擎,本实施例中,实时查询引擎采用elasticsearch查询引擎,能够达到近实时搜索,秒级响应速度,且稳定可靠;历史查询引擎采用hive查询引擎,能够很好的解决海量行为日志存储的问题,可以查询、存储和分析存储在hadoop中的大规模行为日志。

各个系统模块产生的包括唯一标识的行为日志,通过高吞吐量的数据收集模块(可采用高吞吐量的分布式发布系统kafka)收集,为了兼顾行为日志的实时性和历史数据的完整性,一方面通过logstash(日志管理工具)实时地将行为日志etl到elasticsearch查询引擎;另一方面通过gobblin(为hadoop提供的一个数据整合框架)定期地将行为日志etl至hive查询引擎,并用带索引的文件格式存储(如orc),这样可以尽量保证查询的性能,从而支持高效的历史行为日志的查询,由于数据etl至hive时选择orc的存储格式,还可以选择presto(一种分布式sql查询引擎)作为历史查询引擎,相对传统的hive,性能更高。

另外,来自于不同系统模块的行为日志由于各自的元数据设计不一致,这样就会导致行为日志etl到查询引擎时,行为日志会分布在不同的查询单位中,针对某个唯一标识的查询如果遍历所有查询单位是非常低效的,因此,需要创建一个单独的索引,来统计唯一标识精确对应着哪些查询单位,这样可以保证通过额外的一次查询,精准的找到唯一标识对应的所有查询单位,再对这些查询单位进行查询。

输入模块4用于输入查询关键词,所述查询关键词包括所述唯一标识,输入查询关键词后,所述查询引擎5反馈包括所述查询关键词的行为日志。

本实施例中,所述行为日志查询系统还包括行为日志更新模块6和可视化模块7,所述行为日志更新模块6用于检测所述查询引擎5,在检测到存在新增行为日志时,将所述新增行为日志增加至所述查询引擎5中对应的查询单位中;

所述可视化模块7用于显示包含所述查询关键词的行为日志。本实施例的行为日志查询系统基于web,用户可以通过浏览器直接访问,同时,输入模块输入的查询关键词是针对大量的日志自定义字段,本系统除了显示几个公有重要字段以外,其余都是可配置显示,让不同的使用者更加能够关注到自己感兴趣的字段;另外,对于序列化后报文的展现,本系统根据遇到的所有序列化方法,实现了反序列化库,能够在前端根据需要实时解析出压缩序列化后的报文,并利用前端技术将解析后的报文显示更加优雅易读。

本实施例中,行为日志查询系统解决了海量用户行为日志串接、存储、高效查询、可视化这一系列问题,建立一个统一的系统,将大型系统中海量用户的历史和当前行为日志在不同系统模块中串接起来,支持近实时的高效查询和可视化,从而使得研发人员能够高效地精准定位异常日志模块,提高排障的效率,减少损失;同时可以使得用户行为的精准刻画成为可能,为数据分析人员高效分析用户行为、提升产品体验提供便利。

实施例2

一种行为日志查询方法,具体如图2所示,所述行为日志查询方法利用如实施例1所述的行为日志查询系统实现,所述行为日志查询方法包括以下步骤:

步骤101、用户进行访问时将唯一标识增加到行为日志中;

步骤102、数据收集模块从所述至少一系统模块中读取包含所述唯一标识的行为日志并写入查询引擎;

步骤103、所述查询引擎对每个唯一标识创建一个与查询单位相对应的索引;

步骤104、输入模块获取查询关键词,所述查询关键词包括所述唯一标识;

步骤105、所述查询引擎反馈包括所述查询关键词的行为日志。

步骤106、可视化模块显示包含所述查询关键词的行为日志。

所述行为日志查询系统还包括行为日志更新模块,所述行为日志查询方法还包括:

所述行为日志更新模块在检测到所述查询引擎存在新增行为日志时,将所述新增行为日志增加至所述查询引擎对应的查询单位中。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1