[发明专利]一种基于redis的高效Hbase分页查询方法在审
申请号: | 201811019690.X | 申请日: | 2018-09-03 |
公开(公告)号: | CN109460404A | 公开(公告)日: | 2019-03-12 |
发明(设计)人: | 朱静轩;郑川;章文友;孟彦 | 申请(专利权)人: | 中新网络信息安全股份有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2453;G06F16/2455 |
代理公司: | 上海精晟知识产权代理有限公司 31253 | 代理人: | 冯子玲 |
地址: | 230088 安徽省合肥*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 查询 分页 查询条件 缓存 分页信息 缓存技术 扫描数据 数据生成 数据行数 条件生成 相关信息 信息保存 最大条数 页码 表数据 存储 扫描 查找 保存 响应 | ||
1.一种基于redis的高效Hbase分页查询方法,其特征在于,其包括如下步骤:
Step1,对Hbase表的数据生成Rowkey;
Step2,设置扫描数据的最大条数;
Step3,根据所查询的页码和每页的数据行数以及其他查询条件,生成查询范围startRow、endRow,以及pagefilter;
Step4,根据查询条件生成redis中用于存储Rowkey信息的key;
Step5,根据查询条件从Hbase中scan,并将扫描出来的当前页、前两页和后两页第一条数据的rowKey信息保存到redis中,具体步骤如下:
1)根据查询条件判断当前页Rowkey信息在redis中是否存在;
2)根据查询条件判断当前页的前两页以及后两页Rowkey信息在redis中是否存在;
3)如果当前页Rowkey信息在redis中存在,以该Rowkey作为startRow,设置数据总数total初始值为(pageIndex-1)*pageSize;
4)根据设置的条件对Hbase表进行scan遍历,每读取一条数据total+1,当scan出来的result为空或者total值为扫描最大条数的倍数时停止遍历,遍历过程中判断当前页n,当前页前两页n-1、n-2,当前页后两页n+1、n+2Rowkey信息在redis中是否存在,如果不存在则写入redis中,并返回计算出的数据总数total;
5)从redis中取出当前页的Rowkey信息作为startRow,加上之前的endRow和pageSize生成pageFilter到Hbase中取出指定页码和条数的数据;
Step6,取数据的时候直接从redis中查找。
2.根据权利要求1所述的一种基于redis的高效Hbase分页查询方法,其特征在于,所述Step1中的Hbase表中数据根据Rowkey的字典顺序排序,具体排序方法为:将数据Rowkey中的时间使用一个数字常量减去数据实际时间进行存储,即:Tm-Tc,其中,Tm为常量Long.MAX,Tc为数据实际时间。
3.根据权利要求1所述的一种基于redis的高效Hbase分页查询方法,其特征在于,所述Step3中获取指定页码的startRow存储在redis中的key,所述key的存储规则为:项目名称+域名称+方法名称+查询参数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中新网络信息安全股份有限公司,未经中新网络信息安全股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811019690.X/1.html,转载请声明来源钻瓜专利网。