InfluxDB简介
InfluxDB是一个时序型数据库,用于高性能的查询与存储时序型数据。目前,InfluxDB被广泛的用于监控系统中。InfluxDB与Grafana结合,可以为用户带来清晰明了的监控面板。
InfluxDB安装
macOS
brew update
brew install influxdb
influxd -config /usr/local/etc/influxdb.conf //启动influxdb
Ubuntu
sudo apt-get update && sudo apt-get install influxdb
sudo service influxdb start
InfluxDB相关概念
database
数据库,包含用户,数据保留策略以及时序型数据。类似关系型数据库中数据库
measurement
具有相同tag以及filed的数据集合
tag
influxdb使用键值对key-value的形式来保存数据,tag是具有索引的数据
filed
influxdb中用来存储具体数值,也是key-value的形式,与tag相比,filed没有索引,因此用filed来过滤查询数据性能会很低
point
tag + filed + timestamp = point,类似于关系型数据库中的一行数据(row)
continuous query(CQ)
InfluxDB自动并且周期性执行的SQL语句,主要用来自动聚合数据,提供查询性能
retention policy(RP)
保留数据策略,每一个RP都会设置一个数据保留期限(duration),对于超过期限的数据,InfluxDB会自动删除。例如RP设置的期限为7天,则7天之前的数据都会被删除
series
在同一个measurement,具有相同的retention policy以及相同tag的数据集合
shard
分片包含了实际加密和压缩的数据,一个分片对应了磁盘上的一个TSM文件
InfluxDB与关系型数据库的对比
相关概念对比
InfluxDB | 关系型数据库 |
---|---|
database | database |
measurement | table |
tag | primary-key |
filed | column |
point | row |
下面一张表,可以对应到InfluxDB的measurement中
InfluxDB Quick start
//1. 启动
influxd
//2. 进入命令行
influx -precision rfc3339
-precision 用来指定时间戳的显示格式
//3. 查看database
show databases;
//4. 使用database
use media_quality
//5. 查看measurement
show measurements
//6. 查询数据
select * from [measurement] where time > now() - 5m limit 10