物联网领域近期如火如荼,互联网和传统公司争相布局物联网。作为物联网领域数据存储的首选,时序数据库也越来越多进入人们的视野,而早在2016年7月,百度云在其天工物联网平台上发布了国内首个多租户的分布式时序数据库产品TSDB,成为支持其发展制造,交通,能源,智慧城市等产业领域的核心产品,同时也成为百度战略发展产业物联网的标志性事件。
前文提到低成本的存储是时序数据库需要解决的一个主要问题,而上一篇文章介绍了通过针对时序数据的压缩方法,从利用数据本身特征的方面,降低时序数据的存储成本。
本文将介绍通过对数据进行分级存储,从使用不同存储介质,以及减少数据的副本数的方面,介绍如何在保证时序数据的查询性能的前提下,降低时序数据的存储成本。
1.分级存储
分级存储,就是按某一特征,将数据划分为不同的级别,每个级别的数据存储在不同成本的存储介质上。为什么需要对数据进行分级存储?为什么不把所有的数据都存储在最便宜的存储介质上?这是因为在降低存储成本的同时,还需要保证数据访问的性能(我们知道,存储介质的读写性能与成本一般成正比),分级存储是对两者比较好的平衡方法。分级存储的这一思想也体现在计算机的体系结构里(寄存器、L1/L2 Cache、内存、硬盘)。
2.时序数据的分级存储
时序数据应该按什么特征进行分级呢?时序数据的时间戳是一种非常合适的分级依据,越近期的数据查询得越多,是热数据;越久以前的数据查询得越少,是冷数据。例如,用户会经常查询一个设备的最新温度,或者查看这个设备最近1小时或者最近1天的温度曲线;很难想象用户会经常查询一个设备1年前的温度,这些1年前的数据一般会用于大数据分析或者机器学习中,而这些批处理的场景一般对查询的延时不会像交互式场景那么敏感。
如图1所示,一般可以将时序数据分为3级,第一级是最近1天的数据保存在内存缓存Cache中,第二级是最近1年的数据存储在固态硬盘SSD中,第三级是1年以上的数据存储在机械硬盘HDD中。Cache中的数据可以使用写回(write back)或者写通(write through)的策略写入SSD,而SSD中的数据可以通过后台程序定期批量的迁移到HDD。为了保证

本文探讨了时序数据库如何通过分级存储降低成本并保持查询性能。数据按时间分为内存缓存、SSD和HDD三级,近1天数据存内存,1年内数据存SSD,1年以上存HDD。此外,EC编码用于减少副本数,进一步节省存储成本。
最低0.47元/天 解锁文章
768

被折叠的 条评论
为什么被折叠?



