主页 > 知识库 > 十分钟看懂时序数据库(III)

十分钟看懂时序数据库(III)

热门标签:硅谷的囚徒呼叫中心 使用U盘装系统 百度竞价点击价格的计算公式 阿里云 检查注册表项 网站建设 美图手机 智能手机
 

物联网邻域近期如火如荼,互联网和传统公司争相布局物联网。作为物联网邻域数据存储的首选时序数据库也越来越多进入人们的视野,而早在 2016 年 7 月,百度云在其天工物联网平台上发布了国内首个多租户的分布式时序数据库产品TSDB,成为支持其发展制造,交通,能源,智慧城市等产业领域的核心产品,同时也成为百度战略发展产业物联网的标识表记标帜性事件。

压缩对于时序数据库是至关重要的。因为时序数据库面对的物联网场景每天都会产生上亿条数据。众所周知,在大数据时代的今天数据的重要性是不言而喻的,数据就是公司的未来。但如果无法对这些时序数据进行很好的办理和压缩,那将给客户带来非常高的成本压力。

如前文提到的,工业物联网环境监控标的目的的客户,一年产生1P的数据,如果每台办事器10T的硬盘,那么总共需要 100 多台。根据每台办事器 3 万来算,一年就需要 300 万的支出,这还不包孕维护人员的成本。

压缩是个非常大的话题,本文希望能够先从大的宏不雅观角度给出一个轮廓,讲述压缩的素质,压缩的可计算性问题。再从时序数据压缩这一个垂直领域,给出无损压缩和有损压缩各一个例子进行说明,希望能够抛砖引玉。

1. 压缩的故事

先来讲个有关压缩的故事,外星人造访地球,看中了大英百科全书,想要把这套书带回去。但这套书太大,飞船放不下。于是外星人按照飞船的长度,在飞船上画了一个点。这样外星人心满意足的返回了本身的星球,因为这个点就存储了整个大英百科全书。

这个并不是很严谨的故事,却道出了压缩的素质:用计算时间换取存储空间。外星人在飞船上画的点非常有技术含量,可以说是黑科技,代表一个位数非常长的不循环小数。而这串数字正代表了整个大英百科全书的内容。

2. 压缩的两个问题

再来回答两个宏不雅观的问题,帮手我们认识在压缩这件事上哪些是我们能做的,哪些是不能做的。

第一个问题:是否存在一个通用的压缩算法(Universal Compression),也就是说某个压缩算法能够压缩任意的数据。答案是否定的,并不存在这样的通用压缩算法。

用反证法可以做个快速的证明。假设存在通用的压缩算法,也就是说有个压缩算法,对于长度为n的字符串,总能压缩到长度小于n的字符串。总共有 个长度为n的差别字符串;但却只有 个长度小于n的字符串。那么肯定存在两个长度为n的字符串A,B,经过压缩得到同一个字符串。这样解压缩算法没有措施正确的解压。所以假设错误,并不存在通用的压缩算法。

第二个问题:是否能写出一个函数,输入字符串,可以得到这个字符串最短体现的长度。答案也是否定的,也就是说我们无法证明某个算法是最好的算法。柯尔莫哥洛夫复杂性的不成计算性解释的就是这个问题。用的也是反证法,有兴趣的伴侣可以自行百度了解(注1)。

这两个问题的答案,告诉我们三件事情,1、压缩算法的选择需要具体情况具体分析,不成压缩的字符串总是存在。2、不要妄图获得最好的压缩算法,它是不成计算的。因为总有你想不到的压缩算法存在。举个例子,[一百万个 0 的字符串,以“foo”作为key,经过AES加密算法的CBC模式得到的字符串]。这串字符串看起来完全是随机的,不成压缩的。但我却用 43 个中文(中括号之间的内容)就体现了出来。3、压缩是件很难很有技术含量的事情,需要不停的挖掘,才能将他做到更好。

3. 时序数据压缩

针对差别的数据,会有差别的压缩,大致压缩的对象可以分为文档、音频、视频等。如果直接采用文档的压缩算法用于时序数据,效果并不抱负。下图是一些常用的压缩算法的benchmark,可以看到压缩率那一栏最高也只能够达到 3 摆布的压缩率(压缩率=原始数据大小/压缩后的数据大小)。更多压缩算法可以查看注2。

如果要得到更好的压缩率,我们需要采取更加适合时序数据的压缩算法。时序数据的压缩可以分为无损压缩和有损压缩。

无损压缩

无损压缩是说被压缩的数据和解压后的数据完全一样,不存在精度的损失。对数据的压缩说到底是对数据规律性的总结。时序数据的规律可以总结为两点:1、timestamp不变递增、2、数值有规律性,变革不变。下面来举个例子。

上图是一组时序数据,如果我们一行一行的看感觉压缩有点困难,但如果我们一列一列的看,压缩方案就呼之欲出了。

标签:湘潭 通辽 湖北 怀化 贺州 山南 烟台 黄山

巨人网络通讯声明:本文标题《十分钟看懂时序数据库(III)》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266