[发明专利]一种更新索引数据的方法和装置在审
申请号: | 201911081490.1 | 申请日: | 2019-11-07 |
公开(公告)号: | CN112783904A | 公开(公告)日: | 2021-05-11 |
发明(设计)人: | 张志刚 | 申请(专利权)人: | 北京沃东天骏信息技术有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/22 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 张一军;王安娜 |
地址: | 100176 北京市北京经济技术*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 更新 索引 数据 方法 装置 | ||
本发明公开了一种更新索引数据的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:生成待存储数据,将所述待存储数据存储到数据库的一级索引表中;从本地缓存或者所述一级索引表中提取所述待存储数据的主键和索引值,计算所述索引值的哈希值;基于所述索引值的哈希值将所述待存储数据的主键和索引值分发到线程中;将所述待存储数据的主键和索引值存储到所述数据库的二级索引表中。该实施方式能够解决重构索引数据较为耗时,不能实时地构建索引数据,还会加重服务端的负担或者导致索引数据丢失的技术问题。
技术领域
本发明涉及计算机技术领域,尤其涉及一种更新索引数据的方法和装置。
背景技术
在大数据流式计算应用场景中,如果需要对持久化数据进行读写,往往会将持久化数据写入数据库,比如HBase(一个分布式的、面向列的开源数据库),HBase的特点是容量巨大,对基于rowkey的查询也非常快。
然而单纯的基于rowkey的查询,有时并不能满足业务的需要,如果需要根据某一列的值进行查询,HBase的查询效率就会很低。这种情况下HBase原生提供的方案是创建一个Scan,并通过设置SingleColumnValueFilter(条件查询语句)进行查询,只是这种方法需要对指定rowkey范围内的数据进行遍历,对于那些无法指定rowkey范围的查询,Scan则会进行全表扫描,因此其效率也非常低。
为了解决这一问题,特引入HBase二级索引的概念,将一级索引表中某一列的值与其对应的rowkey保存到二级索引表中,二级索引表的rowkey即为该列的值,该二级索引表中保存的索引值为一级索引表中的rowkey。当需要根据列值进行查询时,先在二级索引表中进行get查询,得到对应的索引值(即第一索引表中的rowkey),再根据rowkey在一级索引表中进行get查询,得到真正想要的业务数据。虽然将一步操作变成了两步,但是由于避免了大量无用的数据遍历扫描,其效率要比一般的Scan效率高得多。但是,HBase本身并未直接支持这种“二级索引”,因此需要自行构建这些索引数据。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
重构索引数据较为耗时,不能实时地构建索引数据,还会加重服务端的负担或者导致索引数据丢失。
发明内容
有鉴于此,本发明实施例提供一种更新索引数据的方法和装置,以解决现有技术中存在的技术问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种更新索引数据的方法,包括:
生成待存储数据,将所述待存储数据存储到数据库的一级索引表中;
从本地缓存或者所述一级索引表中提取所述待存储数据的主键和索引值,计算所述索引值的哈希值;
基于所述索引值的哈希值将所述待存储数据的主键和索引值分发到线程中;
将所述待存储数据的主键和索引值存储到所述数据库的二级索引表中。
可选地,基于所述索引值的哈希值将所述待存储数据的主键和索引值分发到线程中,包括:
将所述索引值的哈希值相同的所述待存储数据的主键和索引值分发到同一个线程。
可选地,将所述待存储数据的主键和索引值存储到所述数据库的二级索引表中,包括:
按照分发时间戳由小到大的顺序,依次将所述待存储数据的主键和索引值存储到所述数据库的二级索引表中。
可选地,在将所述待存储数据的主键和索引值存储到所述数据库的二级索引表中之后,还包括:
将所述待存储数据的主键和索引值存储到本地缓存中。
可选地,在所述二级索引表中,主键为所述待存储数据的索引值,索引值为所述待存储数据的主键。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京沃东天骏信息技术有限公司,未经北京沃东天骏信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911081490.1/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置