一种键值对数据存储的结构化查询系统的制作方法

文档序号:10594107阅读:471来源:国知局
一种键值对数据存储的结构化查询系统的制作方法
【专利摘要】本发明提供了一种键值对数据存储的结构化查询系统,它包括告警应用端功能模块,它包括告警集中展现组件、告警采集组件、知识丰富组件和告警底层采集组件,与JDBC驱动模块连接;JDBC驱动功能模块,作为告警应用端功能模块读取redis内存数据库的桥梁,与redis内存数据库连接;redis内存数据库,作为告警数据的承载体,前端通过JDBC驱动功能模块对内存数据库进行查询,实现实时告警信息的关联分析;解决了现有技术用内存数据库承载告警系统的大量数据,但是目前主流的内存数据库多采用自行定义的API接口与应用系统进行集成,不遵循SQL接口,导致系统的开发和维护成本较高,且不利于向外部系统集成等技术问题。
【专利说明】
一种键值对数据存储的结构化查询系统
技术领域
[0001]本发明属于数据库开发与告警处理领域,尤其涉及一种键值对数据存储的结构化查询系统。
【背景技术】
[0002]在传统的数据库中,由于磁盘的物理结构限制,其存取和检索效率以及并行计算能力在大数据量的环境中显得非常乏力,虽然有很多办法来解决这类问题,比如应用程序缓存,分布式等,但成本会很高。而随着这些年硬件的发展,现在服务器拥有的内存容量逐渐增大,此外由于NUMA架构的成熟,也消除了多CPU访问内存的瓶颈问题,因此内存数据库得以应用,用内存数据库承载告警系统的大量数据,更能发挥内存数据库的优势。但是目前主流的内存数据库多采用自行定义的API接口与应用系统进行集成,不遵循SQL接口,这将导致开发和运维人员投入大量人力和时间去重新学习NOSQL语法和API接口从而使系统的开发和维护成本较高,并且不利于向外部系统集成。

【发明内容】

[0003]本发明要解决的技术问题是:提供一种键值对数据存储的结构化查询系统,以解决现有技术用内存数据库承载告警系统的大量数据,但是目前主流的内存数据库多采用自行定义的API接口与应用系统进行集成,不遵循SQL接口,这将导致开发和运维人员投入大量人力和时间去重新学习NOSQL语法和API接口从而使系统的开发和维护成本较高,并且不利于向外部系统集成等技术问题。
[0004]本发明技术方案:
一种键值对数据存储的结构化查询系统,它包括:
告警应用端功能模块,它包括告警集中展现组件、告警采集组件、知识丰富组件和告警底层采集组件,与JDBC驱动模块连接;
JDBC驱动功能模块,作为告警应用端功能模块读取redis内存数据库的桥梁,与redis内存数据库连接;
redis内存数据库,作为告警数据的承载体,前端通过JDBC驱动功能模块对内存数据库进行查询,实现实时告警信息的关联分析。
[0005]它还包括内存管理器功能模块,通过图形化界面,管理内存数据。内存管理器功能模块通过j JDBC驱动功能模块连入内存数据库,在内存管理器功能模块的管理界面上通过SQL语句对数据库进行直接操作,告警应用端功能模块发出的数据也由内存管理器功能模块管理维护。
[0006]所述JDBC驱动功能模块包括JDBC驱动模块、数据库连接模块和SQL-JEDIS语法转换模块,JDBC驱动模块作为告警应用端功能模块所有组件的桥梁,通过JDBC驱动模块与redis内存数据库实现数据交互;数据库连接模块用于设置数据库的IP地址、用户名和密码配置信息,并保存封装在JDBC驱动功能模块中;SQL-JEDIS语法转换模块,将告警应用端功能模块发出的S Q L语句通过S Q L - J E D I S语法转换模块进行转换,该模块使用CCJSqlParserManager对输入的SQL语句进行解析。
[0007]所述使用CCJSqlParserManager对输入的SQL语句进行解析,其解析方法包括: 对于查询语句,先解析出查询的表名与条件,然后解析成Jedis的语法:通过redis内存数据库连接对象获取到redis内存数据库的连接,然后使用BinaryJedis.key s方法查询redis内存数据库;
对于更新语句,包括update和delete,同样先解析出表名和包含的条件字段,然后解析成Jedi s的语法:通过redis内存数据库连接对象获取到redis内存数据库的连接,再使用BinaryJedis.hset 操作 redis 内存数据库。
[0008]本发明有益效果:
本发明的整个应用端程序由告警集中展现组件、告警采集组件、知识丰富组件与告警底层采集工具组成,告警底层采集通过采集各检测端的实时状态随之产生大量数据,这些数据被汇总进入告警组件分类处理,并通过JDBC驱动功能模块连接进入数据库,保存在redi s内存数据库中,redi s内存数据库的数据直接加载到内存,驱动程序存取也都在内存里面操作,当持久化的时候才保存到磁盘,比传统数据库对磁盘文件的1操作效率要至少高一个数量级,进入redis内存数据库所配置的ip地址、用户名、密码均事先写入数据库连接模块中,若出现更换redis内存数据库情况,则只需重新将新的redis内存数据配置信息写入数据库连接模块即可,告警展现端通过SQL-JEDIS语法转换模块发出SQL语句包括插入、更新、删除等常见语句可将redis内存数据库的大量数据库按告警要求展现给用户,另外知识丰富组件可将用户新增的告警有关知识插入进数据库分类保存,解决了现有技术用内存数据库承载告警系统的大量数据,但是目前主流的内存数据库多采用自行定义的API接口与应用系统进行集成,不遵循SQL接口,这将导致开发和运维人员投入大量人力和时间去重新学习NOSQL语法和API接口从而使系统的开发和维护成本较高,并且不利于向外部系统集成等技术问题。
【附图说明】
[0009]图1为本发明模块结构示意图;
图2为本发明数据库连接模块架构示意图;
图3为本发明总体处理流程示意图;
图4为本发明内存管理器功能模块架构图;
图5为本发明JDBC驱动功能模块组成结构示意图。
【具体实施方式】
[0010]一种键值对数据存储的结构化查询系统,它包括:
告警应用端功能模块,它包括告警集中展现组件、告警采集组件、知识丰富组件和告警底层采集组件,与JDBC驱动模块连接;
告警应用端功能模块所有组件均使用java语言开发完成,所以要想连接进入redis内存库必须要由JDBC驱动作为桥梁,通过使用JEDIS客户端实现告警应用能正常的与Redis内存数据库库进行数据交互。
[0011]JDBC驱动功能模块,作为告警应用端功能模块读取redis内存数据库的桥梁,与redis内存数据库连接;
所述JDBC驱动功能模块包括JDBC驱动模块、数据库连接模块和SQL-JEDIS语法转换模块。
[0012]JDBC驱动模块作为告警应用端功能模块所有组件的桥梁,通过JDBC驱动模块与redis内存数据库实现数据交互,JDBC驱动模块采用JEDIS客户端实现。
[0013]数据库连接模块用于设置数据库的IP地址、用户名和密码配置信息,并保存封装在JDBC驱动功能模块中;
告警应用端要想连接redis内存数据库必须要设置数据库的IP地址、用户名、密码等配置信息,这个配置信息需人工写入数据库连接模块,然后将此模块封装进JDBC驱动功能模块中。告警应用端通过调用NOSQL的JDBC驱动模块作成功连接数据库,其对于数据库的一切操作都是在这个连接基础上进行,本发明定义一系列的类,实现JDBC标准接口,用于获取内存的连接,如下:
定义驱动类RedisDriver,实现 java.sql.Driver接口 ;
定义数据库连接类RedisConnect1n,实现 java.sql.Connect1n接口 ;
使用Jedis开放的开发接口,设置好IP,端口,用户密码后得到数据库连接。该连接还包括其他属性,比如是否关闭等;
RedisConnect 1n对象的工作过程:
1.将IP、用户名、密码写入配置文件,以准备登陆。
[0014]2.调用 Jedis 的 API 方可操作 Redis。
[0015]3.通过已定义好的JDBC驱动连接数据库。
[0016]SQL-JEDIS语法转换模块,将告警应用端功能模块发出的SQL语句通过SQL-JEDIS语法转换模块进行转换,该模块使用CCJSqlParserManager对输入的SQL语句进行解析。
[00? 7 ] 所述使用CCJSqlParserManager对输入的SQL语句进行解析,其解析方法包括:
对于查询语句,先解析出查询的表名与条件,然后解析成Jedis的语法:通过redis内存数据库连接对象获取到redis内存数据库的连接,然后使用BinaryJedis.keys(〃表名:key")方法查询redis内存数据库;
对于更新语句,包括update和delete,同样先解析出表名和包含的条件字段,然后解析成Jedi s的语法:通过redi s内存数据库连接对象获取到redis内存数据库的连接,再使用BinaryJedis.hset(表名,field, value)操作redis内存数据库。
[0018]rediS内存数据库,作为告警数据的承载体,前端通过JDBC驱动功能模块对内存数据库进行查询,实现实时告警信息的关联分析。
[0019]内存数据库Redis,它是一个开源的高性能key-value(键值对)数据库,它支持存储的value类型相对更多,包括String(字符串)、List(链表)、set(集合)、Zset(sorted set一有序集合)和Hash(哈希类型),在此基础上,Redis支持各种不同方式的排序,为了保证效率,数据都是缓存在内存中。在整个实施过程中我们将内存数据库作为大批量告警数据的承载体,所有告警应用端组件均与redi s数据库相连,前端通过NOSQL的JDBC驱动对内存数据库进行查询,依托内存数据库的高性能查询可让接入此告警系统的所有监控平台,实现实时告警信息的关联分析。
[0020]它还包括内存管理器功能模块,通过图形化界面,管理内存数据。内存管理器功能模块通过j JDBC驱动功能模块连入内存数据库,在内存管理器功能模块的管理界面上通过SQL语句对数据库进行直接操作,告警应用端功能模块发出的数据也由内存管理器功能模块管理维护。
[0021]内存管理器功能模块是整个告警系统的一个附加模块,由于告警数据库为内存数据库,为方便其管理维护,特加入一个内存管理器功能模块,通过其图形化界面,能更直观的管理内存数据。模块可通过JDBC驱动模块连入内存数据库后,可在JDBC驱动模块的管理界面上通过SQL语句对数据库进行直接操作,告警应用端发出的大批量数据也可由此模块管理维护。
[0022]本发明实现了支持SQL查询的NOSQL数据库驱动,通过这种JDBC驱动让告警应用端能连入内存数据库,并依托内存数据库的高性能运算与存储,使内存库承载的大量告警数据通过用户发出的SQL语句进行二次加工,并可以及时的提供给各监控系统进行分析处理。
【主权项】
1.一种键值对数据存储的结构化查询系统,它包括: 告警应用端功能模块,它包括告警集中展现组件、告警采集组件、知识丰富组件和告警底层采集组件,与JDBC驱动模块连接; JDBC驱动功能模块,作为告警应用端功能模块读取redis内存数据库的桥梁,与redis内存数据库连接; redis内存数据库,作为告警数据的承载体,前端通过JDBC驱动功能模块对内存数据库进行查询,实现实时告警信息的关联分析。2.根据权利要求1所述的一种键值对数据存储的结构化查询系统,其特征在于:它还包括内存管理器功能模块,通过图形化界面,管理内存数据;内存管理器功能模块通过j JDBC驱动功能模块连入内存数据库,在内存管理器功能模块的管理界面上通过SQL语句对数据库进行直接操作,告警应用端功能模块发出的数据也由内存管理器功能模块管理维护。3.根据权利要求1所述的一种键值对数据存储的结构化查询系统,其特征在于:所述JDBC驱动功能模块包括JDBC驱动模块、数据库连接模块和SQL-JEDIS语法转换模块,JDBC驱动模块作为告警应用端功能模块所有组件的桥梁,通过JDBC驱动模块与redis内存数据库实现数据交互;数据库连接模块用于设置数据库的IP地址、用户名和密码配置信息,并保存封装在JDBC驱动功能模块中;SQL-JEDIS语法转换模块,将告警应用端功能模块发出的SQL语句通过SQL-JEDIS语法转换模块进行转换,该模块使用CCJSqlParserManager对输入的SQL语句进行解析。4.根据权利要求3所述的一种键值对数据存储的结构化查询系统,其特征在于:所述使用CCJSqlParserManager对输入的SQL语句进行解析,其解析方法包括: 对于查询语句,先解析出查询的表名与条件,然后解析成Jedis的语法:通过redis内存数据库连接对象获取到redis内存数据库的连接,然后使用BinaryJedis.key s方法查询redis内存数据库; 对于更新语句,包括update和delete,同样先解析出表名和包含的条件字段,然后解析成Jedi s的语法:通过redis内存数据库连接对象获取到redis内存数据库的连接,再使用BinaryJedis.hset 操作 redis 内存数据库。
【文档编号】G06F17/30GK105956006SQ201610249392
【公开日】2016年9月21日
【申请日】2016年4月21日
【发明人】龙玉江, 罗念华, 汪浩, 朱颖琪, 钟掖, 王杰峰, 朱彬, 徐敬峰
【申请人】贵州电网有限责任公司信息中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1