InfluxDB是一款专门处理高写入和查询负载的时序数据库,广泛应用于DevOps监控、应用指标和IoT传感器数据的存储和实时分析。本文将围绕InfluxDB的下载,详细介绍其功能、特色、同类软件对比、使用说明、安装步骤以及相关应用。
一、功能

高性能数据存储:TSM引擎提供高速读写和压缩功能,专为时间序列数据量身打造。
简单高效的接口:提供HTTP API写入和查询接口,支持类似SQL的查询语言,轻松查询聚合数据。
索引和数据保留策略:允许对tag建索引,实现快速查询;数据保留策略能自动使旧数据失效。
丰富的协议支持:支持多种协议,包括HTTP、UDP、CollectD、Graphite、OpenTSDB、Prometheus等。
强大的生态系统:TICK是一个集成了采集、存储、分析、可视化等能力的开源时序中台,由Telegraf、InfluxDB、Chronograf、Kapacitor四个组件构成。
二、特色
无系统环境依赖:部署方便,无需外部依赖即可独立部署。
无结构化数据模型:灵活强大,无需提前定义模式。
原生HTTP管理接口:免插件配置和免第三方依赖。
类SQL查询语句:学习成本低,上手快。
丰富的权限管理:精细到“表”级别。
时效管理功能:自动删除过期数据,自定义删除指标数据。
低成本存储:采样时序数据,压缩存储。
丰富的聚合函数:支持AVG、SUM、MAX、MIN等聚合函数。
三、同类软件对比
| 软件名称 | 数据模型 | 特点 |
| InfluxDB | bucket、measurement、tag、field、timestamp | 无模式,灵活强大,原生HTTP接口,类SQL查询 |
| TimeScaleDB | 基于PostgreSQL,兼容SQL | 建立在PostgreSQL之上,支持完整SQL,适合OLTP和OLAP |
| TDengine | 一个数据采集点一张表,超级表 | 创新的数据模型,适合大规模数据采集和分析 |
| ClickHouse | 列式存储,支持SQL | 高性能,适合OLAP,支持标准SQL特性 |
| QuestDB | 高性能,支持SQL | 世界上增长最快的时序数据库,支持SQL分析 |
四、使用说明
1. 创建数据库
安装完成后,使用`influx`命令行工具连接到本地的InfluxDB实例(默认端口8086)。
通过`CREATE DATABASE name>`命令创建数据库,例如`CREATE DATABASE mydb`。
2. 读写数据
使用`USE name>`命令选择要操作的数据库,例如`USE mydb`。
数据以时间序列的形式组织,包含测量值(measurement)、标签(tag)、字段(field)和时间戳(timestamp)。
可以使用类似SQL的InfluxQL语言进行数据的写入和查询,例如:
写入数据:`INSERT cpu_load,host=server01,region=us-west value=0.64 00000000`
查询数据:`SELECT FROM cpu_load WHERE time > '2025-01-01T00:00:00Z' AND time < '2025-01-02T00:00:00Z'`。
五、安装步骤
1. Debian & Ubuntu
添加InfluxDB仓库:
bash
curl -sL | sudo apt
key add -
source /etc/lsb
release
echo "deb ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
安装并启动InfluxDB服务:
bash
sudo apt
get update && sudo apt
get install influxdb
sudo service influxdb start
如果系统支持Systemd(如Ubuntu 15.04 +,Debian 8 +),也可以使用`sudo systemctl start influxdb`启动。
2. RedHat & CentOS
添加yum源:
bash
cat <
[influxdb]
name = InfluxDB Repository
RHEL $releasever
baseurl =
enabled = 1
gpgcheck = 1
gpgkey =
EOF
安装并启动InfluxDB服务:
bash
sudo yum install influxdb
sudo service influxdb start
如果系统支持Systemd(如CentOS 7 +,RHEL 7 +),也可以使用`sudo systemctl start influxdb`启动。
3. MAC OS X
使用Homebrew安装:
bash
brew update
brew install influxdb
ln
sfv /usr/local/opt/influxdb/.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.influxdb.plist
或者直接在terminal里运行`influxd
config /usr/local/etc/influxdb.conf`启动。
六、相关应用
物联网(IoT):广泛应用于存储传感器和设备生成的时间序列数据,如温度、湿度、压力等传感器数据以及设备状态信息。
DevOps监控:用于监控系统性能指标,如CPU利用率、内存使用情况等。可以创建连续查询来定期统计数据,例如创建一条连续查询用于定期统计每小时CPU的最大利用率,并将结果保存在表cpu_result中:
sql
create continuous query "cpu_cq" on "cpu_db" begin select max("cpu_usage") as "max_cpu" into "cpu_result" from "cpu_usage_detail" group by time(60m) end
然后可以对表cpu_result进行查询,计算出一段时间内的每小时CPU的最大利用率的均值:
sql
select mean("max_cpu") from "cpu_result" where time >= and time <=
数据保留策略:通过数据保留策略来决定数据的保留时长。例如在数据库rp_test_database中创建一条保留策略rp_one_day,保留数据的时间长度为1天,数据副本数为1:
sql
create retention policy "rp_one_day" on "rp_test_database" duration 1d replication 1
可以查询、修改和删除保留策略,以满足不同的业务需求。
标签: InfluxDB
步骤