- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 1
PAGE 1
十分钟看懂时序数据库-分级存储
本文将介绍通过对数据进行分级存储,从使用不同存储介质,以及削减数据的副本数的方面,介绍如何在保证时序数据的查询性能的前提下,降低时序数据的存储成本。 物联网领域近期如火如荼,互联网和传统公司争相布局物联网。作为物联网领域数据存储的首选,时序数据库也越来越多进入人们的视野,而早在2016年7月,百度云在其天工物联网平台上发布了国内首个多租户的分布式时序数据库产品TSDB,成为支持其发展制造,交通,能源,智慧城市等产业领域的核心产品,同时也成为百度战略发展产业物联网的标志性事件。 前文提到低成本的存储是时序数据库需要解决的一个主要问题,而上一篇文章介绍了通过针对时序数据的压缩方法,从利用数据本身特征的方面,降低时序数据的存储成本。 本文将介绍通过对数据进行分级存储,从使用不同存储介质,以及削减数据的副本数的方面,介绍如何在保证时序数据的查询性能的前提下,降低时序数据的存储成本。 1.分级存储分级存储,就是按某一特征,将数据划分为不同的级别,每个级别的数据存储在不同成本的存储介质上。为什么需要对数据进行分级存储?为什么不把全部的数据都存储在最廉价的存储介质上?这是因为在降低存储成本的同时,还需要保证数据访问的性能(我们知道,存储介质的读写性能与成本一般成正比),分级存储是对两者比较好的平衡方法。分级存储的这一思想也体现在计算机的体系结构里(寄存器、L1/L2Cache、内存、硬盘)。 2.时序数据的分级存储时序数据应当按什么特征进行分级呢?时序数据的时间戳是一种特别合适的分级依据,越近期的数据查询得越多,是热数据;越久以前的数据查询得越少,是冷数据。例如,用户会经常查询一个设备的最新温度,或者查看这个设备最近1小时或者最近1天的温度曲线;很难想象用户会经常查询一个设备1年前的温度,这些1年前的数据一般会用于大数据分析或者机器学习中,而这些批处理的场景一般对查询的延时不会像交互式场景那么敏感。 如图1所示,一般可以将时序数据分为3级,第一级是最近1天的数据保存在内存缓存Cache中,第二级是最近1年的数据存储在固态硬盘SSD中,第三级是1年以上的数据存储在机械硬盘HDD中。Cache中的数据可以使用写回(writeback)或者写通(writethrough)的策略写入SSD,而SSD中的数据可以通过后台程序定期批量的迁移到HDD。为了保证数据长久性,一般会为数据保存2个或者3个副本,通过EC编码可以将副本数降低到1.5甚至更低,但却不影响数据的长久性。不过EC编码会消耗更多的CPU和网络带宽,进而影响查询性能,因此一般只应用在存储冷数据的HDD上。 图1时序数据的分级存储 3.内存缓存时序数据库大部分恳求的数据都集中在最近1天,将这些数据保存在内存中,可以保证这些数据能被快速的读取。虽然内存的访问速度快,但是成本很高(价格大约比SSD高一个数量级),并且容量有限。因此需要对数据进行压缩,以削减每个数据的内存占用,压缩相关的内容已经在上一篇文章中进行了介绍,在这里不再赘述。另一方面,由于内存中的数据是易失的、非长久化的,一旦重启进程或者重启机器后就会丢失,假如不恢复数据,全部恳求将落到下一级的存储上,对下一级存储造成巨大的压力。因此一般会在写入内存的同时写入本地硬盘,在重启后重新加载到内存中。 Beringei(注1)是Facebook开源的一款内存时序数据库,是Facebook发表的Gorilla论文(注2)的开源实现。Beringei使用一种三级的内存数据结构,如图2所示,其中第一级为分片索引,第二级为时间序列索引,第三级为时序数据,通过该数据结构可以支持快速的数据读写;Beringei实现了一种高效的流式的压缩算法,从而使内存占用最小化;Beringei支持写入内存的同时写入硬盘,并在重启后恢复数据。然而Beringei也有一些限制,譬如只支持浮点型数值、时间精度只到秒、只能按时间戳顺序的写入数据。 图2Beringei的内存数据结构(注2) 4.SSD与HDD用户有时会关注时序数据在过去1周、过去1个月、过去1年的趋势,把最近1年的数据存储在固态硬盘SSD上,可以实现在秒级甚至亚秒级读取过去1年的数据。而1年以上的时序数据则很少用于交互式查询,这些数据往往会用于大数据分析或者机器学习,这些批处理场景对查询的延时不会像交互式场景那么敏感,因此可以把这些1年以上的数据存储在机械硬盘HDD上。 SSD的价格大约是HDD的几倍,但是SSD的性能要远远高于HDD。在前文中我们介绍过,时序数据库会对时序数据进
您可能关注的文档
最近下载
- 中华民族共同体概论课件专家版3第三讲 文明初现与中华民族起源(史前时期).pptx VIP
- 2025延安安塞区社区工作者招聘(18人)笔试备考题库及答案解析.docx VIP
- 四库全书基本概念系列文库:临晋县志.pdf VIP
- 2025延安安塞区社区工作者招聘(18人)笔试备考试题及答案解析.docx VIP
- 医院绿色环保与节能减排.pptx VIP
- 《研学旅行课程设计》课件——任务六 设计研学课程内容.pptx VIP
- 人工智能与中学化学教学中的应用教学研究课题报告.docx
- 山东省德州市乐陵市2024-2025学年七年级上学期期中考试数学试卷.docx VIP
- 高一上学期地理期中试卷.doc VIP
- Arduino技术及应用教程.ppt VIP
原创力文档


文档评论(0)