二、安装部署、基本用法
1,安装启动
(1)首先访问 InfluxDB 官网(点击访问),找到选择合适的版本:
(2)假设我们服务器是 CentOS,执行如下命令下载 rpm 文件:
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.2.x86_64.rpm
(3)下载后执行如下命令进行安装:
sudo yum localinstall influxdb-1.8.2.x86_64.rpm
(4)安装后执行如下命令即可以启动 InfluxDB:
systemctl start influxdb
(5)最后还可以执行如下命令设为开机启动:
systemctl enable influxdb
2,连接 InfluxDB
InfluxDB 安装运行后,我们执行 influx 命令连接到本地的 InfluxDB 实例上:
说明:
- InfluxDB 的 HTTP 接口默认起在 8086 上,所以 influx 默认也是连的本地 的8086 端口
- -precision 参数表明了任何返回的时间戳的格式和精度,在上面的例子里,rfc3339 是让 InfluxDB 返回 RFC339 格式(YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ)的时间戳。
influx -precision rfc3339
3,操作数据库
(1)第一次安装好 InfluxDB 之后是没有数据库的,我们执行如下命令创建一个名为 mydb 的数据库:说明:数据库的名字可以是被双引号引起来的任意 Unicode 字符。 如果名称只包含 ASCII 字母,数字或下划线,并且不以数字开头,那么也可以不用引起来。
CREATE DATABASE mydb
(2)执行如下命令可以显示当前所有的数据库:
SHOW DATABASES
(3)执行如下命令则删除指定数据库:
DROP DATABASE mydb
(4)执行如下命令使用指定数据库:
USE mydb
4,插入数据(新建表)
(1)InfluxDB 中没有显式的新建表的语句,只能通过 insert 数据的方式来建立新表。- 比如我们执行如下命令,将单条的时间序列数据到 InfluxDB 中。这样一个 measurement 为 temperature,tag 是 machine 和 type,external 值为 25,internal 值为 37 的数据点被写入了 InfluxDB 中:
注意:field values 可以是整数、浮点数、字符串和布尔值,不同类型数据的插入规范见本文末尾附录部分。
INSERT temperature,machine=unit42,type=assembly external=25,internal=37
- 上面语句系统会自动追加时间戳,当然我们也可以在添加数据时,自己写入时间戳:
INSERT temperature,machine=unit42,type=assembly external=25,internal=37 1435362189575692182
(2)执行如下命令可以显示所有表:
SHOW MEASUREMENTS
(3)而执行如下命令可以删除指定的表:
DROP MEASUREMENT temperature
5,查询数据
(1)执行如下命令我们可以将前面添加的数据查询出来:SELECT "machine", "type", "external", "internal" FROM "temperature"
(2)如果查询的时候想要返回所有的字段和 tag,可以用 *:
SELECT * FROM "temperature"
附:各类型的 Field value 插入时的规范
不同于 tag keys,tag values,field keys 始终是字符串,field values 可以是整数、浮点数、字符串和布尔值。
1,浮点数
默认是浮点数,InfluxDB 假定收到的所有 field value 都是浮点数。
// 以浮点类型存储82: INSERT temperature,machine=unit42,type=assembly external=82 1435362189575692182
2,整数
添加一个 i 在 field 之后,告诉 InfluxDB 以整数类型存储:// 以整数类型存储82: INSERT temperature,machine=unit42,type=assembly external=82i 1435362189575692182
3,字符串
双引号把字段值引起来表示字符串:
// 以字符串类型存储值too warm: INSERT temperature,machine=unit42,type=assembly external="too warm" 1435362189575692182
4,布尔型
示 TRUE 可以用 t、T、true、True、TRUE;表示 FALSE 可以用 f、F、false、False 或者 FALSE:// 以布尔类型存储值true INSERT temperature,machine=unit42,type=assembly external=true 1435362189575692182