【技术实现步骤摘要】
一种数据存储方法及装置
本专利技术涉及数据存储领域,特别涉及一种数据存储方法及装置。
技术介绍
随着互联网的快速发展,数据量变得越来越大,尤其是一些如埋点日志和监控日志等的非核心数据变得非常庞大,如果继续使用传统的数据存储方式进行这些海量数据的存储,不仅会造成大量存储资源的浪费,还会使得数据的查询速度变得非常慢。例如,目前使用较为广泛的压缩比较低的Mysql数据库,采用了占用内存空间较大的B+树索引。由于Mysql数据库的压缩比较低,如果当被存储数据的大小为a时,其存储该存储数据所占用的存储空间大小则近似为a,那么与该存储数据对应的B+树索引所占用的存储空间大小也近似为a。这相当于,Mysql数据库存储大小为a的数据,需要占用大小为2a的内存空间。因此,虽然Mysql数据库用于小量数据的存储时,尽管与小量数据对应的B+树索较大,可是由于数据量本身很小,所以仍然可以将与小数据量数据对应的完整的B+树索引全部存储于内存中,不会造成内存替换,使得数据的查询速度很快,但是,当Mysql数据库用于海量数据的存储时,由于与海量数据对应的B+树索引较大,所以无法将完整的B+树索 ...
【技术保护点】
一种数据存储方法,其特征在于,包括:在当前数据写入之前,当无未存满分块时,在表分区中建立包含有列存储文件的分块;将所述当前数据按列拆分,并将所述当前数据按列并发写入当前列存储文件;在所述当前数据写入完毕后,在当前分块中建立与各所述当前列存储文件对应的分块索引,并在所述分块索引中记录所述当前列存储文件中的最大数据、最小数据、已存数据总量、空数据总量、各所述已存数据之和及所述已存数据的平均值;在写入数据全部写入完毕后,在当前表分区中建立与所述当前表分区中的指定分区段对应的分区索引,并在所述分区索引中记录所述指定分区段中的最大数据和最小数据。
【技术特征摘要】
1.一种数据存储方法,其特征在于,包括:在当前数据写入之前,当无未存满分块时,在表分区中建立包含有列存储文件的分块;将所述当前数据按列拆分,并将所述当前数据按列并发写入当前列存储文件;在所述当前数据写入完毕后,在当前分块中建立与各所述当前列存储文件对应的分块索引,并在所述分块索引中记录所述当前列存储文件中的最大数据、最小数据、已存数据总量、空数据总量、各所述已存数据之和及所述已存数据的平均值;在写入数据全部写入完毕后,在当前表分区中建立与所述当前表分区中的指定分区段对应的分区索引,并在所述分区索引中记录所述指定分区段中的最大数据和最小数据。2.根据权利要求1所述的数据存储方法,其特征在于,所述当无未存满分块时,在表分区中建立包含有列存储文件的分块具体包括:当无未存满表分区时,新建当前表分区,并在所述当前表分区中建立包含有所述列存储文件的所述分块。3.根据权利要求1所述的数据存储方法,其特征在于,还包括:在所述写入数据写入完毕之后,扫描当前存储目录下已写入的文件数据;当扫描到已存满分块中的所述列存储文件存储有未压缩数据时,压缩所述未压缩数据。4.根据权利要求1-3任意一项所述的数据存储方法,其特征在于,还包括:在所述当前数据写入完毕后,计算所述当前列存储文件中最大数据和最小数据的差值,并将所述差值均匀划分为N个范围段;在所述当前分块中建立与各所述当前列存储文件对应的范围段索引,并在所述范围段索引中,标记所述当前列存储文件中数值型数据的分布情况;其中,N为正整数。5.根据权利要求4所述的数据存储方法,其特征在于,还包括:在所述当前数据写入完毕后,在所述当前分块中建立与各所述当前列存储文件对应的字符位索引,并在所述字符位索引中,标记所述当前列存储文件中字符型数据的分布情况。6.根据权利要求5所述的数据存储方法,其特征在于,还包括:在所述当前数据写入完毕后,将与所述当前列存储文件对应的各索引加载至JAVA虚拟机内存;当接收查询请求时,如果所述JAVA虚拟机内存中存储有与当前查询数据所在的所述列存储文...
【专利技术属性】
技术研发人员:王旭,
申请(专利权)人:杭州时趣信息技术有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。