简介
InfluxDB 是一个由 InfluxData 开发的开源时序型数据。它由 Go 语言写成,着力于高性能地查询与存储时序型数据。InfluxDB 被广泛应用于存储系统的监控数据,IoT(物联网) 行业的实时数据等场景。
时序:跟时间有关数据称之为时序
InfluxDB 有三大特性:
- Time Series(时间序列):你可以使用与时间有关的相关函数(如最大,最小,求和等)
- Metrics(度量):你可以实时对大量数据进行计算
- Eevents(事件):它支持任意的事件数据
特点
- 为时间序列数据专门编写的自定义高性能数据存储。TSM 引擎具有高性能的写入和数据压缩
- Golang 编写,没有其它的依赖
- 提供简单、高性能的写入、查询 http api,Native HTTP API,内置 http 支持,使用 http 读写
- 插件支持其它数据写入协议,例如 graphite、collectd、OpenTSDB
- 支持类 SQL 查询语句
- tags 可以索引序列化,提供快速有效的查询
- Retention policies 自动处理过期数据
- Continuous queries 自动聚合,提高查询效率
- schemaless(无结构),可以是任意数量的列
- min、max、sum、count、mean、median 一系列函数,方便统计
- Built-in Explorer 自带管理工具
应用场景
时序数据以时间作为主要的查询纬度,通常会将连续的多个时序数据绘制成线,制作基于时间的多纬度报表,用于揭示数据背后的趋势、规律、异常,进行实时在线预测和预警,时序数据普遍存在于 IT 基础设施、运维监控系统和物联网中。如:监控数据统计。 每毫秒记录一下电脑内存的使用情况,然后就可以根据统计的数据,利用图形化界面(InfluxDB V1 一般配合 Grafana)制作内存使用情况的折线图;可以理解为按时间记录一些数据(常用的监控数据、埋点统计数据等),然后制作图表做统计;