The invention discloses a device and a data index method, the method includes: judging whether there are duplicate storage index field in the database, and determine the index field repetitive storage storage repeat number is greater than a preset value, if so, from the preset starting time, the index field preset storage time granularities and the preset the storage time and particle size as the index information, and the primary key corresponding to the index information and the index value of the information in the memory cache, when the cache is completed, will be the primary key index information and the index information corresponding to the value, in accordance with the preset data storage format to generate a group of index records, the number of index records written to the database, through the group of index records to find the target data in the query, so for the storage of high index field generated by repeated batch Index records can query a large amount of data at once, improve the query speed, and then improve the query efficiency.
【技术实现步骤摘要】
数据索引方法及装置
本专利技术属于数据存储领域,尤其涉及一种数据索引方法及装置。
技术介绍
随着社会的发展,各行业、各领域的数据量都会不断地增长,特别是电信和互联网行业更是如此。服务器硬件及数据库配置等条件固定的情况下,存储数据量的增加导致占用资源过大,进而会影响数据查询效率。采用传统的查询方式,查询效率随着数据量不断增大,会不断的降低。用户查询的响应时间会越来越慢,甚至会出现由于查询访问量过多导致数据库无法使用的情况。现有技术中,一般采用Hadoop数据库(HBase,HadoopDatabase)对数据进行存储。HBase是一个分布式的、面向列的开源数据库。现有的查询方式是通过索引条件对单个行主键(Rowkey)访问,然后按照该Rowkey所在的域(Region),将查询数据的请求路由到该Region,以获取查询数据。使用HBase的现有的查询方式,获取100万条记录需要1000秒时间。如果全部数据均匀分布在100个Region上,那么利用并行计算特性,该100个Region同时向客户端输出数据,那么需要10秒就能将所有数据取下来,但是对于一些特殊的企业,如电信行业,每天查询的数据量在千亿条,按照这样的查询数据量,如果使用现有的HBase数据库的查询方式,及时使用并行计算特性,读取所有数据的时间也是很长的。由此可见,一旦数据量暴增,使用现有的查询方法需要很长的查询时间,从而影响查询数据的效率。
技术实现思路
本专利技术提供一种数据索引方法及装置,旨在解决由于数据量的增加,现有技术中的查询方法查询数据的时间过长,查询效率降低的问题。本专利技术提供的一种数据索 ...
【技术保护点】
一种数据索引方法,其特征在于,包括:判断数据库中是否存在重复存储的索引字段,并判断重复存储的索引字段的存储重复数是否大于预置数值;若是,则从预置起始时间开始,将预置存储时间粒度下的索引字段和所述预置存储时间粒度作为索引信息,并将所述索引信息和所述索引信息对应的行主键值缓存于内存中;当缓存完成后,将所述索引信息和所述索引信息对应的行主键值,按照预置数据存储格式生成一条批索引记录;将所述批索引记录写入到数据库中,使得在查询时通过所述批索引记录查找到目标数据。
【技术特征摘要】
1.一种数据索引方法,其特征在于,包括:判断数据库中是否存在重复存储的索引字段,并判断重复存储的索引字段的存储重复数是否大于预置数值;若是,则从预置起始时间开始,将预置存储时间粒度下的索引字段和所述预置存储时间粒度作为索引信息,并将所述索引信息和所述索引信息对应的行主键值缓存于内存中;当缓存完成后,将所述索引信息和所述索引信息对应的行主键值,按照预置数据存储格式生成一条批索引记录;将所述批索引记录写入到数据库中,使得在查询时通过所述批索引记录查找到目标数据。2.根据权利要求1所述的方法,其特征在于,所述当缓存完成后,将所述索引信息和所述索引信息对应的行主键值,按照预置数据存储格式生成一条批索引记录之前,还包括:确定缓存时间粒度,并等待缓存完成。3.根据权利要求2所述的方法,其特征在于,所述当缓存完成后,将所述索引信息和所述索引信息对应的行主键值,按照预置数据存储格式生成一条批索引记录之后,还包括:根据预置公式,计算预置时间段内的待存储的批索引记录中索引记录的数目,其中所述预置公式为:待存储的批索引记录中索引记录的数目等于所述索引字段的总数乘以所述预置时间段与所述缓存时间粒度之间的比值,所述预置时间为分子,所述缓存时间粒度为分母。4.根据权利要求1-3任一项所述的方法,其特征在于,当缓存完成后,将所述索引信息和所述索引信息对应的行主键值,按照预置数据存储格式生成一条批索引记录,包括:将所述索引信息对应的行主键值整合为行主键集合;将所述索引信息和所述索引信息对应的行主键集合生成所述批索引记录。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在待查询时间段内,从所述数据库中查找与待查询索引字段对应的行主键集合;根...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。