数据分组方法及装置与流程

文档序号:18969463发布日期:2019-10-28 23:48阅读:165来源:国知局
数据分组方法及装置与流程
本发明涉及数据查询
技术领域
,特别涉及一种数据分组方法及装置。
背景技术
:在某些数据库中,每个数据包含多种不同的数据属性,并可以按照其中至少两种数据属性对数据进行分组,以便对外提供与分组相关的查询服务。其中,分组获得的同一数据组中的数据对应该至少两种数据属性的值都相同。在现有技术中,数据库管理设备预先按照至少两种数据属性的组合,对数据库中的各个数据进行倒排索引,以建立倒排索引表,该倒排索引表中包含该数据属性的组合中的每一组属性值,以及每一组属性值对应的包含有该组属性值的数据的标识。当需要对上述各个数据按照该数据属性的组合进行分组时,数据库管理设备可以查询上述预先建立的倒排索引表,将具有相同的一组属性值的数据作为一个数据组。对数据库中的数据进行分组时,数据属性的组合中的种类数和种类并不是固定不变的,比如,在前一次进行数据分组时,数据库管理设备按照数据属性a和b对各个数据进行分组,而在下一次进行数据分组时,数据库管理设备可能需要按照数据属性b、c和d进行分组。若按照现有技术中的分组方法,则需要按照数据属性的种类数和种类的各种组合,分别对数据库中的各个数据预先建立倒排索引表,当数据属性的种类较多时,需要预先建立的倒排索引表的数量将会非常庞大。比如,假设数据库中的每个数据包含100种数据属性,若要满足按照任意三种数据属性进行分组的需求,则需要建立(100*99*98)/(3*2*1)=161700个不同的倒排索引表,若还需要满足按照任意其它种类数的数据属性进行分组的需求,则需要建立的倒排索引表的数量还会更多。这些数量庞大的倒排索引表需要占据大量的存储资源,并且,倒排索引表的建立过程以及分组时查询对应的倒排索引表的过程也会消耗大量的处理时间和处理资源。技术实现要素:为了解决现有技术中,当数据属性的种类较多时,需要预先建立的倒排索引表的数量非常庞大,导致倒排索引表需要占据大量的存储资源,并且,倒排索引表的建立过程以及分组时查询对应的倒排索引表的过程消耗大量的处理资源的问题,本发明实施例提供了一种数据分组方法及装置,技术方案如下:第一方面,提供了一种数据分组方法,所述方法包括:获取目标数据的标识集合,所述目标数据是数据集合中包含相同的n种类型的数据属性的部分或者全部数据,n≥2,且n为整数;获取所述数据集合对应所述n种数据属性中的每一种数据属性的标识集合组,所述数据属性的标识集合组包含所述数据属性的每一种属性值的标识集合,所述属性值的标识集合包含具有所述属性值的数据的标识;对所述目标数据的标识集合以及所述每一种数据属性的标识集合组进行交集运算;根据所述交集运算的运算结果,获取按照所述n种数据属性对所述目标数据进行分组的分组结果。第二方面,提供了一种数据分组装置,所述装置包括:第一集合获取模块,用于获取目标数据的标识集合,所述目标数据是数据集合中包含相同的n种类型的数据属性的部分或者全部数据,n≥2,且n为整数;第二集合获取模块,用于获取所述数据集合对应所述n种数据属性中的每一种数据属性的标识集合组,所述数据属性的标识集合组包含所述数据属性的每一种属性值的标识集合,所述属性值的标识集合包含具有所述属性值的数据的标识;运算模块,用于对所述目标数据的标识集合以及所述每一种数据属性的标识集合组进行交集运算;结果获取模块,用于根据所述交集运算的运算结果,获取按照所述n种数据属性对所述目标数据进行分组的分组结果。本发明实施例提供的技术方案可以包括以下有益效果:只需要预先设置数据集合对应每一种数据属性标识集合组,即可以满足按照任意种类数和种类的数据属性对数据库中的数据进行分组的需求,从而极大的降低预设信息(即数据属性的标识集合组)的存储资源占用量,以及降低该预设信息的生成和查询过程的处理资源消耗。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。图1是本发明所示方案的实现流程示意图;图2是根据一示例性实施例示出的一种数据分组方法的流程图;图3是图2所示实施例涉及的一种交集运算及结果更新的示意图;图4是根据一示例性实施例示出的一种数据分组方法的流程图;图5是图4所示实施例涉及的一种交集运算及结果更新的示意图;图6是根据一示例性实施例示出的一种数据分组装置的框图;图7是根据一示例性实施例提供的管理设备的结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。本发明实施例所示的方案可以应用于具有数据库管理功能的各种设备平台中。比如,本方案可以应用于基于个人电脑、工作站、服务器、服务器集群或者云服务平台等实现的数据库管理设备中。在本发明实施例所示的方案中,数据库存储的数据集合中,每个数据具有多种不同类型的数据属性,且数据库管理设备支持按照其中的n种数据属性(n≥2,且为整数)对数据集合中的目标数据进行分组。其中,在对目标数据进行分组时,只需要查询数据集合对应该n种数据属性中的每一种数据属性的标识集合组(数据属性的标识集合组包含所述数据属性的每一种属性值的标识集合,所述属性值的标识集合包含具有所述属性值的数据的标识),并对目标数据的标识集合以及该n种数据属性中的每一种数据属性的标识集合组进行交集运算,并根据交集运算的运算结果获取到按照n种数据属性对应目标数据进行分组的分组结果。数据库管理设备只需要预先设置数据集合对应每一种数据属性的标识集合组,即可以满足按照任意种类数和种类的数据属性的组合对数据库中的数据进行分组的需求。具体的,请参考图1,其示出了本发明所示方案的实现流程示意图。如图1所示,数据库管理设备预先设置数据集合对应每种数据属性(图1中示出为数据属性0~X)的每一种属性值的标识集合,当需要对目标数据按照其中的n种数据属性进行分组时,可以从预先设置的标识集合中查询该n种数据属性分别对应的标识集合组(图1示为数据属性1对应的标识集合组以及数据属性4对应的标识集合组),并根据目标数据的标识集合与该数据属性1、4分别对应的标识集合组进行交集运算,并根据运算结果获取按照上述两种数据属性对目标数据进行分组的分组结果。基于上述方案,假设数据库中的每个数据包含100种数据属性,则数据库管理设备只需要预先设置并存储100个数据属性的标识集合组,在查询n种数据属性分别对应的标识集合时,也只需要在该100个数据属性的标识集合组中进行查询,相对于按照数据属性的种类数和种类的各种组合,分别对数据库中的各个数据预先建立倒排索引表的方法,本发明所示的方案能够极大的降低预设信息(即上述数据属性的标识集合组)的存储资源占用量,以及降低该预设信息的生成和查询过程的处理资源消耗。图2是根据一示例性实施例示出的一种数据分组方法的流程图,该方法可以用于具有数据库管理功能的数据库管理设备中。如图2所示,该数据分组方法可以包括如下几个步骤:步骤201,设置数据集合对应n种数据属性中的每一种数据属性的标识集合组。在本发明实施例中,数据集合是指由数据库中的全部或者部分数据所组成的集合。在该数据库中,每一条数据都对应有若干种数据属性,对于同一种数据属性,不同的数据对应该数据属性的属性值可以相同,也可以不同;每一种数据属性的标识集合组包含该数据属性的每一种属性值的标识集合,其中,标识集合是指由数据的标识组成的集合,每一种属性值的标识集合包含具有该属性值的数据的标识。其中,数据属性可以是组成数据的基本元素之一。比如,某条数据是用于记录学生学习成绩各科考试分数的数据,该数据的标识可以是学生的学号或编号,数据属性可以是各个学科,数据属性的属性值为各个学科的考试分数。其中,上述数据集合中的每个数据包含相同的n种类型的数据属性,n≥2,且n为整数。比如,请参考表1,其示出了数据库中各个数据对应的数据属性以及各种数据属性的值。表1数据的标识数据属性0数据属性1……数据属性99013……9114……5224……9313……NULL424……9…………………………99924……5如表1所示,数据库中包含1000个数据(数据的标识为0~999),每个数据也可以被称为一条记录(record),表1中各个数据对应同一个数据属性的属性值可以称为一列(column)。在数据库中,每个数据的数据属性的种类都相同,若某一个数据实际上不存在对应某一个数据属性的属性值时,该数据对应该数据属性的属性值可以用一个特殊的符号来表示,比如,在表1中,数据3实际上不存在数据属性99的属性值,则数据3对应在数据属性99的属性值为NULL。可选的,数据库管理设备可以通过倒排索引的方式来设置若干个数据对应n种数据属性中的每一种数据属性的标识集合组。比如,数据库管理设备设置数据集合对应n种数据属性中的每一种数据属性的标识集合组的步骤可以如下:201a,对于一种数据属性,按照该数据集合中的各个数据各自对应该数据属性的属性值,建立该数据集合对应该数据属性的倒排索引信息,该倒排索引信息中包含每一种属性值以及每一种属性值对应的数据的标识。201b,根据该倒排索引信息,设置该数据集合对应该数据属性的标识集合组。在本发明实施例中,数据库管理设备只针对每一种数据属性分别对数据集合中的各个数据建立倒排索引,并根据建立的倒排索引获得每一种数据属性中的每一种属性值所对应的标识集合(即包含该属性值的数据的标识组成的集合)。对于一种数据属性,该数据属性包含多少种不同的属性值,则该数据属性的标识集合组中就对应有多少个标识集合。其中,一个数据的标识是在数据库中唯一表示该数据的信息,比如,在上述表1中,数据库中的各个数据的标识为数据的ID(identity,唯一编码),且各个数据的ID为从0开始编号的整数。在实际应用中,数据的标识也可以是ID之外的其它信息,比如数据的存储地址等。此外,上述数据集合可以是数据库中存储的所有数据中的部分数据,也可以是数据库中存储的所有数据中的全部数据。具体的,以表1为例,假设上述数据集合为表1中的数据0~数据4,上述n种数据属性分别为数据属性0和数据属性1,则数据库管理设备按照数据属性0对数据0~数据4建立倒排索引信息,该倒排索引信息可以是如下述表2所示的倒排索引表。表2数据属性的属性值(value)对应的数据的标识集合1{0,1,3}2{2,4}如表2所示,数据0~数据4中,对应数据属性0的属性值为1的标识集合为{0,1,3},对应数据属性0的标识集合为{2,4},则数据库管理设备将数据0~数据4对应数据属性0的标识集合组设置为{0,1,3}和{2,4}。相应的,数据库管理设备按照数据属性1对数据0~数据4建立倒排索引信息,该倒排索引信息可以是如下述表3所示的倒排索引表。表3如表3所示,数据0~数据4中,对应数据属性1的属性值为3的标识集合为{0,3},对应数据属性1的属性值为4的标识集合为{1,2,4},则数据库管理设备将数据0~数据4对应数据属性1的标识集合组设置为{0,3}和{1,2,4}。上述内容仅以按照n种数据属性分别对数据集合进行标识集合组的设置为例进行说明,在实际应用中,数据库管理设备可以预先按照更多的数据属性对该数据集合进行标识集合组的设置,比如可以按照图1所示的流程,按照所有的数据属性分别对该数据集合进行标识集合组的设置。步骤202,获取目标数据的标识集合,该目标数据是数据集合中的全部或部分数据。可选的,当数据库管理设备接收到按照上述n种数据属性对数据集合中的目标数据进行分组的指令时,可以将目标数据的标识组成的集合获取为目标数据的标识集合。比如,若目标数据为上述表1中的数据0、数据2、数据3和数据4,则数据库管理设备获取目标数据的标识集合为{0,2,3,4};若目标数据为上述表1中的数据0、数据1、数据2、数据3和数据4,则数据库管理设备获取目标数据的标识集合为{0,1,2,3,4}。步骤203,获取该数据集合对应该n种数据属性中的每一种数据属性的标识集合组。其中,数据库管理设备在设置数据集合对应各个数据属性的标识集合组时,可以直接存储该数据集合分别对应每一个数据属性的倒排索引信息,在按照上述n种数据属性对数据集合中的目标数据进行分组时,数据库管理设备可以查询该数据集合分别对应上述n种数据属性的倒排索引信息,并从查询到的倒排索引信息中获取数据集合对应上述n种数据属性的标识集合组。比如,以表2和表3为例,数据库管理设备按照数据属性0和数据属性1对数据0~数据4中的目标数据进行分组时,可以查询表2获得数据0~数据4对应数据属性0的标识集合组为{0,1,3}和{2,4},并查询表3获得数据0~数据4对应数据属性1的标识集合组为{0,3}和{1,2,4}。或者,数据库管理设备在设置数据集合对应各个数据属性的标识集合组时,可以将数据集合对应上述n种数据属性的标识集合组分别对应上述n种数据属性独立存储,在按照上述n种数据属性对数据集合中的目标数据进行分组时,数据库管理设备可以直接根据上述n种数据属性获取相应的标识集合。比如,以表2和表3为例,数据库管理设备可以将集合{0,1,3}和{2,4}与数据属性0独立于表2进行对应存储,并将集合{0,3}和{1,2,4}与数据属性1独立于表3进行对应存储,数据库管理设备按照数据属性0和数据属性1对数据0~数据4中的目标数据进行分组时,可以根据数据属性0查找对应的标识集合组为{0,1,3}和{2,4},并根据数据属性1查找对应的标识集合组为{0,3}和{1,2,4}。在执行步骤202和步骤203之后,数据库管理设备可以对该目标数据的标识集合以及该数据集合对应该每一种数据属性的标识集合组依次进行交集运算,具体的运算步骤可以参考下述步骤204和步骤205。步骤204,在第1次运算时,将该目标数据的标识集合与该n种数据属性的第1种数据属性的标识集合组中的各个标识集合分别进行交集运算,获得第1次运算的运算结果。步骤205,在第i次运算时,将第i-1次运算的运算结果中的每一个集合与该n种数据属性的第i种数据属性的标识集合组中的各个标识集合分别进行交集运算,获得第i次运算的运算结果,2≤i≤n,且i为整数。其中,上述步骤204和步骤205的过程,可以参考图3所示的交集运算的示意图。如图3所示,数据库管理设备首先将目标数据的标识集合与第1种数据属性的标识集合组中的各个标识集合分别进行交集运算,获得的至少一个集合即为第1次运算的运算结果,之后,数据库管理设备用第1次运算的运算结果中的每一个集合分别与第2种数据属性的标识集合组中的各个标识集合分别进行交集运算,获得的至少一个集合即为第2次运算的运算结果,若存在第3种数据属性,则数据库管理设备再用第2次运算的运算结果中的每一个集合分别与第3种数据属性的标识集合中的各个标识集合分别进行交集运算,获得的至少一个集合即为第3次运算的运算结果,以此类推,直至获得第n次运算的运算结果。比如,以目标数据的标识集合为{0,2,3,4},数据集合为数据0~数据4,并按照数据属性0和数据属性1对该目标数据进行分组为例,数据库管理设备通过查询表2和表3,获得数据0~数据4对应数据属性0的标识集合为{0,1,3}和{2,4},数据0~数据4对应数据属性1的标识集合为{0,3}和{1,2,4};数据库管理设备首先将集合{0,2,3,4}与集合{0,1,3}和{2,4}分别进行交集运算。其中,集合{0,2,3,4}与集合{0,1,3}交集运算的结果为{0,3},集合{0,2,3,4}与集合{2,4}交集运算的结果为{2,4},则数据库管理设备获得第1次运算的运算结果为集合{0,3}和{2,4}。之后,数据库管理设备再将集合{0,3}和{2,4}中的每一个集合分别与集合{0,1,3}和{2,4}进行交集运算。其中,集合{0,3}和集合{0,1,3}交集运算的结果为集合{0,3},集合{0,3}和集合{2,4}交集运算的结果为空集,集合{2,4}和集合{0,1,3}交集运算的结果为空集,集合{2,4}和集合{2,4}交集运算的结果为{2,4},则排除两个空集,数据库管理设备获得第2次运算的运算结果为集合{0,3}和{2,4}。在本发明实施例中,上述第i种数据属性的标识集合组是指用于在第i次运算中进行交集运算的数据属性的标识集合组,其强调的是每次运算时使用不同的标识集合组,并不限制各个标识集合组的运算顺序,数据库管理设备可以按照任意的顺序,将该目标数据的标识集合与该数据集合对应该每一种数据属性的标识集合中的各个标识集合依次进行交集运算。比如,以上述数据属性0对应的标识集合组和数据属性1对应的标识集合组为例,可以先将目标数据的标识集合与数据属性0对应的标识集合组进行交集运算,再将第1次交集运算的运算结果与数据属性1对应的标识集合组进行交集运算,此时,数据属性0为第1种数据属性,数据属性1为第2种数据属性;或者,也可以现将目标数据的标识集合与数据属性1对应的标识集合组进行交集运算,再将第1次交集运算的运算结果与数据属性0对应的标识集合组进行交集运算,此时,数据属性1为第1种数据属性,数据属性0为第2种数据属性。步骤206,对于第n次运算的运算结果中包含的每一个集合,将该集合中的标识获取为该分组结果中的一个数据组对应的数据的标识。其中,在根据该依次进行交集运算后的运算结果,获取按照该n种数据属性对该目标数据进行分组的分组结果时,数据库管理设备可以按照步骤205中的最后一次运算的运算结果来确定分组结果,具体的,可以将最后一次运算的运算结果中的每一个集合中的标识所对应的数据作为一个数据组。比如,以上述目标数据的标识集合为{0,2,3,4},数据集合为数据0~数据4,并按照数据属性0和数据属性1对该目标数据进行分组为例,最后一次(即第2次)运算的运算结果为集合{0,3}和{2,4},则数据库管理设备将数据0和数据3确定为一个数据组,并将数据2和数据4确定为另一个数据组。步骤207,获取该数据组对应的数据中,该n种数据属性各自的属性值,对应该数据组输出获取到的该n种数据属性各自的属性值。在本发明实施例中,在确定按照n种数据属性对该目标数据进行分组获得各个数据组后,数据库管理设备还可以获取每一个数据组对应该n种数据属性的属性值,并对应该数据组输出获取到的属性值,以便后续提供相关的服务,比如,若用户查询该n种数据属性的某一组属性值对应的各个数据,数据库管理设备可以将该组属性值对应的数据组中的各个数据提供给用户。具体的,本发明实施例所示的方案可以应用在基于SQL(StructuredQueryLanguage,结构化查询语言)的数据库中,实现SQL中的groupby语句所实现的功能。通过本发明实施例所示的方案实现groupby的方案可以描述如下:假设总共有m条记录(即m个数据),给每个记录分配一个ID,第p条记录的ID为p,其中1≤p≤m。每条记录有r列,每列的编号分别为1,2,…r,用column[1],column[2],…column[r]来表示每一列。第q列(1≤q≤r)共有count[o]个不重复的值,用value[p][q]表示第p列的第q个值。分别对每一列建立倒排索引,即记录每列上的每个值对应的记录ID的列表。用record_id_list[p][q]表示第p列的第q个值对应的记录ID列表。每个ID列表内部的ID都是不重复的。因此每个ID列表可以看作是一个由ID构成的集合。用record_id_set[p][q]表示第p列的第q个值对应的记录ID的集合。给定一个记录ID的集合,称之为init_record_id_set,对这个集合所指示的记录的集合进行groupby。假定按照k列进行groupby,列的编号保存在一个大小为k的数组中,用group_by_columns[1…k]来表示。设定输入为:待groupby的记录的ID集合,用init_record_id_set表示,以及groupby的列,用group_by_columns[1…k]表示。设定输出为:由记录的ID的集合构成的列表,用S表示,S中的每个集合代表groupby之后的一个组。以上述表1至表3为例,假设待groupby的记录的ID集合init_record_id_set={0,2,3,4},按照编号为1和2的两列(即上述图1中的数据属性1和数据属性2对应的列)进行groupby,则算法中的k=2。则按照上述算法:返回SL,即最终groupby生成两组结果,{0,3}和{2,4}。ID为0,3的记录在数据属性1和数据属性2对应的列有相同的取值:数据属性1对应的列的值为1,数据属性2对应的列的值为3;ID为2,4的记录在数据属性1和数据属性2对应的列有相同的取值:数据属性1对应的列的值为2,数据属性2对应的列的值为4,此时成功完成groupby的步骤。在本发明实施例中,数据的ID用整数从0开始连续编号,因此数据的ID的集合是由整数构成的集合,可以用有序数组或者bitmap(位图)等方式来实现这种集合的存储和高效的求交集运算,从而按照本发明实施例所描述的步骤高效的实现数据集合的分组。综上所述,本发明实施例所示的方法,在对目标数据进行分组时,查询数据集合对应该n种数据属性中的每一种数据属性的每一个属性值的标识集合,并将目标数据的标识集合与该n种数据属性中的每一种数据属性的每一个属性值的标识集合依次进行交集运算,并根据运算结果获取到按照n种数据属性对应目标数据进行分组的分组结果,只需要预先设置数据集合对应每一种数据属性的每一个属性值的标识集合,即可以满足按照任意种类数和种类的数据属性对数据库中的数据进行分组的需求,从而极大的降低预设信息的存储资源占用量,以及降低该预设信息的生成和查询过程的处理资源消耗。图4是根据一示例性实施例示出的一种数据分组方法的流程图,该方法可以用于具有数据库管理功能的数据库管理设备中。如图4所示,该数据分组方法可以包括如下几个步骤:步骤401,设置数据集合对应n种数据属性中的每一种数据属性的标识集合组。步骤402,获取目标数据的标识集合,该目标数据是数据集合中的全部或部分数据。步骤403,获取该数据集合对应该n种数据属性中的每一种数据属性的标识集合组。步骤404,在第1次运算时,将该目标数据的标识集合与该n种数据属性的第1种数据属性的标识集合组中的各个标识集合分别进行交集运算,获得第1次运算的运算结果。步骤405,在第i次运算时,将该目标数据的标识集合与该n种数据属性的第i种数据属性的标识集合组中的各个标识集合分别进行交集运算,将运算得到的每一个集合与第i-1次运算的运算结果中的各个集合分别进行交集运算,获得第i次运算的运算结果,2≤i≤n,且i为整数。其中,上述步骤404和步骤405的过程,可以参考图5所述的交集运算的示意图。如图5所示,数据库管理设备首先将目标数据的标识集合与第1种数据属性的标识集合组中的各个标识集合分别进行交集运算,获得的至少一个集合即为第1次运算的运算结果,之后,数据库管理设备将目标数据的标识集合与第2种数据属性的标识集合组中的各个标识集合分别进行交集运算,并将运算获得的至少一个集合分别与第1次运算的运算结果中的每一个集合分进行交集运算,获得的至少一个集合即为第2次运算的运算结果,若存在第3种数据属性,则数据库管理设备再将目标数据的标识集合与第3种数据属性的标识集合组中的各个标识集合分别进行交集运算,并将运算获得的至少一个集合分别与第2次运算的运算结果中的每一个集合进行交集运算,获得的至少一个集合即为第3次运算的运算结果,以此类推,直至获得第n次运算的运算结果。比如,以目标数据的标识集合为{0,2,3,4},数据集合为数据0~数据4,并按照数据属性0和数据属性1对该目标数据进行分组为例,数据库管理设备通过查询表2和表3,获得数据0~数据4对应数据属性0的标识集合为{0,1,3}和{2,4},数据0~数据4对应数据属性1的标识集合为{0,3}和{1,2,4};数据库管理设备首先将集合{0,2,3,4}与集合{0,1,3}和{2,4}分别进行交集运算,其中,集合{0,2,3,4}与集合{0,1,3}交集运算的结果为{0,3},集合{0,2,3,4}与集合{2,4}交集运算的结果为{2,4},则数据库管理设备获得第1次运算的运算结果为集合{0,3}和{2,4}。之后,数据库管理设备再将集合{0,2,3,4}与集合{0,1,3}和{2,4}进行交集运算,获得的运算结果为集合为{0,3}和{2,4},数据库管理设备将该运算结果与第1次运算的运算结果(即集合{0,3}和{2,4})进行交集运算,获得第2次运算的运算结果为集合{0,3}和{2,4}。步骤406,对于第n次运算的运算结果中包含的每一个集合,将该集合中的标识获取为该分组结果中的一个数据组对应的数据的标识。步骤407,获取该数据组对应的数据中,该n种数据属性各自的属性值,对应该数据组输出获取到的该n种数据属性各自的属性值。综上所述,本发明实施例所示的方法,在对目标数据进行分组时,查询预先设置的数据集合对应该n种数据属性中的每一种数据属性的每一个属性值的标识集合,并将目标数据的标识集合与该n种数据属性中的每一种数据属性的每一个属性值的标识集合依次进行交集运算,并根据运算结果获取到按照n种数据属性对应目标数据进行分组的分组结果,只需要预先设置数据集合对应每一种数据属性的每一个属性值的标识集合,即可以满足按照任意种类数和种类的数据属性对数据库中的数据进行分组的需求,从而极大的降低预设信息的存储资源占用量,以及降低该预设信息的生成和查询过程的处理资源消耗。下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。请参考图6,其示出了一示例性实施例示出的一种数据分组装置的框图。该数据分组装置可以通过硬件或者软硬结合的方式实现为数据库管理设备的全部或者部分。该数据分组装置可以包括:第一集合获取模块601,用于获取目标数据的标识集合,所述目标数据是数据集合中包含相同的n种类型的数据属性的部分或者全部数据,n≥2,且n为整数;第二集合获取模块602,用于获取所述数据集合对应所述n种数据属性中的每一种数据属性的标识集合组,所述数据属性的标识集合组包含所述数据属性的每一种属性值的标识集合,所述属性值的标识集合包含具有所述属性值的数据的标识;运算模块603,用于对所述目标数据的标识集合以及所述每一种数据属性的标识集合组进行交集运算;结果获取模块604,用于根据所述交集运算的运算结果,获取按照所述n种数据属性对所述目标数据进行分组的分组结果。可选的,所述装置还包括:索引信息建立模块,用于在所述第二集合获取模块获取所述数据集合对应所述n种数据属性中的每一种数据属性的标识集合组之前,按照所述数据集合中的各个数据各自对应所述数据属性的属性值,建立所述数据集合对应所述数据属性的倒排索引信息,所述倒排索引信息中包含所述每一种属性值以及所述每一种属性值对应的数据的标识;集合设置模块,用于根据所述倒排索引信息设置所述数据集合对应所述每一种数据属性的标识集合组。可选的,所述运算模块,用于在第1次运算时,将所述目标数据的标识集合与所述n种数据属性的第1种数据属性的标识集合组中的各个标识集合分别进行交集运算,获得第1次运算的运算结果;在第i次运算时,将第i-1次运算的运算结果中的每一个集合与所述n种数据属性的第i种数据属性的标识集合组中的各个标识集合分别进行交集运算,获得第i次运算的运算结果,2≤i≤n,且i为整数。可选的,所述运算模块,用于在第1次运算时,将所述目标数据的标识集合与所述n种数据属性的第1种数据属性的标识集合组中的各个标识集合分别进行交集运算,获得第1次运算的运算结果;在第i次运算时,将所述目标数据的标识集合与所述n种数据属性的第i种数据属性的标识集合组中的各个标识集合分别进行交集运算,将运算得到的每一个集合与第i-1次运算的运算结果中的各个集合分别进行交集运算,获得第i次运算的运算结果,2≤i≤n,且i为整数。可选的,所述结果获取模块,用于对于第n次运算的运算结果中包含的每一个集合,将所述集合中的标识获取为所述分组结果中的一个数据组对应的数据的标识。可选的,所述装置还包括:属性值获取模块,用于获取所述数据组对应的数据中,所述n种数据属性各自的属性值;输出模块,用于对应所述数据组输出所述属性值获取模块获取到的所述n种数据属性各自对应的属性值。综上所述,本发明实施例所示的装置,在对目标数据进行分组时,查询预先设置的数据集合对应该n种数据属性中的每一种数据属性的每一个属性值的标识集合,并将目标数据的标识集合与该n种数据属性中的每一种数据属性的每一个属性值的标识集合依次进行交集运算,并根据运算结果获取到按照n种数据属性对应目标数据进行分组的分组结果,只需要预先设置数据集合对应每一种数据属性的每一个属性值的标识集合,即可以满足按照任意种类数和种类的数据属性对数据库中的数据进行分组的需求,从而极大的降低预设信息的存储资源占用量,以及降低该预设信息的生成和查询过程的处理资源消耗。本发明实施例还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由数据库管理设备的处理器执行以完成本发明各个实施例所示的数据分组方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。图7是根据一示例性实施例示出的一种管理设备的结构示意图。该管理设备可以实现为本发明上述方案中的数据库管理设备。所述管理设备700包括中央处理单元(CPU)701、包括随机存取存储器(RAM)702和只读存储器(ROM)703的系统存储器704,以及连接系统存储器704和中央处理单元701的系统总线705。所述管理设备700还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)706,和用于存储操作系统713、应用程序714和其他程序模块715的大容量存储设备707。所述基本输入/输出系统706包括有用于显示信息的显示器708和用于用户输入信息的诸如鼠标、键盘之类的输入设备709。其中所述显示器708和输入设备709都通过连接到系统总线705的输入输出控制器710连接到中央处理单元701。所述基本输入/输出系统706还可以包括输入输出控制器710以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器710还提供输出到显示屏、打印机或其他类型的输出设备。所述大容量存储设备707通过连接到系统总线705的大容量存储控制器(未示出)连接到中央处理单元701。所述大容量存储设备707及其相关联的计算机可读介质为管理设备700提供非易失性存储。也就是说,所述大容量存储设备707可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器704和大容量存储设备707可以统称为存储器。根据本发明的各种实施例,所述管理设备700还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即管理设备700可以通过连接在所述系统总线705上的网络接口单元711连接到网络712,或者说,也可以使用网络接口单元711来连接到其他类型的网络或远程计算机系统(未示出)。所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,中央处理器701通过执行该一个或一个以上程序来实现图2或图4所示的数据分组方法。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本
技术领域
中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1