连接数据库

$ 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,其主键索引总是时间戳。tagfield是在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是hostregionvalue值为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