InfluxDB架构设计和数据布局

原创 2018-07-20 11:44 阅读(394)次
InfluxDB架构设计和数据布局 作为专门针对时间序列数据的存储,InfluxDB在使用的时候也需要针对本身的特性结合需求来设计schema。 1. 针对tags和field的特性进行设计schema tag 被索引,查询速度快。field没有做索引,查询需要scan,速度慢。 根据以上特性 ⑴ 常用来查询的数据存放在tags中 ⑵ 计划用来group by() 的数据,放在tags中 ⑶ 数据计划用InfluxQL function来处理的,放在fields中 ⑷ 数据需要表示为string以外的值,放在fields中。(tags始终表示为字符串) 2. 避免用InfluxQL的关键字...

InfluxDB的设计见解和权衡

原创 2018-07-19 18:21 阅读(283)次
作为时序数据库,InfluxDB在设计的时候,对一些具体问题做了优化,提高性能的同时也需要作出权衡,削减一些功能。 如下  方案一:趋向赞成问题,方案二:趋向反对问题 1. 当DB收到多次相同的数据,认为他是client多次发送了相同的数据。 方案一:赞成,为此提高性能,照单全收。InfluxDB是进行field set的整合。 方案二:反对,不支持存储重复数据,可能发生覆盖。 2. 时序数据库很少发生删除。如果发横几乎是删除大范围的旧数据,而不是删除刚刚插入的新数据。 方案一:限制删除权限,增加读写性能。 方案二:删除功能强烈限制。(我理解甚至不提供删除功能) 3. 更新数据很少发...

初识InfluxDB

原创 2018-07-18 16:05 阅读(252)次
如果对时序数据库概念还不是很了解,建议先看我的上一篇文章 What is a Time Series Database? InfluxDB主要用来对大量带时间戳数据的存储,包括DevOps监控,应用程序metrics,物联网传感器数据和实时分析。 通过配置InfluxDB以保持数据达到规定的时间长度,自动删除过期数据,从而节省机器空间。 InfluxDB还提供类似SQL的查询语言,用于与数据交互。 它用GO编写,所以编译后是没有对外部依赖的二进制文件。 它具有高性能,对相同的数据有高吞吐量的插入,压缩和实施查询。TSM引擎允许高吞吐量的数据插入和数据压缩。 它提供了高性能的API和H...

What is a Time Series Database?

原创 2018-07-16 21:21 阅读(294)次
时序数据库是什么 时序数据库(Time Series Database,TSDB)是针对时间戳或者时间序列优化的数据库。 时间序列是随着时间进行跟踪,监控,下采样和聚合的事件或者度量记录。比如:服务器metrics,应用性能监控,网络数据,传感器数据,时间,点击,市场交易等等。和常规数据最大的不同,就是用户会根据时间来对数据进行提问。 TSDB专门用来处理时间序列类型的数据,针对随着时间变化的特性进行了优化。因为时序数据的生命周期管理,汇总,大范围扫描与其他数据在负载上有很大的不同。 为什么TSDB现在越来越重要了? 以前我也遇到过类似的时序数据的需求,最早时序数据库主要侧重于查看财务数据,股...