一种用于查询数据的方法技术

技术编号:18732476 阅读:20 留言:0更新日期:2018-08-22 03:02
本申请提供了一种用于查询数据的方法和装置,该方法包括:获取第一数据;根据该第一数据中的L列数据生成P个索引键;根据该P个索引键、该第一数据的行主键和该第一数据的内部数据标识,在该第一数据对应的第一索引分区中更新第一索引信息,该第一数据的内部数据标识在该第一索引分区中是唯一的,该第一索引信息包括针对已存储的M条数据的第一对应关系和第二对应关系,其中,该第一对应关系表示基于该M条数据生成的N个索引键与N组内部数据标识之间的一一对应关系,该第二对应关系表示基于该M条数据生成的M个行主键和该M条数据的M个内部数据标识之间的一一对应关系。因此,可以有效地提供数据的查询效率。

A method for querying data

The present application provides a method and apparatus for querying data, including: obtaining a first data; generating P index keys from the L-column data in the first data; and according to the P index keys, the row primary key of the first data, and the internal data identification of the first data, the first index score corresponding to the first data. Updating the first index information in the region, the internal data identifier of the first data is unique in the first index partition, and the first index information includes the first and second correspondences for the stored M-bar data, where the first correspondence represents the N index keys generated based on the M-bar data and the N-group. A one-to-one correspondence between the part data identifiers represents a one-to-one correspondence between the M row primary keys generated from the M bar data and the M internal data identifiers of the M bar data. Therefore, data query efficiency can be effectively provided.

【技术实现步骤摘要】
一种用于查询数据的方法
本申请涉及存储领域,更具体地,涉及存储领域中一种用于查询数据的方法和装置。
技术介绍
在数据查询过程中,可以通过倒排索引实现根据数据的查询过程。其中,倒排索引表示数据实体列表与关键词之间的对应关系,其中,数据实体表示具备该关键词的对象,例如,数据实体可以为用户,数据实体列表即表示具备该关键词的各个数据实体的集合。在现有技术中,系统为每个数据实体分配对应的整数(Integer,Int)身份标识(Identification,ID),可以通过构建的关键词与多个ID之间的对应关系查找数据。例如,对应关系为:Address:龙岗->{1,2},其中,关键词为:Address:龙岗,多个ID为:1,2,该对应关系表示ID为1和2的承载体具备该关键词。查询数据过程中,可以基于该关键词确定对应的ID,再基于ID确定对应的数据实体。但是,当底层的数据文件被合并的时候,数据实体与ID之间的对应关系可能会发生变化,这样,导致上述关键词与多个ID之间的对应关系可能已经失效,因此,实际查询数据时,可能需要读取底层数据库中的数据之后,才能查找到满足条件的数据,严重降低了查询效率。尤其当查询条件中包括较多的关键词时,可能会导致查询失败。
技术实现思路
本申请提供一种用于查询数据的方法,能有效地提高数据的查询效率。第一方面,提供了一种用于查询数据的方法,所述方法包括:获取第一数据;根据所述第一数据中的L列数据生成P个索引键,所述L为大于或等于1的整数,所述P为大于1的整数;根据所述P个索引键、所述第一数据的行主键和所述第一数据的内部数据标识,在所述第一数据对应的第一索引分区中更新第一索引信息,所述第一数据的行主键用于在数据区中查找所述第一数据,所述第一数据的内部数据标识在所述第一索引分区中是唯一的,所述第一索引信息包括针对已存储的M条数据的第一对应关系和第二对应关系,其中,所述第一对应关系表示基于所述M条数据生成的N个索引键与N组内部数据标识之间的一一对应关系,每组内部数据标识包括所述M条数据中的至少一条数据的内部数据标识,所述每组内部数据标识是用于标识满足对应的索引键的数据的标识,所述第二对应关系表示基于所述M条数据生成的M个行主键和所述M条数据的M个内部数据标识之间的一一对应关系,所述M和所述N都为大于或等于1的整数。因此,本申请实施例提供的用于查询数据的方法,在获取数据(例如,第一数据)后,根据基于该第一数据的至少部分数据(例如,L列数据)生成的索引键、该第一数据的行主键和该第一数据的内部数据标识更新对应该第一数据的第一索引分区中的第一索引信息,其中,该第一索引信息包括针对已存储的M条数据的第一对应关系和第二对应关系,该第一对应关系表示基于该M条数据生成的N个索引键与N组内部数据标识之间的关系,该第二对应关系表示基于M条数据生成的M个行主键和M个内部数据标识之间的对应关系。由于数据的内部数据标识在数据对应的索引分区中是唯一的,因此,当多个数据文件合并为一个数据文件时,数据的行主键与内部数据标识之间的对应关系不会发生变化,从而基于数据生成的索引键和内部数据标识之间的对应关系也不会发生变化,从而,可以快速地从原先缓存在内存中的索引信息中读取数据,而不需要从底层的数据库中的索引信息中重新读取数据,提高了数据的查询效率。可选地,所述根据所述第一数据中的L列数据生成P个索引键,包括:在[1,L]范围内对i遍历取值,通过以下步骤生成所述P个索引键:从以下任意一项中,提取至少一个关键词,所述任意一项包括:所述第一数据的第i列数据中的至少一个分词,或,所述第一数据的行主键,或,所述第一数据的第i列数据的列名,其中,所述至少一个关键词与所述第i列数据中的至少一个分词一一对应,若所述任意一项包括所述第一数据的第i列数据中的至少一个分词,则每个关键词包括对应于所述每个关键词的分词,或,若所述任意一项包括所述第一数据的第i列数据中的至少一个分词和所述第一数据的行主键,则每个关键词包括对应于所述每个关键词的分词和所述第一数据的行主键中的关键词,或,若所述任意一项包括所述第一数据的第i列数据中的至少一个分词和所述第一数据的第i列数据的列名,则每个关键词包括对应于所述每个关键词的分词和所述第一数据的第i列数据的列名;根据所述至少一个关键词中的每个关键词生成对应于所述每个关键词的索引键。因此,本申请实施例提供的用于查询数据的方法,通过从第一数据的L列数据中的任一列数据(例如,第i列数据)中的至少一个分词、该至少一个分词和该第一数据的行主键、该至少一个分词和该第i列数据的列名中的任意一项中,提取对应于该至少一个分词的至少一个关键词,可以有效地提高系统提取关键词的灵活性,进而提高数据的查询效率。可选地,所述根据所述至少一个关键词中的每个关键词生成对应于所述每个关键词的索引键,包括:由所述每个关键词、所述第一数据的第i列数据的列名和用于标识所述第一索引分区的第一索引分区标识生成对应于所述每个关键词的索引键。可选地,所述根据所述至少一个关键词中的每个关键词生成对应于所述每个关键词的索引键,包括:由所述每个关键词和用于标识所述第一索引分区的第一索引分区标识生成对应于所述每个关键词的索引键。可选地,所述第一索引信息存储在第一存储区中,所述M条数据存储在第二存储区中,所述第一存储区与所述第二存储区是隔离的。因此,本申请实施例提供的用于查询数据的方法,通过将存储索引信息的第一存储区和存储数据的第二存储区隔离,可以使得数据表的数据分区变化并不会影响索引信息的内容,并且,在重建索引信息时也不会影响数据表中的数据,有效地提高了数据的处理速度。第二方面,提供了一种用于查询数据的方法,所述方法包括:获取查询条件;根据S个索引分区中每个索引分区的索引信息中的第一对应关系查询满足所述查询条件的目标数据的内部数据标识,所述内部数据标识在所述目标数据对应的索引分区中是唯一的,所述S个索引分区为根据所述查询条件确定的索引分区,其中,所述第一对应关系表示基于多条数据生成的多个索引键与多组内部数据标识之间的一一对应关系,每组内部数据标识包括所述多条数据中的至少一条数据的内部数据标识,所述每组内部数据标识是用于标识满足对应的索引键的数据的标识;根据所述目标数据的内部数据标识和所述每个索引分区的索引信息中的第二对应关系,查询满足所述目标数据的行主键,并根据所述目标数据的行主键生成包括所述目标数据的查询结果,其中,所述第二对应关系表示基于所述多条数据生成的多个行主键和所述多条数据的多个内部数据标识之间的一一对应关系,所述行主键用于在数据区中查找数据;反馈所述查询结果。因此,本申请实施例提供的用于查询数据的方法,由于构建的索引分区的索引信息包括第一对应关系和第二对应关系,其中,第一对应关系表示基于多条数据生成的多个索引键与多组内部数据标识之间的一一对应关系,第二对应关系表示基于多条数据生成的多个行主键和多个内部数据标识之间的一一对应关系,并且,数据的内部数据标识在该数据对应的索引分区中是唯一的,这样,当多个数据文件被合并为一个数据文件时,该第二对应关系不会发生变化,进而,该第一对应关系也不会发生变化,从而,当查询满足查询条件的数据时,可以快速地从原先缓存在本文档来自技高网...

【技术保护点】
1.一种用于查询数据的方法,其特征在于,所述方法包括:获取第一数据;根据所述第一数据中的L列数据生成P个索引键,所述L为大于或等于1的整数,所述P为大于1的整数;根据所述P个索引键、所述第一数据的行主键和所述第一数据的内部数据标识,在所述第一数据对应的第一索引分区中更新第一索引信息,所述第一数据的行主键用于在数据区中查找所述第一数据,所述第一数据的内部数据标识在所述第一索引分区中是唯一的,所述第一索引信息包括针对已存储的M条数据的第一对应关系和第二对应关系,其中,所述第一对应关系表示基于所述M条数据生成的N个索引键与N组内部数据标识之间的一一对应关系,每组内部数据标识包括所述M条数据中的至少一条数据的内部数据标识,所述每组内部数据标识是用于标识满足对应的索引键的数据的标识,所述第二对应关系表示基于所述M条数据生成的M个行主键和所述M条数据的M个内部数据标识之间的一一对应关系,所述M和所述N都为大于或等于1的整数。

【技术特征摘要】
1.一种用于查询数据的方法,其特征在于,所述方法包括:获取第一数据;根据所述第一数据中的L列数据生成P个索引键,所述L为大于或等于1的整数,所述P为大于1的整数;根据所述P个索引键、所述第一数据的行主键和所述第一数据的内部数据标识,在所述第一数据对应的第一索引分区中更新第一索引信息,所述第一数据的行主键用于在数据区中查找所述第一数据,所述第一数据的内部数据标识在所述第一索引分区中是唯一的,所述第一索引信息包括针对已存储的M条数据的第一对应关系和第二对应关系,其中,所述第一对应关系表示基于所述M条数据生成的N个索引键与N组内部数据标识之间的一一对应关系,每组内部数据标识包括所述M条数据中的至少一条数据的内部数据标识,所述每组内部数据标识是用于标识满足对应的索引键的数据的标识,所述第二对应关系表示基于所述M条数据生成的M个行主键和所述M条数据的M个内部数据标识之间的一一对应关系,所述M和所述N都为大于或等于1的整数。2.根据权利要求1所述的方法,其特征在于,所述根据所述第一数据中的L列数据生成P个索引键Key,包括:在[1,L]范围内对i遍历取值,通过以下步骤生成所述P个索引键:从以下任意一项中,提取至少一个关键词,所述任意一项包括:所述第一数据的第i列数据中的至少一个分词,或,所述第一数据的行主键,或,所述第一数据的第i列数据的列名,其中,所述至少一个关键词与所述第i列数据中的至少一个分词一一对应,若所述任意一项包括所述第一数据的第i列数据中的至少一个分词,则每个关键词包括对应于所述每个关键词的分词,或,若所述任意一项包括所述第一数据的第i列数据中的至少一个分词和所述第一数据的行主键,则每个关键词包括对应于所述每个关键词的分词和所述第一数据的行主键中的关键词,或,若所述任意一项包括所述第一数据的第i列数据中的至少一个分词和所述第一数据的第i列数据的列名,则每个关键词包括对应于所述每个关键词的分词和所述第一数据的第i列数据的列名;根据所述至少一个关键词中的每个关键词生成对应于所述每个关键词的索引键。3.根据权利要求2所述的方法,其特征在于,所述根据所述至少一个关键词中的每个关键词生成对应于所述每个关键词的索引键,包括:由所述每个关键词、所述第一数据的第i列数据的列名和用于标识所述第一索引分区的第一索引分区标识生成对应于所述每个关键词的索引键。4.根据权利要求2所述的方法,其特征在于,所述根据所述至少一个关键词中的每个关键词生成对应于所述每个关键词的索引键,包括:由所述每个关键词和用于标识所述第一索引分区的第一索引分区标识生成对应于所述每个关键词的索引键。5.根据权利要求1至4中任一项所述的方法,其特征在于,所述第一索引信息存储在第一存储区中,所述M条数据存储在第二存储区中,所述第一存储区与所述第二存储区是隔离的。6.一种用于查询数据的方法,其特征在于,所述方法包括:获取查询条件;根据S个索引分区中每个索引分区的索引信息中的第一对应关系查询满足所述查询条件的目标数据的内部数据标识,所述内部数据标识在所述目标数据对应的索引分区中是唯一的,所述S个索引分区为根据所述查询条件确定的索引分区,其中,所述第一对应关系表示基于多条数据生成的多个索引键与多组内部数据标识之间的一一对应关系,每组内部数据标识包括所述多条数据中的至少一条数据的内部数据标识,所述每组内部数据标识是用于标识满足对应的索引键的数据的标识;根据所述目标数据的内部数据标识和所述每个索引分区的索引信息中的第二对应关系,查询满足所述目标数据的行主键,并根据所述目标数据的行主键生成包括所述目标数据的查询结果,其中,所述第二对应关系表示基于所述多条数据生成的多个行主键和所述多条数据的多个内部数据标识之间的一一对应关系,所述行主键用于在数据区中查找数据;反馈所述查询结果。7.根据权利要求6所述的方法,其特征在于,所述S个索引分区的索引信息存储在第一存储区中,所述S个索引分区对应的数据存储在第二存储区中,所述第一存储区与所述第二存储区是隔离的。8.一种用于查询数据的装置,其特征在于,所述装置包括处理单元,所述处理单元用于:获取第一数据;根据所述第一数据中的L列数据生成P个索引键,所述L为大于或等于1的整数,所述P为大于1的整数;根据所述P个索引键、所述第一数据的行主键和所述第一数据的内部数据标识,在所述第一数据对应的第一索引分区中更新第一索引信息,...

【专利技术属性】
技术研发人员:毕杰山钟超强
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1