InfluxDB是由InfluxData开发的开源时序型数据库。
由Go语言所写, 运维部署比较方便。
着力于高性能地查询与存储时序型数据。
被广泛应用于存储系统的监控系统, IoT行业的实时数据等场景。
概念 | InfluxDB | MySQL |
---|---|---|
数据库(同) | database | database |
表(不同) | table | measurement |
列(不同) | column | tag(带索引的, 非必须)、field(不带索引)、timestamp(时间戳, 唯一主键) |
tag set
field set
measurement
retention policy(保留政策)
series
无结构
可拓展
支持min, max, sum, count, mean, median 等一些列函数, 方便统计
原生的HTTP支持, 内置HTTP API
易上手的类SQL语法
8083: Web admin管理服务的端口(较新版本已移除)
8086: HTTP API的端口
8088: 集群端口
企业版是支持集群模式的, 开源版只有单击版。
默认已经安装好了docker, 如果不是root用户, 请将使用的当前用户加入到docker用户组中。
拉取influxdb镜像
docker pull influxdb
查看已有镜像
ubuntu@ronnie:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
api-server default dbf1ddd3f665 25 hours ago 954MB
influxdb latest e1ab2d9add24 2 days ago 311MB
python 3.6 e0384051b655 2 days ago 914MB
grafana/grafana latest 199e063bb422 8 days ago 233MB
wurstmeister/kafka latest 9a5842c217a8 6 weeks ago 432MB
mongo latest a0e2e64ac939 6 weeks ago 364MB
redis latest dcf9ec9265e0 2 months ago 98.2MB
zjffdu/zeppelin-blink latest 41d3d93a261c 12 months ago 5.07GB
wurstmeister/zookeeper latest 3f43f72cb283 12 months ago 510MB
启动InfluxDB 容器并将本机的8083, 8086端口映射到启动InfluxDB的容器的对应端口上, 这样访问本机端口即可访问InfluxDB服务。
docker run -d -p 8083:8083 -p 8086:8086 --name my_influxdb influxdb
查看容器信息
ubuntu@ronnie:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f26c6be56cc7 grafana/grafana "/run.sh" 25 hours ago Up 25 hours 0.0.0.0:3000->3000/tcp my_grafana
9eeb58698e3b influxdb "/entrypoint.sh infl…" 25 hours ago Up 25 hours 0.0.0.0:8083->8083/tcp, 0.0.0.0:8086->8086/tcp my_influxdb
4eeacbd09d2c api-server:default "bash bootstrap" 25 hours ago Up 25 hours 0.0.0.0:9000->9000/tcp api-server
进入docker镜像
docker exec -it my_influxdb bash
进入/usr/bin目录, 查看InfluxDB相关可执行程序
root@9eeb58698e3b:/# cd /usr/bin/
root@9eeb58698e3b:/usr/bin# find | grep influx
./influx
./influx_stress
./influx_tsm
./influx_inspect
./influxd
查看InfluxDB版本
root@9eeb58698e3b:/usr/bin# ./influx -version
InfluxDB shell version: 1.7.9
进入InfluxDB shell
root@9eeb58698e3b:/usr/bin# ./influx
Connected to http://localhost:8086 version 1.7.9
InfluxDB shell version: 1.7.9
查看数据库
show databases
使用指定数据库
use 数据库名
查看measurement
show measurements
查询N条数据
select * from measurement名 limit 10
按照rfc格式查询
precision rfc3339
或
influx -precision rfc3339
查看 tag key
show tag keys
查看 field key
show field keys
查看 measurement中的所有保存策略
show retention policies
创建数据库并使用
create database ronnie_test
use ronnie_test
插入数据
insert disk_free,hostname=server01 value=442221834240i 1435362189575692182
insert disk_free,hostname=server02 value=132221834240i 1435362189575692182
insert disk_free,hostname=server03 value=242221834240i 1435362189575692182
insert disk_free,hostname=server04 value=342221834240i 1435362189575692182
insert disk_free,hostname=server05 value=542221834240i 1435362189575692182
insert disk_free,hostname=server06 value=642221834240i 1435362189575692182
insert disk_free,hostname=server07 value=742221834240i 1435362189575692182
insert disk_free,hostname=server08 value=842221834240i 1435362189575692182
insert disk_free,hostname=server09 value=942221834240i 1435362189575692182
insert disk_free,hostname=server10 value=122221834240i 1435362189575692182
insert disk_free,hostname=server11 value=432221834240i 1435362189575692182
insert disk_free,hostname=server12 value=462221834240i 1435362189575692182
insert disk_free,hostname=server13 value=482221834240i 1435362189575692182
insert disk_free,hostname=server14 value=492221834240i 1435362189575692182
insert disk_free,hostname=server15 value=272221834240i 1435362189575692182
查看measurements数据
> show measurements;
name: measurements
name
----
disk_free
> select * from disk_free;
name: disk_free
time hostname value
---- -------- -----
1435362189575692182 server01 442221834240
1435362189575692182 server02 132221834240
1435362189575692182 server03 242221834240
1435362189575692182 server04 342221834240
1435362189575692182 server05 542221834240
1435362189575692182 server06 642221834240
1435362189575692182 server07 742221834240
1435362189575692182 server08 842221834240
1435362189575692182 server09 942221834240
1435362189575692182 server10 122221834240
1435362189575692182 server11 432221834240
1435362189575692182 server12 462221834240
1435362189575692182 server13 482221834240
1435362189575692182 server14 492221834240
1435362189575692182 server15 272221834240
将时间改为rfc格式
> precision rfc3339
> select * from disk_free;
name: disk_free
time hostname value
---- -------- -----
2015-06-26T23:43:09.575692182Z server01 442221834240
2015-06-26T23:43:09.575692182Z server02 132221834240
2015-06-26T23:43:09.575692182Z server03 242221834240
2015-06-26T23:43:09.575692182Z server04 342221834240
2015-06-26T23:43:09.575692182Z server05 542221834240
2015-06-26T23:43:09.575692182Z server06 642221834240
2015-06-26T23:43:09.575692182Z server07 742221834240
2015-06-26T23:43:09.575692182Z server08 842221834240
2015-06-26T23:43:09.575692182Z server09 942221834240
2015-06-26T23:43:09.575692182Z server10 122221834240
2015-06-26T23:43:09.575692182Z server11 432221834240
2015-06-26T23:43:09.575692182Z server12 462221834240
2015-06-26T23:43:09.575692182Z server13 482221834240
2015-06-26T23:43:09.575692182Z server14 492221834240
2015-06-26T23:43:09.575692182Z server15 272221834240
带where的查询, 基本和SQL一样
> select hostname, value from disk_free where value > 200000000000
name: disk_free
time hostname value
---- -------- -----
2015-06-26T23:43:09.575692182Z server01 442221834240
2015-06-26T23:43:09.575692182Z server03 242221834240
2015-06-26T23:43:09.575692182Z server04 342221834240
2015-06-26T23:43:09.575692182Z server05 542221834240
2015-06-26T23:43:09.575692182Z server06 642221834240
2015-06-26T23:43:09.575692182Z server07 742221834240
2015-06-26T23:43:09.575692182Z server08 842221834240
2015-06-26T23:43:09.575692182Z server09 942221834240
2015-06-26T23:43:09.575692182Z server11 432221834240
2015-06-26T23:43:09.575692182Z server12 462221834240
2015-06-26T23:43:09.575692182Z server13 482221834240
2015-06-26T23:43:09.575692182Z server14 492221834240
2015-06-26T23:43:09.575692182Z server15 272221834240
查看tag key
> show tag keys
name: disk_free
tagKey
------
hostname
查看field key
> show field keys
name: disk_free
fieldKey fieldType
-------- ---------
value integer
拉取Grafana镜像
docker pull grafana/grafana
运行Grafana(本质上还是端口映射, 不说了)
docker run -d -p 3000:3000 --name my_grafana grafana/grafana
原文:https://www.cnblogs.com/ronnieyuan/p/12263721.html