发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据库的异常键识别方法、装置和相关的数据系统。
本发明一个进一步的目的是要使得从数据库中识别出数据量异常的键。
本发明另一个进一步的目的是要提高数据库的分析效率。
依据本发明的一个方面,提供了一种数据库的异常键识别方法。该异常键的识别方法包括:获取待分析数据库中键值的数据类型,并确定对数据类型进行数据比较所需的特征数据信息;对待分析数据库进行扫描,以确定待分析数据库中每个键的键值的数据类型、以及与键值的数据类型对应的特征数据;根据特征数据信息、每个键的数据类型以及对应的特征数据,利用预设规则识别异常键。
可选地,特征数据的种类和特征数据的种类对应的特征数据判断阈值。
可选地,根据特征数据信息、每个键的数据类型以及对应的特征数据,利用预设规则识别异常键的步骤进一步包括:比较每个键的特征数据和对应的特征数据判断阈值;以及将特征数据大于对应的特征数据判断阈值的键识别为异常键。
可选地,对待分析数据库进行扫描的步骤包括:确定待分析数据库的数量;以及启动与待分析数据库的数量一致的分析线程,每个分析线程用于对一个待分析数据库进行扫描。
可选地,在识别出异常键之后的步骤还包括:获取并记录异常键的键信息;以及根据记录的键信息生成数据分析报表。
可选地,根据记录的键信息生成数据分析报表的步骤进一步包括:对异常键按照键值的数据类型进行分类;以及在每一类下按照特征数据进行排序,并按照排序结果将对应的键写入数据分析报表。
可选地,键信息包括以下任意一项或多项:键名、数据类型、以及特征数据大小。
可选地,对待分析数据库进行扫描的步骤还包括:扫描待分析数据库中每个键的最后访问时间,并且将最后访问时间超过设定阈值时间的键识别为异常键。
可选地,在扫描待分析数据库中每个键的最后访问时间的步骤之前还包括:获取访问时间扫描的开关选项,并仅在开关选项设置为开启时,执行所述扫描所述待分析数据库中每个键的最后访问时间的步骤。
可选地,待分析数据库支持的键值的数据类型包括任意一项或多项:字符串类型;链表类型;集合类型;有序集合类型;以及散列值类型。
可选地,字符串类型对应的特征数据为键值长度;链表类型对应的特征数据为键值中的成员数量;集合类型对应的特征数据为键值中的成员数量;有序集合类型对应的特征数据为键值中的成员数量;以及散列值类型对应的特征数据为键值中的成员数量。
可选地,特征数据判断阈值根据待分析数据库的业务类型确定,或者由待分析数据库的管理员设定。
可选地,待分析数据库为Redis数据库。
根据本发明的另一个方面,还提供了一种数据库的异常键识别装置。该异常键识别装置包括:参数获取模块,配置成:获取待分析数据库中键值的数据类型,并确定对数据类型进行数据比较所需的特征数据信息;数据库扫描模块,配置成:对待分析数据库进行扫描,以确定待分析数据库中每个键的键名、键值的数据类型、以及与键值的数据类型对应的特征数据;数据比较模块,配置成:比较每个键的特征数据和对应的特征数据判断阈值;以及数据识别模块,配置成:根据特征数据信息、每个键的数据类型以及对应的特征数据,利用预设规则识别异常键。
可选地,特征数据信息包括:特征数据的种类和特征数据判断阈值。
可选地,数据识别模块包括:比较子模块,配置成比较每个键的特征数据和对应的特征数据判断阈值;以及判定子模块,配置成将特征数据大于对应的特征数据判断阈值的键识别为异常键。
可选地,数据库扫描模块还配置成:确定待分析数据库的数量;以及启动与待分析数据库的数量一致的分析线程,每个分析线程用于对一个待分析数据库进行扫描。
可选地,以上数据库的异常键识别装置还包括:信息记录模块,配置成:获取并记录异常键的键信息;以及报表生成模块,配置成:根据记录的键信息生成数据分析报表。
可选地,报表生成模块还配置成:对异常键按照键值的数据类型进行分类;以及在每一类下按照特征数据进行排序,并按照排序结果将对应的键写入生成数据分析报表。
可选地,键的信息包括以下任意一项或多项:键名、数据类型、以及特征数据大小。
可选地,数据库扫描模块还配置成:扫描待分析数据库中每个键的最后访问时间,并且将最后访问时间超过设定阈值时间的键识别为异常键。
可选地,以上装置还包括:选项获取模块,配置成获取访问时间扫描的开关选项,并仅在所述开关选项设置为开启时,所述数据库扫描模块执行扫描待分析数据库中每个键的最后访问时间的步骤。
可选地,待分析数据库支持的键值的数据类型包括任意一项或多项:包括字符串类型,链表类型,集合类型,有序集合类型,以及散列值类型;并且字符串类型对应的特征数据为键值长度,链表类型对应的特征数据为键值中的成员数量,集合类型对应的特征数据为键值中的成员数量,有序集合类型对应的特征数据为键值中的成员数量,以及散列值类型对应的特征数据为键值中的成员数量。
可选地,以上数据库的异常键识别装置还包括:阈值设定模块,配置成根据待分析数据库的业务类型确定特征数据判断阈值,和/或接收待分析数据库的管理员设定的特征数据判断阈值。
依据本发明的另一方面,提供了一种数据系统,包括至少一数据库和上述的数据库的异常键识别装置,其中所述数据库的异常键识别装置用于识别所述至少一数据库的异常键。
可选地,以上至少一数据库为Redis数据库。
本发明的数据库的异常键识别方法、装置和数据系统,按照键值的数据类型预先确定用于数据比较的特征数据类型以及相应的特征数据判断阈值,并按照键值的数据类型使用对应的特征数据进行判断,无需确定每个键值的数据以及具体占用的内存,处理速度快,效率明显提高,直接反映了数据库的内存使用情况,便于数据开发人员了解数据存储情况。
进一步地,本发明的数据库的异常键识别方法和装置,可以根据目标数据库的数量开启多个数据分析线程,并行进行处理,进一步提高了数据分析效率。
更进一步地,本发明的数据库的异常键识别方法和装置,尤其适合应用于Redis数据库的分析。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
具体实施方式
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
图1是根据本发明一个实施例的数据库的异常键识别装置100的示意方框图。该数据库的异常键识别装置100一般性地可包括:参数获取模块110、数据库扫描模块120、数据识别模块130。
本实施例的数据库的异常键识别装置100尤其适合于对Redis数据库进行分析。Redis数据库是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、键-值(Key-Value)数据库。Redis支持存储的value数据类型包括字符串(string)、链表(list)、集合(set)、有序集合(sorted set)、散列值(hash)。Redis使用内存存储,读写频率快、性能极高、数据类型丰富,应用范围广泛。
由于直接获取数据库各键值的数据或数据占用的内存的大小,需要花费大量的硬件资源和时间。例如如果对于成员数量巨大的链表键值,如果直接获取数据,有可能直接导致数据库崩溃。因此提高数据分析效率,在本实施例的数据库的异常键识别装置100中,可以利用反映键值占用内存量并且便于获取分析的特征数据作为数据比较的基础。
在本实施例的数据库的异常键识别装置100的各部件中,参数获取模块110配置成获取待分析数据库中键值的数据类型,特征数据信息可以包括:特征数据的种类和特征数据判断阈值。以上待分析数据库可以为Redis数据库,也可以为其他与Redis具有相似架构的数据库。例如对于Redis数据库,可以支持的键值的数据类型包括符串类型,链表类型,集合类型,有序集合类型,以及散列值类型中至少一项,相应地,字符串类型对应的特征数据为键值长度,链表类型对应的特征数据为键值中的成员数量,集合类型对应的特征数据为键值中的成员数量,有序集合类型对应的特征数据为键值中的成员数量,以及散列值类型对应的特征数据为键值中的成员数量。以上的特征数据获取效率快,而且直接反映了内存占用情况。
数据库扫描模块120可以配置成:对待分析数据库进行扫描,以确定待分析数据库中每个键的键名、键值的数据类型、以及与键值的数据类型对应的特征数据。通过数据库扫描模块120可以得到待分析数据库的所有键的所需信息。以上扫描过程可以使用扫描指令(scan)分批迭代完成。数据库一般以主从库的架构进行布置,即包括一个主库与若干个从库,因此为了提高数据库的分析效率,数据库扫描模块120还可以首先确定待分析数据库的数量;以及启动与待分析数据库的数量一致的分析线程,每个分析线程用于对一个待分析数据库进行扫描。例如对于布置有十个数据库的数据服务器,可以同时开启十个线程并行进行扫描,提高了十倍的扫描效率。
图2是根据本发明一个实施例的数据库的异常键识别装置100的示意方框图。本实施例的数据库的异常键识别装置100在上一实施例的基础上,数据识别模块130中可以设置有比较子模块132以及判定子模块134,并且可以灵活地增加设置信息记录模块150、报表生成模块160、阈值设定模块170、选项获取模块180的一个或多个。
比较子模块132可以配置成:比较每个键的特征数据和对应的特征数据判断阈值。如果特征数据大于判断阈值,判定子模块134就可以将特征数据大于对应的特征数据判断阈值的键识别为异常键。否则,判定子模块134则可以认定该键未出现异常。由于数据库的读写特性,一般写入数据和读取数据基本是相当的,因此如果出现文本的长度或者链表类型和散列值类型的键值中的成员数量明显过大,就可以确定对于该键,数据库的读写策略有可能出现错误,使得该键的数据占用了大量硬件资源。
其中,信息记录模块150配置成:获取并记录异常键的键信息。这些异常键的键信息可以供数据库维护人员的快速地确定这些键中存储的数据是否为无效数据。一般情况下,键的信息包括以下任意一项或多项:键名、数据类型、特征数据大小、以及最后访问时间。
报表生成模块160可以配置成:根据记录的键信息生成数据分析报表。数据分析报表作为最终的分析结果,可以通过邮件、客户端消息等方式提供给数据库的管理维护人员,以供管理维护人员进一步分析。为了便于管理维护人员分析,报表生成模块160还可以对异常键按照键值的数据类型进行分类;以及在每一类下按照特征数据进行排序,并按照排序结果将对应的键写入生成数据分析报表。
选项获取模块180配置成获取访问时间扫描的开关选项,并仅在所述开关选项设置为开启时,数据库扫描模块可以执行所述扫描所述待分析数据库中每个键的最后访问时间的步骤。也就是扫描所述待分析数据库中每个键的最后访问时间;并且将所述最后访问时间超过设定阈值时间的键识别为异常键。最后访问时间的分析功能可以不判断键的类型,对待分析数据库的所有键进行分析。在一些可选实施例中可以仅对一部分键类型进行最后访问时间的比较。
利用最后访问时间进行异常键识别时,如果某键的最后访问时间超过设定阈值时间(比如设置时间为600秒,而该键最后访问时间获取为700秒),那么将该键记录为异常键。
对于不同业务类型的数据库,其所存储的数据量以及接受的访问请求的数量是不同的,为了避免因为数据库业务类型的差异对识别的影响,阈值设定模块170可以配置成根据待分析数据库的业务类型确定特征数据判断阈值,和/或接收待分析数据库的管理员设定的特征数据判断阈值。例如本实施例的数据库的异常键识别装置100在进行识别之前,提供阈值的输入窗口,并利用该输入窗口接收待分析数据库的管理员设定的特征数据判断阈值,可选地阈值设定模块170还可以根据待分析数据的业务类型自动确定特征数据判断阈值。例如将文本类型的键值数据长度设置为50MB,或者将散列值类型的键值的成员数量为2000个,本实施例的数据库的异常键识别装置100可以自动提取出文本类型数据长度大于50MB以及散列值类型的成员数量大于2000个以上的键名,并可以进一步输出这些键的最后访问时间,从而便于待分析数据库的管理员进行分析,并将确定为无效的数据进行清理,节省了数据库占用的宝贵内存资源。阈值设定模块170还可以用于对以上访问时间扫描的开关选项,以及设定阈值时间进行设置。
以下结合本发明实施例的数据库的异常键识别方法,该实施例的数据库的异常键识别方法可以由以上介绍的任一实施例的数据库的异常键识别装置100执行,实现数据库的异常键的识别。图3是根据本发明一个实施例的数据库的异常键识别方法的示意图,该数据库的异常键识别方法包括:
步骤S302,获取待分析数据库中键值的数据类型,并确定对数据类型进行数据比较所需的特征数据信息;
步骤S304,对待分析数据库进行扫描,以确定待分析数据库中每个键的键值的数据类型、以及与键值的数据类型对应的特征数据;
步骤S306,根据特征数据信息、每个键的数据类型以及对应的特征数据,利用预设规则识别异常键。
步骤S302中确定的特征数据信息可以包括:特征数据的种类和特征数据判断阈值,特征数据需要满足能够满足该类数据类型的键值的数据大小或者占用内存的大小,并且可以利用较少的资源即可获取。例如对于Redis数据库,其支持的键值的数据类型可包括字符串类型,链表类型,集合类型,有序集合类型,以及散列值类型中至少一项,相应地,以上键值的数据类型可以为以上类型中的一种。字符串类型对应的特征数据为键值长度,链表类型对应的特征数据为键值中的成员数量,集合类型对应的特征数据为键值中的成员数量,有序集合类型对应的特征数据为键值中的成员数量,以及散列值类型对应的特征数据为键值中的成员数量。以上的特征数据获取效率快,而且直接反映了内存占用情况。
为了提高数据库的分析效率,步骤S304的一种可选流程为确定待分析数据库的数量;以及启动与待分析数据库的数量一致的分析线程,每个分析线程用于对一个待分析数据库进行扫描。例如对于布置有十个数据库的数据服务器,可以同时开启十个线程并行进行扫描,提高了十倍的扫描效率。
步骤S306可以配置成根据特征数据信息、每个键的数据类型以及对应的特征数据,利用预设规则识别异常键。其中预设规则可以根据数据类型的特点预先进行配置,以满足将异常键从正常数据中筛选出的要求。在特征数据信息包括特征数据的种类和特征数据判断阈值的情况下,步骤S306的一种可选识别方式为:比较每个键的特征数据和对应的特征数据判断阈值;以及将特征数据大于对应的特征数据判断阈值的键识别为异常键。
为了便于管理维护人员分析,在步骤S306识别出异常键后还可以:获取并记录异常键的键信息;根据记录的键信息生成数据分析报表。可选地,键信息包括以下任意一项或多项:键名、数据类型、特征数据大小。
步骤S304,对待分析数据库进行扫描对待分析数据库进行扫描的步骤还包括:扫描待分析数据库中每个键的最后访问时间;并且将最后访问时间超过设定阈值时间的键识别为异常键。另外在扫描待分析数据库中每个键的最后访问时间的步骤之前还可以包括:获取访问时间扫描的开关选项,并仅在开关选项设置为开启时,执行所述扫描所述待分析数据库中每个键的最后访问时间的步骤。
利用最后访问时间进行异常键识别时,如果某键的最后访问时间超过设定阈值时间(比如设置时间为600秒,而该键最后访问时间获取为700秒),那么将该键记录为异常键。
其中生成数据分析报表的一种方式为:对异常键按照键值的数据类型进行分类;以及在每一类下按照特征数据进行排序,并按照排序结果将对应的键写入数据分析报表。另外本实施例的数据分析报表还可以利用其他的方式进行排序,例如按照最后访问时间排序、按照键名进行排序,具体的报表形式可以根据待分析数据库分析人员的需求以及习惯进行设计。
为了避免因为数据库业务类型的差异对异常键识别的影响,特征数据判断阈值根据待分析数据库的业务类型确定,或者由待分析数据库的管理员设定。
以下是执行本实施例的数据库的异常键识别方法对一个Redis数据库进行分析的可选流程,在被分析的Redis数据库中保存有文本类型的键值、链表类型的键值以及散列值类型的键值。
图4是根据本发明一个实施例的数据库的异常键识别方法的流程图,如图所示,该流程可以包括:
步骤S401,确定待分析数据库中存储的键值的数据类型的种类,并获取输入的特征数据阈值,图中所示的实例为键值的数据类型可能为文本类型、链表类型、散列值数据类型,相应输入的文本类型特征数据阈值为50MB,链表及散列值数据类型的特征数据为5000个,这些数值由数据库维护人员或分析人员手动设置,也可以直接使用默认的特征数据阈值;
步骤S402,扫描待分析的数据库,扫描过程可以开启多个扫描线程并行扫描,提高效率;
步骤S403,判断当前扫描的键的键值数据类型是否为文本,若是执行步骤S406,若否执行步骤S404;
步骤S404,判断当前扫描的键的键值数据类型是否为链表或散列值,若是执行步骤S405,若否执行步骤S408;
步骤S405,判断键值的成员数量大于5000,若是执行步骤S407,若否执行步骤S408;
步骤S406,判断键值的键值的文本长度是否大于50MB,若是执行步骤S407,若否执行步骤S408;
步骤S407,该键识别为异常键,获取并记录该键的键名、数据类型、特征数据大小、以及最后访问时间;
步骤S408,判断待分析数据库的所有键值是否已扫描完毕,若是执行步骤S410,若否执行步骤S409;
步骤S409,对下一键值扫描并返回步骤S403的判断步骤;
步骤S410,结束扫描,根据识别出的异常键生成数据分析报表。数值分析报表中可以包括异常键的键名、数据类型、特征数据大小、以及最后访问时间,并可按照报表分析人员的要求进行排序。
以上流程中示出了仅包括键值、链表类型的键值以及散列值类型的键值的Redis数据库的分析过程,实际上,本实施例的数据库异常键的识别方法,可以根据各种不同种类的数据类型预先设置特征数据,并可根据需要设置特征数据的判断阈值。而且在具体扫描过程中,数据类型的种类数量以及判断次序均可根据待分析数据库所存储数据的情况进行预先配置。
图5是根据本发明另一实施例的数据库的异常键识别方法的流程图,如图所示,该流程可以包括:
步骤S501,获取输入的访问时间阈值,图中所示的实例为600s,该数值由数据库维护人员或分析人员手动设置,也可以直接使用默认的阈值;
步骤S502,扫描待分析的数据库,扫描过程可以开启多个扫描线程并行扫描,提高效率;
步骤S503,判断当前扫描的键的最后访问时间是否超过600s,若是执行步骤S504,若否执行步骤S505;
步骤S504,该键识别为异常键,获取并记录该键的键名、数据类型、特征数据大小、以及最后访问时间;
步骤S505,判断待分析数据库的所有键值是否已扫描完毕,若是执行步骤S507,若否执行步骤S406;
步骤S506,对下一键值扫描并返回步骤S503的判断步骤;
步骤S507,结束扫描,根据识别出的异常键生成数据分析报表。
本实施例的数据库的异常键识别方法和装置,按照键值的数据类型预先确定用于数据比较的特征数据类型以及相应的特征数据判断阈值,并按照键值的数据类型使用对应的特征数据进行判断,无需确定每个键值的数据以及具体占用的内存,处理速度快,效率明显提高,直接反映了数据库的内存使用情况,便于数据开发人员了解数据存储情况。而且,本实施例的数据库的异常键识别方法和装置,可以根据目标数据库的数量开启多个数据分析线程,并行进行处理,进一步提高了数据分析效率。由于以上特性,本实施例的数据库的异常键识别方法和装置尤其适合应用于Redis数据库的分析。从而提供了一个支持Redis多版本的通用方案,并能够按照用户需要自定义分析规则,如:键的体积,键的成员数量,键的最后访问时间,根据用户需要对键名进行规则匹配,根据用户定制化分析捕获到的键则识别为异常键。
利用本实施例的方案,识别出的异常键可以能够在扫描完毕后按用户需求生成报表,能够极大的提高Redis内存占用分析效率,并能够精准定为存在问题的键,能够在Redis发生内存问题前帮助用户定位、解决问题。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的数据库的异常键识别装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
本发明实施例还提供了A1.一种数据库的异常键识别方法,包括:
获取待分析数据库中键值的数据类型,并确定对所述数据类型进行数据比较所需的特征数据信息;
对所述待分析数据库进行扫描,以确定所述待分析数据库中每个键的键值的数据类型、以及与所述键值的数据类型对应的特征数据;以及
根据所述特征数据信息、所述每个键的数据类型以及对应的特征数据,利用预设规则识别异常键。
A2.根据A1所述的方法,其中所述特征数据信息包括:
所述特征数据的种类和所述特征数据的种类对应的特征数据判断阈值。
A3.根据A2所述的方法,其中,所述根据所述的特征数据信息、所述每个键的数据类型以及对应的特征数据,利用预设规则识别异常键的步骤进一步包括:
比较所述每个键的特征数据和对应的特征数据判断阈值;以及
将特征数据大于对应的特征数据判断阈值的键识别为异常键。
A4.根据A1至A3中任一项所述的方法,其中,所述对所述待分析数据库进行扫描的步骤进一步包括:
确定所述待分析数据库的数量;以及
启动与所述待分析数据库的数量一致的分析线程,每个分析线程用于对一个所述待分析数据库进行扫描。
A5.根据A1至A3中任一项所述的方法,其中,在所述识别出异常键的步骤之后还包括:
获取并记录所述异常键的键信息;以及
根据记录的键信息生成数据分析报表。
A6.根据A5所述的方法,其中,所述根据记录的键信息生成数据分析报表的步骤进一步包括:
对所述异常键按照键值的数据类型进行分类;以及
在每一类下按照特征数据进行排序,并按照排序结果将对应的键写入所述数据分析报表。
A7.根据A5或A6所述的方法,其中所述键信息包括以下任意一项或多项:
键名、数据类型、以及特征数据大小。
A8.根据A1至A7中任一项所述的方法,其中所述对所述待分析数据库进行扫描的步骤还包括:
扫描所述待分析数据库中每个键的最后访问时间,并且将所述最后访问时间超过设定阈值时间的键识别为异常键。
A9.根据A8所述的方法,其中,在所述扫描所述待分析数据库中每个键的最后访问时间的步骤之前还包括:
获取访问时间扫描的开关选项,并仅在所述开关选项设置为开启时,执行所述扫描所述待分析数据库中每个键的最后访问时间的步骤。
A10.根据A1至A9中任一项所述的方法,其中,所述待分析数据库支持的键值的数据类型包括以下任意一项或多项:
字符串类型;
链表类型;
集合类型;
有序集合类型;以及
散列值类型。
A11.根据A10所述的方法,其中,
所述字符串类型对应的特征数据为键值长度;
所述链表类型对应的特征数据为键值中的成员数量;
所述集合类型对应的特征数据为键值中的成员数量;
所述有序集合类型对应的特征数据为键值中的成员数量;以及
所述散列值类型对应的特征数据为键值中的成员数量。
A12.根据A1至A11中任一项所述的方法,其中
所述特征数据判断阈值根据所述待分析数据库的业务类型确定,或者由所述待分析数据库的管理员设定。
A13.根据A1至A12中任一项所述的方法,其中所述待分析数据库为Redis数据库。
本实施例还提供了B14.一种数据库的异常键识别装置,包括:
参数获取模块,配置成:获取待分析数据库中键值的数据类型,并确定对所述数据类型进行数据比较所需的特征数据信息;
数据库扫描模块,配置成:对所述待分析数据库进行扫描,以确定所述待分析数据库中每个键的键名、键值的数据类型、以及与所述键值的数据类型对应的特征数据;以及
数据识别模块,配置成:根据所述特征数据信息、所述每个键的数据类型以及对应的特征数据,利用预设规则识别异常键。
B15.根据B14所述的装置,其中所述特征数据信息包括:所述特征数据的种类和所述特征数据的种类对应的特征数据判断阈值。
B16.根据B15所述的装置,其中所述数据识别模块包括:
比较子模块,配置成比较所述每个键的特征数据和对应的特征数据判断阈值;以及
判定子模块,配置成将特征数据大于对应的特征数据判断阈值的键识别为异常键。
B17.根据B14至B16中任一项所述的装置,其中所述数据库扫描模块还配置成:
确定所述待分析数据库的数量;以及
启动与所述待分析数据库的数量一致的分析线程,每个分析线程用于对一个所述待分析数据库进行扫描。
B18.根据B14至B16中任一项所述的装置,还包括:
信息记录模块,配置成:获取并记录所述异常键的键信息;以及
报表生成模块,配置成:根据记录的键信息生成数据分析报表。
B19.根据B18所述的装置,其中所述报表生成模块还配置成:
对所述异常键按照键值的数据类型进行分类;以及
在每一类下按照特征数据进行排序,并按照排序结果将对应的键写入生成所述数据分析报表。
B20.根据B18或B19所述的装置,其中所述键的信息包括以下任意一项或多项:
键名、数据类型、以及特征数据大小。
B21.根据B14至B20中任一项所述的装置,其中所述数据库扫描模块还配置成:
扫描所述待分析数据库中每个键的最后访问时间,并且将所述最后访问时间超过设定阈值时间的键识别为异常键。
B22.根据B21所述的装置,还包括:
选项获取模块,配置成获取访问时间扫描的开关选项,并仅在所述开关选项设置为开启时,所述数据库扫描模块执行所述扫描所述待分析数据库中每个键的最后访问时间的步骤。
B23.根据B14至B22中任一项所述的装置,其中
所述待分析数据库支持的键值的数据类型包括以下任意一项或多项:字符串类型,链表类型,集合类型,有序集合类型,以及散列值类型;并且
所述字符串类型对应的特征数据为键值长度,所述链表类型对应的特征数据为键值中的成员数量,所述集合类型对应的特征数据为键值中的成员数量,所述有序集合类型对应的特征数据为键值中的成员数量,以及所述散列值类型对应的特征数据为键值中的成员数量。
B24.根据B14至B23中任一项所述的装置,还包括:
阈值设定模块,配置成根据所述待分析数据库的业务类型确定所述特征数据判断阈值,和/或接收所述待分析数据库的管理员设定的所述特征数据判断阈值。
B25.根据B14至B24中任一项所述的装置,其中所述待分析数据库为Redis数据库。
本实施例还提供了C26.一种数据系统,包括至少一数据库和B14至B25中任一项所述的数据库的异常键识别装置,其中所述数据库的异常键识别装置用于识别所述至少一数据库的异常键。
C27.根据C26所述的数据系统,其中所述至少一数据库为Redis数据库。