一种分布式应用系统下的慢sql实时数据采集方法技术方案

技术编号:21343410 阅读:41 留言:0更新日期:2019-06-13 22:26
本发明专利技术公开一种分布式应用系统下的慢sql实时数据采集方法,涉及数据采集技术领域;在分布式应用系统上部署数据源插件,采用过滤器拦截数据库操作执行时间超阈值的sql信息作为慢sql实时数据,通过kafka消息队列,分布式应用系统产生的所有慢sql数据推送到告警系统和数据存储系统,发送告警邮件、存储慢sql执行数据供后续分析和展示,从而提高了系统运维的效率,增加了系统性能优化的抓手,减少了系统中数据库操作隐患问题的发生。

A real-time data acquisition method for slow SQL in distributed application system

The invention discloses a real-time data acquisition method of slow SQL in distributed application system, which involves the field of data acquisition technology; deploys data source plug-ins on distributed application system, uses filters to intercept SQL information of over-threshold execution time of database operation as slow SQL real-time data, and pushes all slow SQL data generated by distributed application system to alarm through Kafka message queue. The system and data storage system send alarm mail and store slow SQL execution data for subsequent analysis and display, thus improving the efficiency of system operation and maintenance, increasing the grasp of system performance optimization, and reducing the occurrence of hidden problems of database operation in the system.

【技术实现步骤摘要】
一种分布式应用系统下的慢sql实时数据采集方法
本专利技术公开一种分布式应用系统下的慢sql实时数据采集方法,涉及数据采集

技术介绍
通信和网络技术的快速发展,推动了在线应用系统呈现几何级的增长。应用系统的服务内容也从原来的单一静态向多元动态交互模式发展,提高了用户体验的交互性和丰富性。然而,当海量用户在体验同一个网上服务的时候,经常会遇到服务器繁忙情况,因此现在往往使用多台服务器为同一种应用提供服务,为应用进行分布式部署。分布式部署在提高应用系统服务能力的同时,也增加了应用系统服务流程的复杂性。分布式环境下的数据库处理效率是影响应用系统服务能力的重要环节。为了保证数据库操作的稳定可用性,及时排除潜在的异常隐患,数据库操作sql语句执行实时监控。本专利技术提出了一种分布式应用系统下的慢sql实时数据采集方法,预设sql执行时间长短阈值,利用druid数据源接口插件,拦截执行时间超阈值的sql信息(执行语句、执行时间、执行次数、错误次数以及并发数)获取实时获取分布式应用系统中的慢sql执行数据,并将该数据写入kafka消息队列,推送到监控告警邮件系统和hbase数据存储系统,发送告警邮件并存储慢sql执行数据供后续分析和展示。实践表明,本方法提高了系统对数据操作层面监控的效率、增加了sql执行异常隐患排查的可预见性。
技术实现思路
本专利技术针对现有技术的问题,提供一种分布式应用系统下的慢sql实时数据采集方法,提高了系统运维的效率,增加了系统性能优化的抓手,减少了系统中数据库操作隐患问题的发生。本专利技术提出的具体方案是:一种分布式应用系统下的慢sql实时数据采集方法,在分布式应用系统中部署数据源插件,数据源插件获取数据库实例的连接状态,利用数据源插件的过滤器实时获取sql语句的执行信息并根据预设的sql执行时间阈值筛选大于阈值的sql信息作为慢sql实时数据进行采集,将采集的慢sql实时数据写入kafka集群用以通知告警并进行存储。所述的方法中在分布式应用系统中部署druid数据源插件,druid数据源插件包括数据库访问操作过滤器和数据记录过滤器,数据库访问操作过滤器根据预设的sql执行时间阈值与当前sql执行时间进行比较,获取到大于阈值的sql信息作为慢sql实时数据,发送给数据记录过滤器,数据记录过滤器将慢sql实时数据写入kafka集群。所述的方法中druid数据源插件生成druid数据源实例配置druid连接的数据库参数,将数据库参数注入数据库访问操作过滤器及数据记录过滤器,在数据库访问操作过滤器中根据预设的sql执行时间阈值配置sql语句执行时间限制,执行每一个sql操作时,数据库访问操作过滤器将读取时间限制值与当前sql执行时间进行比较,获取到大于阈值的sql信息作为慢sql实时数据,发送给数据记录过滤器。所述的方法中数据记录过滤器将慢sql实时数据写入kafka集群的topics中,每当topics有数据流到来,kafka将topics中的慢sql实时数据发送到告警系统通知告警和数据存储系统进行存储。所述的方法中数据库访问操作过滤器获取到大于阈值的sql信息作为慢sql实时数据,慢sql实时数据包括执行语句信息、执行时间信息、执行次数信息、错误次数信息以及并发数信息。所述的方法中Kafka中告警系统对获取到的慢sql实时数据进行整合,对于执行时间超时,发生错误的sql信息通过发送给运维人员。所述的方法中kafka将慢sql实时数据发送到hbase数据存储系统,hbase数据存储系统将数据写入HbaseAdmin创建的列表中,可根据列表查询展示存储的慢sql执行数据。一种分布式应用系统下的慢sql实时数据采集工具,包括数据采集单元、数据中转单元以及告警及数据存储单元,数据采集单元为分布式应用系统中部署的数据源插件,数据源插件获取数据库实例的连接状态,利用数据源插件的过滤器实时获取sql语句的执行信息并根据预设的sql执行时间阈值筛选大于阈值的sql信息作为慢sql实时数据进行采集,数据中转单元将采集的慢sql实时数据写入kafka集群,告警及数据存储单元从kafka集群中获得慢sql实时数据分别用以通知告警及进行存储。本专利技术的有益之处是:本专利技术提供一种分布式应用系统下的慢sql实时数据采集方法,针对分布式应用系统下的慢sql执行实时监控,对分布式应用系统环境下的数据库操作,通过增加的过滤器,扩展数据库连接插件,提供了一个sql执行情况数据收集的方法,同时可利用kafka消息队列实时推送到告警系统和数据存储系统,对sql执行慢异常进行实时监控告警,提高了系统异常监控的准确性和效率,也为系统性能优化和系统中数据库操作隐患问题排查提供了依据。附图说明图1分布式应用系统的示意图;图2本专利技术方法流程示意图。具体实施方式本专利技术提供一种分布式应用系统下的慢sql实时数据采集方法,在分布式应用系统中部署数据源插件,数据源插件获取数据库实例的连接状态,利用数据源插件的过滤器实时获取sql语句的执行信息并根据预设的sql执行时间阈值筛选大于阈值的sql信息作为慢sql实时数据进行采集,将采集的慢sql实时数据写入kafka集群用以通知告警并进行存储。同时提供与上述方法相对应的一种分布式应用系统下的慢sql实时数据采集工具,包括数据采集单元、数据中转单元以及告警及数据存储单元,数据采集单元为分布式应用系统中部署的数据源插件,数据源插件获取数据库实例的连接状态,利用数据源插件的过滤器实时获取sql语句的执行信息并根据预设的sql执行时间阈值筛选大于阈值的sql信息作为慢sql实时数据进行采集,数据中转单元将采集的慢sql实时数据写入kafka集群,告警及数据存储单元从kafka集群中获得慢sql实时数据分别用以通知告警及进行存储。下面结合附图和具体实施例对本专利技术作进一步说明,以使本领域的技术人员可以更好地理解本专利技术并能予以实施,但所举实施例不作为对本专利技术的限定。分布式应用系统往往承载着多种业务,系统的每一次前后台交互往往都涉及数据库操作,在系统不间断的运行过程中,每一秒都会产生sql数据,受多种因素影响,慢sql执行数据可能会随时出现。利用本专利技术方法或工具,在分布式应用系统中部署druid数据源插件,并生成druid数据源实例配置druid连接的数据库参数,注入数据库访问操作过滤器statFilter及数据记录过滤器SqlLogFilter,预设sql执行时间阈值,随后在注入的数据库访问操作过滤器中根据sql执行时间阈值配置sql语句执行时间限制:statFilter.setSlowSqlMillis,当执行每一个sql操作时,statFilter过滤器将读取时间限制值与当前sql执行时间进行比较,获取到大于阈值的sql信息,自定义数据记录过滤器SqlLogFilter,在SqlLogFilter中将statFilter获取的sql信息写入kafka集群的topics中,当分布式应用系统集群启动后,配置druid插件以定时任务方式工作,每当出现数据库操作时,statFilter过滤器开始进行判别,SqlLogFilter过滤器记录慢sql执行数据,完成分布式应用系统全量慢sql执行数据的实时抓取和集中记录汇本文档来自技高网...

【技术保护点】
1.一种分布式应用系统下的慢sql实时数据采集方法,其特征是在分布式应用系统中部署数据源插件,数据源插件获取数据库实例的连接状态,利用数据源插件的过滤器实时获取sql语句的执行信息并根据预设的sql执行时间阈值筛选大于阈值的sql信息作为慢sql实时数据进行采集,将采集的慢sql实时数据写入kafka集群用以通知告警并进行存储。

【技术特征摘要】
1.一种分布式应用系统下的慢sql实时数据采集方法,其特征是在分布式应用系统中部署数据源插件,数据源插件获取数据库实例的连接状态,利用数据源插件的过滤器实时获取sql语句的执行信息并根据预设的sql执行时间阈值筛选大于阈值的sql信息作为慢sql实时数据进行采集,将采集的慢sql实时数据写入kafka集群用以通知告警并进行存储。2.根据权利要求1所述的方法,其特征是在分布式应用系统中部署druid数据源插件,druid数据源插件包括数据库访问操作过滤器和数据记录过滤器,数据库访问操作过滤器根据预设的sql执行时间阈值与当前sql执行时间进行比较,获取到大于阈值的sql信息作为慢sql实时数据,发送给数据记录过滤器,数据记录过滤器将慢sql实时数据写入kafka集群。3.根据权利要求2所述的方法,其特征是druid数据源插件生成druid数据源实例配置druid连接的数据库参数,将数据库参数注入数据库访问操作过滤器及数据记录过滤器,在数据库访问操作过滤器中根据预设的sql执行时间阈值配置sql语句执行时间限制,执行每一个sql操作时,数据库访问操作过滤器将读取时间限制值与当前sql执行时间进行比较,获取到大于阈值的sql信息作为慢sql实时数据,发送给数据记录过滤器。4.根据权利要求2或3所述的方法,其特征是数据记录过滤器将慢sql实时数据写入kafka...

【专利技术属性】
技术研发人员:王勇毛立花
申请(专利权)人:浪潮软件集团有限公司
类型:发明
国别省市:山东,37

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

1