一种数据库日志统计方法、系统及相关装置制造方法及图纸

技术编号:26259291 阅读:30 留言:0更新日期:2020-11-06 17:53
本申请提供一种数据库日志统计方法,包括:获取日志数据并存入循环缓冲区;在所述循环缓冲区中对所述日志数据进行解析,得到预设格式的日志数据,并存至目标数据库。本申请利用基于Disruptor并发框架结构的循环缓冲区进行数据库日志数据的获取、解析和存储,利用Disruptor高吞吐和低延迟的特点,实现了数据高效的传输,减少日志数据在其他中间存储环境的占用时间,使得数据可以快速在不同的数据源之前进行数据操作。本申请还提供一种数据库日志统计系统、计算机可读存储介质和电子设备,具有上述有益效果。

【技术实现步骤摘要】
一种数据库日志统计方法、系统及相关装置
本申请涉及数据库领域,特别涉及一种数据库日志统计方法、系统及相关装置。
技术介绍
当前存储系统的日志分析采集会产生大量的格式不一的日志,比如:syslog、json、xml、csv等等,为将数据ETL化(Extract-Transform-Load,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程),需要对其进行大量的抽取、清洗、转换函数操作,最后入库到存储系统,为了方便查询,还需要将其索引、分类,对日志管理要求较高。相关技术中在日志数据的处理速度及准确性方面会大降低,并且无法满足数据源多种多样的变化,由于日志数据的处理入库过程较慢,进一步导致相应的日志数据存储紊乱,造成日志后续查询分析过程缓慢,不利于实现日志分析,给日志审计过程带来困难,影响用户基于日志数据的统计效率。
技术实现思路
本申请的目的是提供一种数据库日志统计方法、系统、计算机可读存储介质和电子设备,能够提高日志的处理入库效率。为解决上述技术问题,本申请提供一种数据库日志统计方法,具体技术方案如下:获取日志数据并存入循环缓冲区;其中,所述循环缓冲区为基于Disruptor并发框架结构的循环缓冲区;在所述循环缓冲区中对所述日志数据进行解析,得到预设格式的日志数据,并存至目标数据库。可选的,在所述循环缓冲区中对所述日志数据进行解析,得到预设格式的日志数据包括:在所述循环缓冲区中对所述日志数据进行字段映射,得到数据字段;对所述数据字段调用应用字典解析,得到预设格式的日志数据。可选的,将所述日志数据存至目标数据库后还包括:所述目标数据库的逻辑主库将所述日志数据解析为第二预设格式,并发送至逻辑备库;所述逻辑备库将所述日志数据重做并保存。可选的,包括:在所述目标数据库中创建分区表,并配置所述分区表的分区键和分区策略;其中,所述分区策略包括范围分区和列表分区。可选的,包括:在所述分区表中添加GIN扩展索引,以便利用所述GIN扩展索引在所述分区表中检索所述日志数据。可选的,还包括:利用Lucene索引基于所述分区表进行分块查询,得到分析结果;将所述分析结果存入所述目标数据库。可选的,还包括:当所述日志数据的数据流量大于预设值时,利用消息队列对所述日志数据进行缓存;相应的,所述获取日志数据并存入循环缓冲区包括:从所述消息队列中获取日志数据,并将所述日志数据存入循环缓冲区。本申请还提供一种数据库日志统计系统,包括:获取模块,用于获取日志数据并存入循环缓冲区;其中,所述循环缓冲区为基于Disruptor并发框架结构的循环缓冲区;存储模块,用于在所述循环缓冲区中对所述日志数据进行解析,得到预设格式的日志数据,并存至目标数据库。本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。本申请还提供一种电子设备,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。本申请提供一种数据库日志统计方法,包括:获取日志数据并存入循环缓冲区;在所述循环缓冲区中对所述日志数据进行解析,得到预设格式的日志数据,并存至目标数据库。本申请利用基于Disruptor并发框架结构的循环缓冲区进行数据库日志数据的获取、解析和存储,利用Disruptor高吞吐和低延迟的特点,实现了数据高效的传输,减少日志数据在其他中间存储环境的占用时间,使得数据可以快速在不同的数据源之前进行数据操作。在此基础上,由于Disruptor的全称无锁设计,便于在获取日志数据后对日志进行分析审计,简化日志的索引设计,有利于降低日志分析、审计和管理的复杂程度,提高日志数据的分析性能。本申请还提供一种数据库日志统计系统、计算机可读存储介质和电子设备,具有上述有益效果,此处不再赘述。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请实施例所提供的一种数据库日志统计方法的流程图;图2为本申请实施例所提供的一种数据库日志统计系统结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。请参考图1,图1为本申请实施例所提供的一种数据库日志统计方法的流程图,该方法包括:S101:获取日志数据并存入循环缓冲区;S102:在所述循环缓冲区中对所述日志数据进行解析,得到预设格式的日志数据,并存至目标数据库。需要注意的是,循环缓冲区为基于Disruptor并发框架结构的循环缓冲区。本实施例公开的数据库日志统计方法可以采用11.5版本的PostgreSQL,运行在CentOS7.7.1908的Linux系统上,采用Docker容器虚拟多个运行环境,提供PostgreSQL运行集群。当然本领域技术人员还可以采用其他版本的PostgreSQL,也可以采用其他设备提供PostgreSQL运行集群,均应在本申请的保护范围内。Disruptor是一个开源的并发框架,能够在无锁的情况下实现网络的队列并发操作。这个系统建立在JVM(JavaVirtualMachine,Java虚拟机)平台上,核心是一个逻辑处理器。业务逻辑处理器完全运行在内存中(in-memory),使用事件源(eventsourcing)方式驱动。步骤S101中,先获取日志数据并存入缓冲区,该日志可以直接来源于各客户机,也可以在日志数据的数据流量大于预设值时,先利用消息队列对日志数据进行缓存,则此时可以从消息队列中获取日志数据,并将日志数据存入循环缓冲区。但很显然,日志数据的源头依旧为各个客户机。在获取得到日志数据后,将日志数据存入循环缓冲区。环形缓冲区通常有一个读指针和一个写指针。读指针指向循环缓冲区中下一次可读的数据,写指针指向循环缓冲区中下一次可写的位置。通过移动读指针和写指针就可以实现循环缓冲区的数据读取和写入。在通常情况下,读指针和写指针互不影响。如果仅仅有一个读用户和一个写用户,那么不需要添加互斥保护机制就可以保证数据的正确性。在循环缓冲区中存入日志数据后,需要对不同格式的日志数据进行解析,以统一为预设格式,存入数据库。在此对于如何对日志数据进行解析不作具体限定,可本文档来自技高网...

【技术保护点】
1.一种数据库日志统计方法,其特征在于,包括:/n获取日志数据并存入循环缓冲区;其中,所述循环缓冲区为基于Disruptor并发框架结构的循环缓冲区;/n在所述循环缓冲区中对所述日志数据进行解析,得到预设格式的日志数据,并存至目标数据库。/n

【技术特征摘要】
1.一种数据库日志统计方法,其特征在于,包括:
获取日志数据并存入循环缓冲区;其中,所述循环缓冲区为基于Disruptor并发框架结构的循环缓冲区;
在所述循环缓冲区中对所述日志数据进行解析,得到预设格式的日志数据,并存至目标数据库。


2.根据权利要求1所述的数据库日志统计方法,其特征在于,在所述循环缓冲区中对所述日志数据进行解析,得到预设格式的日志数据包括:
在所述循环缓冲区中对所述日志数据进行字段映射,得到数据字段;
对所述数据字段调用应用字典解析,得到预设格式的日志数据。


3.根据权利要求1所述的数据库日志统计方法,其特征在于,将所述日志数据存至目标数据库后还包括:
所述目标数据库的逻辑主库将所述日志数据解析为第二预设格式,并发送至逻辑备库;
所述逻辑备库将所述日志数据重做并保存。


4.根据权利要求1所述的数据库日志统计方法,其特征在于,包括:
在所述目标数据库中创建分区表,并配置所述分区表的分区键和分区策略;
其中,所述分区策略包括范围分区和列表分区。


5.根据权利要求4所述的数据库日志统计方法,其特征在于,包括:
在所述分区表中添加GIN扩展索引,以便利用所述GIN扩展索引在所述分区表中检索所...

【专利技术属性】
技术研发人员:李亮范渊刘博
申请(专利权)人:杭州安恒信息技术股份有限公司
类型:发明
国别省市:浙江;33

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

1