[发明专利]一种NoSQL数据库的数据存储、查询方法和装置以及一种rowKey全组合的生成方法和装置有效
申请号: | 201610425195.3 | 申请日: | 2016-06-15 |
公开(公告)号: | CN107515867B | 公开(公告)日: | 2021-06-29 |
发明(设计)人: | 张一淳 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/24 |
代理公司: | 北京清源汇知识产权代理事务所(特殊普通合伙) 11644 | 代理人: | 冯德魁 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 nosql 数据库 数据 存储 查询 方法 装置 以及 rowkey 组合 生成 | ||
本申请提供一种NoSQL数据库的数据存储方法,包括:获取设定数量个字段的包括至少一个不重复rowKey的rowKey全组合和一个待添加的字段;依次对所述设定数量个字段的rowKey全组合中的每一个rowKey,执行添加字段的步骤,包括:在所述rowKey后加上所述待添加的字段,生成一个新的rowKey;若所述rowKey中的字段的个数满足设定的条件,则在所述rowKey前加上所述待添加的字段并去除所述rowKey中的最后一个字段,生成一个新的rowKey;获取生成的每一个新的rowKey所对应的数据,并将所述数据存储于在所述NoSQL数据库中对应所述新的rowKey的一行。本申请还提供一种NoSQL数据库的查询方法和一种多字段rowKey的全组合的生成方法。本申请可以解决现有技术方案查询时间效率低并且无法做到直接生成rowKey全组合最优解的问题。
技术领域
本申请涉及计算机数据库数据存储和数据查询技术领域,具体涉及一种NoSQL数据库的数据存储、查询方法和装置。本申请还涉及一种rowKey全组合的生成方法和装置。
背景技术
在大规模的分布式系统的监控场景中,用户经常需要查询监控数据以及其历史数据。一方面,由于监控数据的数据量巨大,一般都存储监控数据于NoSQL数据库中;另一方面,由于监控数据通常都可以通过多个维度进行描述,查询时查询条件的字段组合形式也会非常多。这增加了数据库存储监控数据和建立其索引的复杂程度。
为了快速响应用户的查询监控数据的需求,大部分技术方案都采用以空间换时间的方式。取决于在数据库中存储原始数据份数的不同,实施以空间换时间的方式可以分为两类:一类是在NoSQL数据库中存储一份原始数据,为原始数据建立比较大的索引表来记录其不同字段组合成的过滤条件和对应原始数据的rowKey值;当用户进行查询时,从索引表获取到满足条件的rowKey值,再根据rowKey值进行具体原始数据的查询;另一类是在NoSQL数据库中存储多份原始数据,将原始数据按照其不同字段组合成的过滤条件来生成或查询直接对应的rowKey;当用户进行查询时,按照生成或查询到的rowKey来直接获取对应的原始数据。
无论采用以上哪一类方式,都需要计算和生成出多个字段rowKey的所有组合方法。目前被业界普遍用来生成这个多字段rowKey全组合的方法就是:直接循环枚举每个字段是否出现在查询条件中来生成了N个字段的全组合方式共2^N-1,再对每种组合方式生成相应的所有排列方式,最后再对生成序列的包含关系进行去重,从而得到最优解的rowKey全组合。
目前业界通用的生成多字段rowKey的全组合的方法的第一个缺点就是耗时时间较长,生成N个字段的全组合方式的时间复杂度是O(2^N),针对所有的序列需要生成相应的全排列方式平均至少也需要O((N/2)!),去重时由于最优解有C(N,Ceil(N/2))个,所以遍历时间最好的情况仍需要O(C(N,Ceil(N/2)));如果直接生成N个字段的全排列也需要O(N!),所以这种通用的生成全组合序列方法的时间复杂度会远大于O(2^N)*(C(N,Ceil(N/2)))。
业界通用的生成多字段rowKey的全组合的方法的第二个缺点,也是最严重的问题,是由于去重的比较都是按照前缀来做的,所以一般保留的结果都是长度为N的序列,因此这种去重的效果无法保证生成的序列是最优解。因为仅仅个数相同是远远不够的,还要保证能够形式的相同,否则在字段动态增加和减少的时候,重新生成了新的序列是和老的序列不兼容,会导致没有新字段的老数据无法再查询到。
发明内容
本申请提供一种NoSQL数据库的数据存储、查询方法和装置以及一种多字段rowKey的全组合的生成方法和装置,以解决现有技术方案查询时间效率低并且无法做到直接生成rowKey全组合最优解的问题。
本申请提供一种NoSQL数据库的数据存储方法,包括:
获取设定数量个字段的包括至少一个不重复rowKey的rowKey全组合和一个待添加的字段;所述rowKey,包括:至少一个以上的不重复的所述设定数量个字段的组合;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610425195.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据操作方法、装置和系统
- 下一篇:搜索方法及装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置