文章首发于微信公众号「GitHub黑板报」,欢迎各人关注。打开微信,使用 “搜一搜”,搜索「GitHub黑板报」,即可关注。
各人好,我是章鱼猫。
监控系统各人应该都用过,而监控内里记录的比较紧张的数据就是某个时间点发生了什么,而用来存储这些数据的数据库,用专业术语讲就是时间序列数据库(Time Series Database,缩写简称 TSDB)。以下是一个更官方的表明:
时间序列数据库重要用于指处置惩罚带时间标签(按照时间的顺序变革,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。是新型的非关系型数据库,在大数据时代有着十分紧张的意义。
Prometheus、InfluxDB、M3、TimescaleDB 都是时下流行的 TSDB。时序数据的压缩算法很大程度上决定了 TSDB 的性能,以上几个项目的实现都参考了 Facebook 2015 年发表的论文《Gorilla: A fast, scalable, in-memory time series database》中提到的差值算法。
今天要保举的开源项目 mandodb 是一个最小化的 TSDB 实现,从概念上来讲它还算不上是一个完整的 TSDB,因为它:
- 没有实现自己的查询引擎(实现难度大)
- 缺少磁盘归档文件 Compact 操纵(天气好的话会实现)
- 没有 WAL 作为灾备保证高可用(心情好的话会实现)
但是 mandodb 的意图是希望完整先容如何从零开始实现一个小型的 TSDB,希望能给各人带来更多的启发。
mandodb 使用 Go 实现,同时作者也针对 mandodb 提供了如下细致的用法先容、设计方案先容等,其中还包罗了对差值算法的讲解,黑白常不错的学习资料呢。
开源作者的整体文档行文非常的风趣幽默,同时细节讲解也非常的具体,如果你对时间序列数据库感兴趣,保举你了解一下这个项目,Star 一波绝对不亏。
更多项目详情请查看如下链接。
开源项目地址:https://github.com/chenjiandongx/mandodb
微信公众号:「GitHub黑板报」,值得你关注,天天都分享开源项目,挖掘开源的价值。
文章首发于微信公众号「GitHub黑板报」,欢迎各人关注。打开微信,使用 “搜一搜”,搜索「GitHub黑板报」,即可关注。关注后,天天都会为您推送我们精心挑选的优质开源项目。
特别提醒:关注我,给我发私信,回复关键字「666」,可以领取程序员副业赢利案例电子书以及一本平凡人都使用的《副业赢利手册》电子书。 |