数据库的数据分析方法、装置以及系统的制作方法

文档序号:8361577阅读:336来源:国知局
数据库的数据分析方法、装置以及系统的制作方法
【技术领域】
[0001]本发明涉及数据处理技术领域,特别是涉及一种数据库的数据分析方法、装置以及系统。
【背景技术】
[0002]数据库(Database)是按照数据结构来组织、存储和管理数据的数据处理系统,随着互联网的发展,数据库的应用更加广泛,其性能要求也越来越高。目前数据库系统必须具备较高的事务处理速度和应用可靠性。
[0003]在实际使用中,由于应用程序错误或者使用不恰当,会造成数据库占用过多的内存资源,而且由于存储有当前可用数据,不能清理所有数据。此时释放内存资源需要对数据库中存储的数据进行分析,确定出哪些数据出现异常,占用较多的内存,以根据占用内存的情况有针对性的将占用资源大又不常用的数据进行清理,以释放内存资源。
[0004]现有技术中对数据库中数据占用资源的分析,一般采用磁盘数据文件扫描的方式进行,数据分析效率低。特别对于Redis这类基于内存的数据库,一般采用如Redis-rdb-tools等开源工具将所有的Redis数据镜像刷新到磁盘,然后对磁盘上保存的镜像数据进行分析,统计出每条key占用的资源,以生成数据报告。生成磁盘镜像文件需要花费一定的资源和时间,而且基于磁盘文件的数据分析效率较低,特别对于较大的文件,分析速度慢,无法满足数量较大的key的Redis数据库分析的要求。
[0005]在另一个方面,现有技术中分析数据库的占用资源,必须在布置数据库的同一台机器上布置分析工具或者将数据库的镜像文件复制到分析工具所在服务器上才能进行,无法实现远程连接分析。

【发明内容】

[0006]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据库的数据分析装置和系统以及相应的数据库的数据分析方法。
[0007]本发明进一步的目的至少包括:提高数据库的数据分析效率;以及实现远程对数据库的分析。
[0008]依据本发明的一个方面,提供了一种数据库的数据分析方法。该数据库的数据分析方法包括:建立数组列表;扫描得到目标数据库中所有键的键名并存入数组列表;根据数组列表中的键名向目标数据库发送数据分析指令,以得出目标数据库中每个键对应的数据量;以及按照数据量对目标数据库中的键进行排序
[0009]可选地,在按照数据量对目标数据库中的键进行排序的步骤之后,以上方法还包括:根据排序结果输出数据分析报告。
[0010]可选地,建立数组列表的步骤进一步包括:按照目标数据库中数据的数据类型分别建立多个数组列表。
[0011]可选地,扫描得到目标数据库中所有键的键名并存入数组列表的步骤进一步包括:使用扫描指令分批迭代目标数据库,以得到所有键的键名以及与键名对应的键值的数据类型,以及按照数据类型将键名存入对应的数组列表。
[0012]可选地,数组列表包括以下任意一项或多项:字符串类型的键名列表、链表类型的键名列表、集合类型的键名列表、有序集合类型的键名列表、散列值类型的键名列表。
[0013]可选地,根据数组列表中的键名向目标数据库发送数据分析指令的步骤进一步包括:启动多个数据分析线程,其中每个数据分析线程用于使用管道模式将一个或多个数组列表中的键名发送至目标数据库以供分析,以得到每个键对应的数据量。
[0014]可选地,数据分析线程的数量与数组列表的数量一致,每个数据分析线程用于对一个类型的数组列表进行分析。
[0015]可选地,按照数据量对目标数据库中的键进行排序的步骤进一步包括:在目标数据库中新建至少一个有序集合数据结构;按照数据类型将数据量以及对应的键名分类存储至有序集合数据结构中;以及在有序集合数据结构中按照数据量进行排序。
[0016]可选地,在有序集合数据结构中按照数据量进行排序的步骤进一步包括:在有序集合数据结构中按照每类数据结构中各键值的数据量大小进行排序;或者在有序集合数据结构中估算每类数据结构中各键值的数据量占用的内存,并按照占用的内存大小对目标数据库中的所有键进行排序。
[0017]可选地,输出排序结果的步骤进一步包括:按照排序结果生成数据分析报告,将数据分析报告中将数据量超出预设阈值的键进行突出显示;以及输出数据分析报告。
[0018]可选地,数据量包括:字符串类型的键的键值长度;链表类型的键中包含的成员个数;集合类型的键中包含的成员个数;有序集合类型的键中包含的成员个数;以及散列值类型的键中包含的成员个数。
[0019]可选地,以上方法进一步包括:监控待分析的数据库的内存使用情况,并在内存使用超过设定的内存使用量后,触发建立数组列表的步骤,以启动对目标数据库的数据分析。
[0020]可选地,目标数据库为待分析的数据库的多个从库中的一个。
[0021]可选地,目标数据库为Redis数据库。
[0022]根据本发明的另一个方面还提供了一种数据库的数据分析装置。该数据库的数据分析装置包括:数组建立模块,配置为在建立数组列表;键名扫描模块,配置为扫描得到目标数据库中所有键的键名并存入数组列表;数据量分析模块,配置为根据数组列表中的键名向目标数据库发送数据分析指令,以得出目标数据库中每个键对应的数据量以及排序模块,配置为按照数据量对目标数据库中的键进行排序。
[0023]可选地,以上数据库的数据分析装置还包括:输出模块,配置为根据排序结果输出数据分析报告。
[0024]可选地,数组建立模块进一步配置为:按照目标数据库中数据的数据类型分别建立多个数组列表。
[0025]可选地,键名扫描模块进一步配置为:使用扫描指令分批迭代目标数据库,以得到所有键的键名以及与键名对应的键值的数据类型,以及按照数据类型将键名存入对应的数组列表。
[0026]可选地,数组列表包括以下任意一项或多项:字符串类型的键名列表、链表类型的键名列表、集合类型的键名列表、有序集合类型的键名列表、散列值类型的键名列表。
[0027]可选地,数据量分析模块进一步配置为:启动多个数据分析线程,其中每个数据分析线程用于使用管道模式将一个或多个数组列表中的键名发送至目标数据库以供分析,以得到每个键对应的数据量。
[0028]可选地,数据分析线程的数量与数组列表的数量一致,每个数据分析线程用于对一个类型的数组列表进行分析。
[0029]可选地,排序模块进一步配置为:在目标数据库中新建至少一个有序集合数据结构;按照数据类型将数据量以及对应的键名分类存储至有序集合数据结构中;以及在有序集合数据结构中按照数据量进行排序。
[0030]可选地,排序模块进一步配置为:在有序集合数据结构中按照每类数据结构中各键值的数据量大小进行排序;或者在有序集合数据结构中估算每类数据结构中各键值的数据量占用的内存,并按照占用的内存大小对目标数据库中的所有键进行排序。
[0031]可选地,输出模块进一步配置为:按照排序结果生成数据分析报告,将数据分析报告中数据量超出预设阈值的键进行突出显示;以及输出数据分析报告。
[0032]可选地,数据量包括:字符串类型的键的键值长度;链表类型的键中包含的成员个数;集合类型的键中包含的成员个数;有序集合类型的键中包含的成员个数;以及散列值类型的键中包含的成员个数。
[0033]可选地,以上数据的数据分析装置还包括:内存监控模块,配置为监控待分析的数据库的内存使用情况并在内存使用超过设定的内存使用量后,数组建立模块,以启动对目标数据库的数据分析。
[0034]可选地,目标数据库为待分析的数据库的多个从库中的一个。
[0035]可选地,目标数据库为Redis数据库。
[0036]根据本发明的另一个方面,还提供了一种数据库的数据分析系统。该数据库的数据分析系统包括:数据库服务器,布置有需要分析的数据库;以及数据分析客户端,用于对数据库进行分析,数据分析客户端配置有以上介绍的任一种数据库的数据分析装置。
[0037]本发明的数据库的数据分析方法和装置,预先建立数组列表以存储所有键名,通过所有键名获取对应的键对应的数据量,在数据库内完成对应的数据量的排序,避免了对大数量的磁盘文件进行处理,其处理速度快,效率明显提高,并且分析结果为按照数据量大小的排序结果,直接反映了数据库的内存使用情况,便于内存清理。
[0038]进一步地,本发明的数据库的数据分析方法和装置,按照数据库的数据类型启动多个数据分析线程,采用管道模式实现数据库不同数据类型的数据量的快速分析,减少了客户端与数据库之间的交互次数,进一步提高了分析效率,并且使用字符串类型的键的键值长度;链表类型的键中包含的成员个数;集合类型的键中
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1