连接数据库
$ influx -precision rfc3339
Connected to http://localhost:8086 version 1.2.x
InfluxDB shell 1.2.x
> exit # 退出命令行
说明:
- InfluxDB的HTTP接口默认起在
8086
上,所以influx
默认也是连的本地的8086
端口,你可以通过influx --help
来看怎么修改默认值。 -precision
参数表明了任何返回的时间戳的格式和精度,rfc3339`是让InfluxDB返回RFC339格式(YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ)的时间戳。
创建数据库
> CREATE DATABASE mydb
查看数据库
> SHOW DATABASES
name: databases
---------------
name
_internal
mydb
说明:_internal
数据库是用来存储InfluxDB内部的实时监控数据的
使用数据库
> USE mydb
Using database mydb
数据存储格式介绍
首先对数据存储的格式来个入门介绍。InfluxDB里存储的数据被称为时间序列数据
,其包含一个数值,就像CPU的load值或是温度值类似的。时序数据有零个或多个数据点,每一个都是一个指标值。数据点包括time
(一个时间戳),measurement
(例如cpu_load),至少一个k-v格式的field
(也即指标的数值例如 “value=0.64”或者“temperature=21.2”),零个或多个tag
,其一般是对于这个指标值的元数据(例如“host=server01”, “region=EMEA”, “dc=Frankfurt)。
在概念上,你可以将measurement
类比于SQL里面的table,其主键索引总是时间戳。tag
和field
是在table里的其他列,tag
是被索引起来的,field
没有。不同之处在于,在InfluxDB里,你可以有几百万的measurements,你不用事先定义数据的scheme,并且null值不会被存储。
将数据点写入InfluxDB,只需要遵守如下的行协议:
<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]
下面是数据写入InfluxDB的格式示例:
cpu,host=serverA,region=us_west value=0.64
payment,device=mobile,product=Notepad,method=credit billed=33,licenses=3i 1434067467100293230
stock,symbol=AAPL bid=127.46,ask=127.48
temperature,machine=unit42,type=assembly external=25,internal=37 1434067467000000000
写入数据
> INSERT cpu,host=serverA,region=us_west value=0.64
这样一个measurement为cpu
,tag是host
和region
,value
值为0.64
的数据点被写入了InfluxDB中
查询measurement(table)
> show measurements
查询数据
> SELECT "host", "region", "value" FROM "cpu"
name: cpu
---------
time host region value
2015-10-21T19:28:07.580664347Z serverA us_west 0.64
> SELECT * FROM /.*/ LIMIT 1
--
> SELECT * FROM "cpu_load_short"
--
> SELECT * FROM "cpu_load_short" WHERE "value" > 0.9
用户操作
# 查看所有用户
> show users
user admin
---- -----
>
# 创建一个root用户,设置密码为newpwd,主要不要使用双引号" 括起来,不然会报错
> create user "root" with password 'newpwd'
>
# 再次查看用户信息,发现admin为false,说明还要设置一下权限。
> show users
user admin
---- -----
root false
>
# 删除root用户
> drop user root
>
> show users
user admin
---- -----
>
# 重新设置root用户,并设置带上所有权限
> create user "root" with password 'newpwd' with all privileges
>
# 发现admin权限为true了,那么admin的用户就创建好了。
> show users
user admin
---- -----
root true
>
开启认证需要修改influxdb.conf配置文件,把
[http]
下的auth-enabled
选项设置为true
更详细的使用方法,请参考:
https://jasper-zhang1.gitbooks.io/influxdb/content/Guide/writing_data.html