一种应用驱动的数据存储与索引方法技术

技术编号:21832488 阅读:25 留言:0更新日期:2019-08-10 17:56
本发明专利技术公开了一种应用驱动的数据存储与索引方法。数据按列存储,单个文件存储内容只包含一个字段,每一个字段前有一个标志位,相应的其他字段也有相应的标志位,同一条记录的不同字段在不同的文件中拥有相同的行数标志,索引方法采用B+树的形式,将文件名称包含的三个字段作为建立B+树的数据,取该文件的字段范围的最大值为key,起始时间的前五位为value建立一颗B+树,取该文件的字段范围的最小值为key,起始时间的后五位为value建立一颗B+树;查询该字段的时间同时查询两颗B+树,将查询结果组合成范围,加上字段标志定位到文件,最后在文件中去查询具体内容。本发明专利技术提高存储空间的使用效率,提供较高的索引速率。

An Application-driven Data Storage and Index Method

【技术实现步骤摘要】
一种应用驱动的数据存储与索引方法
本专利技术涉及一种应用驱动的数据存储与索引方法,属于数据处理

技术介绍
随着互联网信息的增长,大量的数据需要被存储,也就需要更多的硬盘设备。数据量不断增长,数据的类型也在不断的增加。话单作为众多数据中的一种,其数据量在增加的同时,话单格式中的字段也在不断的扩展。不同的应用类型对数据的存储和分析需求是各不相同的,为根据不同的数据类型定制不同的方案,无疑要比统一的储存平台更能有效率。应用驱动就是指的为不同应用的需求定制差异化的存储方案。多维度,指的是多个角度。使用者通过特定的方法,能够快速的、有效率的得到自己需要的特定角度的数据,这对后续的工作是大有裨益的。后续的分析不需要再对数据进行二次加工,就可以得到进行分析特定的基础数据。话单数据目前面临两种情况:一是储存在传统关系数据库中,传统数据库在处理短期数据时相对灵活、有绝对的优势。但是面临海量数据的时候,其储存方式对后续的数据分析无法提供有效的帮助;二是采用了分布式处理的方案,直接采用某些通用的分布式技术,在数据规模和查询速率有所保证,但是成本较高,没有充分挖掘出话单数据应有的价值。为了提高话单数据的应用价值、应对话单字段的扩展,找到合适的储存和索引方法变得尤为重要。
技术实现思路
有鉴于此,本专利技术提供了一种应用驱动的数据存储与索引方法,随着信息的增长,使用者对数据的使用频率越来越高,提供一种有效的在存储的基础上进行灵活的索引的方法。该方法能提高存储空间的使用效率,也能提供较高的索引速率。本专利技术通过以下技术手段解决上述技术问题:本专利技术的一种应用驱动的数据存储方法,数据按列存储,每一列之间不完全独立,单个文件存储内容只包含一个字段,每一个字段前有一个标志位,表示该字段位于该文件的第几个存储内容,相应的其他字段也有相应的标志位,同一条记录的不同字段在不同的文件中拥有相同的行数标志;文件名称包含三个字段:字段标志、存储该文件的起始时间、该字段在该文件中的范围,存储该文件的起始时间字段保证该文件的唯一性,字段标志和该字段在该文件中的范围字段确保后续索引的建立。一种应用驱动的数据索引方法,索引方法采用B+树的形式,其包括:将文件名称包含的三个字段作为建立B+树的数据,取该文件的字段范围的最大值为key,起始时间的前五位为value建立一颗B+树,同样的,取该文件的字段范围的最小值为key,起始时间的后五位为value建立一颗B+树;查询该字段的时间同时查询两颗B+树,将查询结果组合成范围,加上字段标志定位到文件,最后在文件中去查询具体内容。一种应用驱动的数据存储方法,三个字段内容前放置标志位,每获取一条信息,就将经过编码的字段内容与相应内存中的数据进行比对,如果已经存在相同的内容,就将新获取的字段内容相对应的经过编码后的标志位添加到已经存在的字段前面,如果不存在内容,就将新的字段和标志位编码后添加到相应内存中。一种应用驱动的数据索引方法,基于内存中的数据已经写入文件,获取B+树的叶子结点有两种方式,一是从内存变量中获取,随时监控内存动态,当执行写入文件操作时获取到起始时间和字段范围,二是直接从文件名称获取;获取文件名中的时间和字段范围,标准时间长度位10,划分位两个字段各五位,同时取出字段范围的最大值和最小值,最大值和时间的前五位组成一个字典,最大值位key,时间的前五位为value,最小值和时间的后五位组成一个字典,最小值为key,时间的后五位为value;将获取的key-value键值对作为B+树的叶子结点,建立两颗B+树。查询的时候同时在两颗B+树中查询,将查询到的结果组成字段范围,加上字段标志,在文件列表中查找相应的文件。B+树的建立和更新流程如下:步骤1:判断该key-value是否是叶子结点,若是则转向步骤3,不是则转向步骤2;步骤2:判断叶子节点个数、子节点类型,如果节点个数大于1,则采用二分法查找插入位置,如果节点数目为1,则比较key的大小,然后判断节点类型;如果节点类型为叶子结点,则转向步骤3,如果节点类型为非叶子结点,则继续步骤2;步骤3:判断叶子节点的状态,如果节点状态为空,则插入数据,不为空,则判断叶子结点的个数,当叶子结点个数大于1,则采用二分法查找插入位置,然后转向步骤4,当叶子结点个数等于1,则直接转向步骤4;步骤4:比较叶子结点和数据的大小,判断叶子结点是否满,如果叶子结点未满,则插入数据,如果叶子结点满,则进行B+树的分裂,转向步骤5;步骤5:创建父节点,如果是,则插入数据,如果不是则判断节点个数、节点类型,节点未满,则插入数据,节点满则继续步骤5。本专利技术将数据划分为指定大小的文件储存,并将时间字段、数据相关信息存储到文件名,可保证文件的唯一性和一定的信息量;使用二进制表示标志位,减少文件名的长度;当同一个字段的内容差别不是很大,使用前向差值法可有效节省硬盘空间;使用B+树建立索引,即使数据量增大,查询效率也不会明显的降低;采用列存储的方式,可以灵活选取需要的字段查询以及提取。本专利技术的有益效果:随着信息的增长,使用者对数据的使用频率越来越高,提供一种有效的在存储的基础上进行灵活的索引的方法,该方法能提高存储空间的使用效率,也能提供较高的索引速率。附图说明下面结合附图和实施例对本专利技术作进一步描述。图1是本专利技术实施例1提供的一种存储数据的方法流程图;图2是本专利技术实施例2提供的一种建立索引的方法流程图;图3是B+树的建立和更新流程图。具体实施方式以下将结合附图对本专利技术进行详细说明,如图1、2和3所示:本实施例的为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步的详细描述。一种应用驱动的数据存储方法,数据按列存储,每一列之间不完全独立,单个文件存储内容只包含一个字段,每一个字段前有一个标志位,表示该字段位于该文件的第几个存储内容,相应的其他字段也有相应的标志位,同一条记录的不同字段在不同的文件中拥有相同的行数标志;文件名称包含三个字段:字段标志、存储该文件的起始时间、该字段在该文件中的范围,存储该文件的起始时间字段保证该文件的唯一性,字段标志和该字段在该文件中的范围字段确保后续索引的建立。一种应用驱动的数据索引方法,索引方法采用B+树的形式,其包括:将文件名称包含的三个字段作为建立B+树的数据,取该文件的字段范围的最大值为key,起始时间的前五位为value建立一颗B+树,同样的,取该文件的字段范围的最小值为key,起始时间的后五位为value建立一颗B+树;查询该字段的时间同时查询两颗B+树,将查询结果组合成范围,加上字段标志定位到文件,最后在文件中去查询具体内容。一种应用驱动的数据存储方法,三个字段内容前放置标志位,每获取一条信息,就将经过编码的字段内容与相应内存中的数据进行比对,如果已经存在相同的内容,就将新获取的字段内容相对应的经过编码后的标志位添加到已经存在的字段前面,如果不存在内容,就将新的字段和标志位编码后添加到相应内存中。一种应用驱动的数据索引方法,基于内存中的数据已经写入文件,获取B+树的叶子结点有两种方式,一是从内存变量中获取,随时监控内存动态,当执行写入文件操作时获取到起始时间和字段范围,二是直接从文件名称获取;获取文件名中的时间和字段范本文档来自技高网...

【技术保护点】
1.一种应用驱动的数据存储方法,其特征在于:数据按列存储,每一列之间不完全独立,单个文件存储内容只包含一个字段,每一个字段前有一个标志位,表示该字段位于该文件的第几个存储内容,相应的其他字段也有相应的标志位,同一条记录的不同字段在不同的文件中拥有相同的行数标志;文件名称包含三个字段:字段标志、存储该文件的起始时间、该字段在该文件中的范围,存储该文件的起始时间字段保证该文件的唯一性,字段标志和该字段在该文件中的范围字段确保后续索引的建立。

【技术特征摘要】
1.一种应用驱动的数据存储方法,其特征在于:数据按列存储,每一列之间不完全独立,单个文件存储内容只包含一个字段,每一个字段前有一个标志位,表示该字段位于该文件的第几个存储内容,相应的其他字段也有相应的标志位,同一条记录的不同字段在不同的文件中拥有相同的行数标志;文件名称包含三个字段:字段标志、存储该文件的起始时间、该字段在该文件中的范围,存储该文件的起始时间字段保证该文件的唯一性,字段标志和该字段在该文件中的范围字段确保后续索引的建立。2.根据权利要求1所述的一种应用驱动的数据索引方法,其特征在于:索引方法采用B+树的形式,其包括:将文件名称包含的三个字段作为建立B+树的数据,取该文件的字段范围的最大值为key,起始时间的前五位为value建立一颗B+树,同样的,取该文件的字段范围的最小值为key,起始时间的后五位为value建立一颗B+树;查询该字段的时间同时查询两颗B+树,将查询结果组合成范围,加上字段标志定位到文件,最后在文件中去查询具体内容。3.根据权利要求1所述的一种应用驱动的数据存储方法,其特征在于:三个字段内容前放置标志位,每获取一条信息,就将经过编码的字段内容与相应内存中的数据进行比对,如果已经存在相同的内容,就将新获取的字段内容相对应的经过编码后的标志位添加到已经存在的字段前面,如果不存在内容,就将新的字段和标志位编码后添加到相应内存中。4.根据权利要求2所述的一种应用驱动的数据索引方法,其特征在于:基于内存中的数据已经写入文件,获取B+树的叶子结点有两种方式,一是从内存变量中获取,随时监控内存动态...

【专利技术属性】
技术研发人员:董世旭
申请(专利权)人:恒为科技上海股份有限公司
类型:发明
国别省市:上海,31

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

1