> SHOW DATABASES
name: databases
---------------
_internal
说明:_internal
数据库是用来存储InfluxDB内部的实时监控数据的。
不像SHOW DATABASES
,大部分InfluxQL需要作用在一个特定的数据库上。你当然可以在每一个查询语句上带上你想查的数据库的名字,但是CLI提供了一个更为方便的方式USE <db-name>
,这会为你后面的所以的请求设置到这个数据库上。例如:
> USE mydb
Using database mydb
以下的操作都作用于mydb
这个数据库之上。
现在我们已经有了一个数据库,那么InfluxDB就可以开始接收读写了。
首先对数据存储的格式来个入门介绍。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
说明:关于写入格式的更多语法,请参考写入语法这一章。
使用CLI插入单条的时间序列数据到InfluxDB中,用INSERT
后跟数据点:
> INSERT cpu,host=serverA,region=us_west value=0.64
这样一个measurement为cpu
,tag是host
和region
,value
值为0.64
的数据点被写入了InfluxDB中。
现在我们查出写入的这笔数据:
> SELECT "host", "region", "value" FROM "cpu"
name: cpu
---------
time host region value
2015-10-21T19:28:07.580664347Z serverA us_west 0.64
说明:我们在写入的时候没有包含时间戳,当没有带时间戳的时候,InfluxDB会自动添加本地的当前时间作为它的时间戳。
让我们来写入另一笔数据,它包含有两个字段:
> INSERT temperature,machine=unit42,type=assembly external=25,internal=37
查询的时候想要返回所有的字段和tag,可以用*
:
> SELECT * FROM "temperature"
name: temperature
-----------------
time external internal machine type
2015-10-21T19:28:08.385013942Z 25 37 unit42 assembly
InfluxQL还有很多特性和用法没有被提及,包括支持golang样式的正则,例如:
> SELECT * FROM /.*/ LIMIT 1
> SELECT * FROM "cpu_load_short"
> SELECT * FROM "cpu_load_short" WHERE "value" > 0.9
这就是你需要知道的读写InfluxDB的方法,想要学习更多的写的知识请移步写数据章节,读的知识请到读数据章节。要获取更多InfluxDB的概念的信息,请查看关键概念章节。