一种资源占用的统计方法及装置的制造方法

文档序号:8445572阅读:198来源:国知局
一种资源占用的统计方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及一种资源占用的统计方法及装置。
【背景技术】
[0002]随着网络的不断发展,为用户提供服务的方法已经由软件即服务(software as aservice, saas)的方式转变为平台即服务(platform as a service, paas)的方式,hbase数据库就是建立Paas之上的,主要用于为用户提供存储空间。
[0003]在实际应用中,服务提供方经常需要获知各用户在hbase数据库中所占用的存储空间的大小,以便管理用户和服务器。在现有技术中,统计用户占用的存储空间的方法一般是:统计设备针对一个用户,根据该用户的用户标识,确定该用户所使用的自定义标识(数据标识具体可以由用户自行定义),再根据用户标识和自定义标识,确定该用户所使用的数据标识,最后根据确定的各数据标识,扫描数据库中相应的各数据,得到各数据所占用的存储空间,这样就得到了该用户所占用的存储空间。
[0004]例如,假设数据库预先为某个用户分配的用户标识为ABC,而该用户自行定义的自定义标识分别为aaa、bbb和ccc,则统计设备确定该用户所使用的数据标识为ABC_aaa、ABC_bbb、ABC_ccc,每个数据标识均对应一个数据。统计设备可采用这三个数据标识,扫描数据库中与这三个数据标识对应的数据。假设得到的每个数据所占用的空间都是1M,则可确定该用户总共占用的存储空间为3M。
[0005]但是,如果要确定大量的用户所占用的存储空间,那么统计设备几乎相当于要全盘扫描数据库中存放的全部数据,这就会耗费大量的时间,统计效率较低。

【发明内容】

[0006]本发明实施例提供一种资源占用的统计方法及装置,用以解决现有技术中确定在统计大量的用户所占用的存储空间时,统计效率较低的问题。
[0007]本发明实施例提供的一种资源占用的统计方法,包括:
[0008]确定用户的各数据标识;
[0009]根据预先为数据库中的各数据建立的索引,在确定的所述各数据标识中,确定包含在所述索引中的数据标识;其中,所述索引中包含的每个数据标识对应固定大小的存储空间;
[0010]根据包含在所述索引中的数据标识和所述固定大小的存储空间,确定所述用户占用的存储空间。
[0011]本发明实施例提供的一种资源占用的统计装置,包括:
[0012]确定模块,用于确定用户的各数据标识;
[0013]扫描模块,用于根据预先为数据库中的各数据建立的索引,在确定的所述各数据标识中,确定包含在所述索引中的数据标识;其中,所述索引中包含的每个数据标识对应固定大小的存储空间;
[0014]统计模块,用于根据包含在所述索引中的数据标识和所述固定大小的存储空间,确定所述用户占用的存储空间。
[0015]本发明实施例提供一种资源占用的统计方法及装置,该方法针对要统计资源占用的用户,确定该用户的各数据标识,根据预先为数据库中的各数据建立的索引,在该用户的各数据标识中,确定包含在索引中的数据标识,根据包含在索引中的数据标识,确定该用户占用的存储空间。在上述方法中,由于索引中包含的每个数据标识均对应固定大小的存储空间,因此,只要在用户的数据标识中,确定出包含在索引中的数据标识,就可确定出用户占用的存储空间,而无需全盘扫描数据库中的数据,从而可提高统计资源占用的效率,尤其是在要对大量用户所占用的资源进行统计时,可大大的缩短统计时间。
【附图说明】
[0016]此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0017]图1为本发明实施例提供的资源占用的统计方法的过程示意图;
[0018]图2为本发明实施例提供的对第一存储区域和第二存储区域中的数据建立索引的不意图;
[0019]图3为本发明实施例提供的将用户数据划分为数据块时随机组合建立索引的示意图;
[0020]图4为本发明实施例提供的对数据进行排列建立索引的第一种示意图;
[0021]图5为本发明实施例提供的对数据进行排列建立索引的第二种示意图
[0022]图6为本发明实施例提供的资源占用的统计装置的结构示意图。
【具体实施方式】
[0023]为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0024]图1为本发明实施例提供的资源占用的统计过程,具体包括以下步骤:
[0025]SlOl:确定用户的各数据标识。
[0026]在本发明实施例中,统计设备针对要统计资源占用的用户,首先要确定该用户的数据标识。
[0027]用户在向数据库中存放数据时,为了便于管理数据(查询、更改),数据库都给数据一个数据标识,而这个数据标识在数据库中是唯一的。一般数据库中,数据标识=用户标识+自定义标识,用户标识是数据库给每个用户随机分配的长度固定的字符串,如:数据库给用户一随机分配的字符串为:ABCDEFGHIJ、aa、bb等。自定义标识是用户在存放数据时为数据自行定义的标识。
[0028]例如,假设在某一数据库中,该数据库为某一用户分配的用户标识为:DC,该用户定义数据标识AA,则所述用户的数据标识为DC_AA,另一个用户的用户标识EF,他定义数据标识也是AA,则所述用户的数据标识为EF_AA。
[0029]在数据库中,不同用户的自定义标识可能是一样的,如用户一的自定义标识为AA,用户二的自定义标识也为AA,但是不同用户的用户标识是唯一确定的,因此在数据库中用户的数据标识也是唯一的,如用户一的数据标识为DC_AA,用户二的数据标识为EF_AA。
[0030]S102:根据预先为数据库中的各数据建立的索引,在确定的所述各数据标识中,确定包含在所述索引中的数据标识。
[0031]其中,所述索引中包含的每个数据标识对应固定大小的存储空间。
[0032]在本发明实施例中,所述的数据库,包括但不限于:db2,oracle,sql,access,hbase等数据库,索引相当于是数据库中各数据的目录,数据库中存放了大量的用户数据,数据库在存储这些用户数据时,以不同的存储区域进行存储,现有技术中,数据库对数据的查询或统计方式,必须遍历该数据库中不同的存储区域,这样就会耗费大量的时间,统计效率较低。
[0033]所以,在本发明实施例中,可以在统计用户的资源占用存储空间时直接扫描该数据库的索引。例如:在图2中,用户一的数据分别存储在第一存储区域和第二存储区域中,其中,这里的第一存储区域和第二存储区域,假设为某存储设备中的扇区,具体地,第一个存储区域中存储的数据的数据标识为:aa_A,aa_B,aa_C。第二个存储区域中存储的数据的数据标识为:aa_D,aa_E,aa_F。从而,可以将aa_A提取出来作为第一个存储区域的数据标识,可以将aa_D提取出来作为第二个存储区域的数据标识。
[0034]通过上例可见,在对用户一的数据进行扫描时,可以是接扫描索引中的两个数据标识,而不用对存储区域一和二进行扫描,显然,这样的方式有效地提升了对数据扫描的效率。
[0035]S103:根据包含在所述索引中的数据标识和所述固定大小的存储空间,确定所述用户占用的存储空间。
[0036]由于索引中包含的每个数据标识,分别对应着不同的存储区域,而存储区域的存储空间(也可以称为存储容量)通常是固定的,并且,数据标识中含有用户标识,那么,数据标识所对应的存储区域,也就是相应的用户数据对应的存储区域。那么,通过索引中的数据标识,和该数据标识对应的存储区域的存储空间,就可以确定用户数据所占用的存储空间。
[0037]沿用上例,假设,第一存储区域和第二存储区域的存储空间的大小均为1MB,那么,通过图2中的索引,其中的数据标识aa_A对应第一存储区域,数据标识aa_D对应第二存储区域,那么,用户一的数据所占的存储空间为2MB。
[0038]通过上述方法,统计设备直接扫描数据库中建立起来的索引,确定出包含在所述索引中的数据标识,再根据包含在所述索引中的数据标识和所述固定大小的存储空间,确定用户占用的资源,由于索引的数据量远远小于数据库中存放的全部数据的数据量,因此,通过扫描索引来统计用户占用的资源的方法可有效提高统计效率。
[0039]正是由于现有技术中,数据库对其中存储的数据进行统计或检索时,只能通过全盘扫描的方式,导致统计或检索的效率较低。
[0040]因此,对于上述步骤S102而言,预先为数据库中的各数据建立索引,具体为:预先
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1