InfluxDB从入门到放弃

来墨刀实习接到的第一个任务,是用InfluxDB做一些用户操作的统计,跟之前的笔试题也算是前后照应了。
自己在 InfluxDB 上面花了将近两周的时间,最终却发现其并不能满足我们的需要。浪费的时间有点长,一方面是因为自己第一次接触时序数据库,基本算是从零开始学习 InfluxDB;但另一方面,更主要的原因则是自己分析问题的能力还需要提升,要学会更加全面地思考问题。
这里就对自己近两周 InfluxDB 的学习做一个简单的总结。

学习资料

刚开始时想在当当或者京东上找找相关的书籍,结果以“influxdb”为关键字根本搜不到东西,所以学习资料就只能从网上找了。而网上关于 InfluxDB 的资料也不多,搜到的大部分相关内容都很浅,因此主要的学习资料就只剩下了官方提供的文档。

InfluxDB 当前的稳定版本是1.7,新版的2.0还处于 alpha 测试中,官方并不推荐使用,这里就列举出1.7版本的官方文档中一些我觉得比较有用的内容:

常见术语含义中通过一个例子解释了最基础的tag,field,series等术语在数据库中对应的具体内容,刚接触 InfluxDB 时适合从这里入手;全部术语含义则涉及到更多内容,可以用来检查自己哪一块相关知识还不了解,查漏补缺。

上面的降低采样和数据保留对应着下面的连续查询保留策略连续查询通过设置定时执行的查询语句,将一段时间内的多个样本点聚合成一个,达到压缩数据、加快查询的效果;保留策略通过设置保留多长时间内的数据,自动删除旧数据,防止硬盘空间占用过大。两者通常搭配使用:连续查询将原始数据压缩,存到另一表里,保留策略负责定时删除旧的原始数据。

所有的函数主要分为聚合、选择、转换、分析等几大类,其中常用的有计算个数,求平均值,求和,找最大或最小的数据,找最新或最旧的数据,计算前缀和,计算相邻两次数据变化值或变化率,使用 Holt-Winters 算法进行简单的预测等,更专业的还有计算钱德动量摆动指标,计算移动平均,计算考夫曼效率比等,连续查询中经常会用到这里的函数。

因为 InfluxDB 的数据库格式相对于一般的关系型数据库更加固定,所以它的数据库设计起来比较简单,设计数据库的时候就主要参考这里的设计原则

不要以为它只是个硬件推荐,里面其实藏着干货,例如不同配置的机器所能承担的数据量,InfluxDB 所能承担的最大数据规模

知识点

坑点

语句

收获