DTCC 2019 | 阿里云TSDB: 教你解锁时序时空数据库的种种黑科技( 十 )

阿里云时序时空TSDB引擎具有很多的核心技术 , 在本次分享中主要为大家介绍数据压缩、时序索引以及聚合引擎三个方面的核心技术 。

数据压缩

时序数据的规模增长速度很快 , 而用户往往出于日后需要进行查询或者分析的考虑 , 希望所能够存储的时序数据越多越好 。 但是通常情况下 , 对于大规模时序数据的查询而言 , 往往非常困难 。 一方面需要满足用户对于查询的需求 , 另外一方面需要有效地降低用户存储的成本 。 针对于以上两方面的诉求 , 阿里云TSDB研发了一套数据压缩技术 。 下图中左侧是一张示意图 , 其每一行代表一个时间序列 , 其列代表数据点 。 在没有进行数据压缩的情况下 , 如果想要将其数据调整到毫秒级别 , 就会发现其列数会增加到360万 , 这样的数据量是非常可观的 , 所以必须要进行压缩 。 阿里云TSDB所采用的压缩思路借鉴了Facebook Gorilla的实现思路 , 会将时间戳和数据两块压缩成两个大数据块 , 对时间戳采用了delta-delta的压缩方法 , 而对于不同的数据类型则采用了相应的数据压缩算法 。 在压缩成两个大数据块基础之上 , 再对其进行通用的块压缩 。 经过两部分的压缩就使得数据压缩比达到15:1的效果 。

推荐阅读