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

文档序号:8361577阅读:来源:国知局
力,无需将分析结果返回给客户端,而是直接在Redis数据库中建立SortedSet类型的五个数据结构,分别记录不同类型key的数据量,由于所有的计算和存储都是基于原有的Redis内存数据库实例,大大减少了客户端与数据库之间的数据交互,极大的提高了分析效率。
[0089]Redis数据库中所有key分析完后,在五个SortedSet中各进行一次长度、成员个数的排序,得到排序结果。根据该排序结果可以在数据分析客户端上生成数据分析报告并最终向数据库管理员输出,以便数据库管理员根据中数据情况进行内存清理,或者自动清理占用内存量超过阈值且长期未被访问的数据。
[0090]本实施例的数据库的数据分析方法,在对Redis这类基于内存的数据库进行分析时,可以直接基于数据库在内存中分析,大大提高了数据分析效率,分析结果直观,以便在出现内存使用量突然提高的情况下及时进行处理,提高了数据库的运行可靠性。
[0091]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0092]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0093]本领域的技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0094]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0095]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的数据库的数据分析装置和数据库的数据分析系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0096]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”或“包括”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0097]至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
[0098]本实施例还提供了 Al.—种数据库的数据分析方法,包括:
[0099]建立数组列表;
[0100]扫描得到目标数据库中所有键的键名并存入所述数组列表;
[0101]根据所述数组列表中的键名向所述目标数据库发送数据分析指令,以得出所述目标数据库中每个键对应的数据量;以及
[0102]按照所述数据量对所述目标数据库中的键进行排序。
[0103]A2.根据Al所述的方法,在所述按照所述数据量对所述目标数据库中的键进行排序的步骤之后,所述方法还包括:
[0104]根据所述排序结果输出数据分析报告。
[0105]A3.根据A2所述的方法,其中,所述建立数组列表的步骤进一步包括:
[0106]按照所述目标数据库中数据的数据类型分别建立多个所述数组列表。
[0107]A4.根据A3所述的方法,其中,所述扫描得到目标数据库中所有键的键名并存入所述数组列表的步骤进一步包括:
[0108]使用扫描指令分批迭代所述目标数据库,以得到所述所有键的键名以及与键名对应的键值的数据类型,以及
[0109]按照所述数据类型将所述键名存入对应的数组列表。
[0110]A5.根据A4所述的方法,其中,所述数组列表包括以下任意一项或多项:
[0111]字符串类型的键名列表、
[0112]链表类型的键名列表、
[0113]集合类型的键名列表、
[0114]有序集合类型的键名列表、以及
[0115]散列值类型的键名列表。
[0116]A6.根据Al至A5中任一项所述的方法,其中,所述根据所述数组列表中的键名向所述目标数据库发送数据分析指令的步骤进一步包括:
[0117]启动多个数据分析线程,其中
[0118]每个所述数据分析线程用于使用管道模式将一个或多个数组列表中的键名发送至所述目标数据库以供分析,以得到所述每个键对应的数据量。
[0119]A7.根据A6所述的方法,其中,
[0120]所述数据分析线程的数量与所述数组列表的数量一致,每个所述数据分析线程用于对一个类型的数组列表进行分析。
[0121]AS.根据Al至7中任一项所述的方法,其中,所述按照所述数据量对所述目标数据库中的键进行排序的步骤进一步包括:
[0122]在所述目标数据库中新建至少一个有序集合数据结构;
[0123]按照所述数据类型将所述数据量以及对应的键名分类存储至所述有序集合数据结构中;以及
[0124]在所述有序集合数据结构中按照所述数据量进行排序。
[0125]A9.根据AS所述的方法,其中,所述在所述有序集合数据结构中按照所述数据量进行排序的步骤进一步包括:
[0126]在所述有序集合数据结构中按照每类数据结构中各键值的数据量大小进行排序;或者
[0127]在所述有序集合数据结构中估算每类数据结构中各键值的数据量占用的内存,并按照所述占用的内存大小对所述目标数据库中的所有键进行排序。
[0128]A10.根据A2至A9中任一项所述的方法,其中,所述根据所述排序结果输出数据分析报告的步骤进一步包括:
[0129]按照所述排序结果生成数据分析报告;
[0130]将所述数据分析报告中数据量超出预设阈值的键进行突出显示;以及
[0131]输出所述数据分析报告。
[0132]All.根据Al至AlO中任意一项所述的方法,其中,所述数据量包括:
[0133]字符串类型的键的键值长度;
[0134]链表类型的键中包含的成员个数;
[0135]集合类型的键中包含的成员个数;
[0136]有序集合类型的键中包含的成员个数;以及
[0137]散列值类型的键中包含的成员个数。
[0138]A12.根据Al至All中任意一项所述的方法,其中,所述方法进一步包括:
[0139]监控待分析的数据库的内存使用情况,并在内存使用超过设定的内存使用量后,触发所述建立数组列表的步骤,以启动对所述
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1