命令行界面介绍

更新时间:

Influx的命令行界面(CLI),它是一个用来跟数据库进行交互的轻量级工具。有关如何下载使用CLI,可参考文档命令行界面。CLI默认通过端口3242向TSDB For InfluxDB® HTTP API发送请求,直接与TSDB For InfluxDB®通信。

说明

也可以向数据库发送原生的HTTP请求,请参阅文档通过HTTP API写入数据和通过HTTP API查询数据中使用curl的示例。

初探数据的读写功能

当在阿里云平台成功创建好数据库之后,TSDB For InfluxDB®就可以接收写入和查询请求。

首先,对数据库存储做个简短的入门介绍。TSDB For InfluxDB®里的数据按“时间序列”来组织,其包含一个被测量的指标,如“cpu_load”或“temperature”。时间序列有零个或多个数据点,每个数据点都是一个测量值。数据点由time(一个时间戳)、measurement(测量指标,例如“cpu_load”)、至少一个key-value格式的field(测量值,例如“value=0.64”或者“temperature=21.2”)和零或多个包含测量值元数据的key-value格式的tag(例如“host=server01”,“region=EMEA”,“dc=Frankfurt”)组成。

从概念上来看,您可以将measurement看成是一个SQL表格,其中,时间戳始终是主索引,tagfield是表格中的列,tag会被建索引,而field则不会。与SQL表格的不同之处在于,使用TSDB For InfluxDB®,您可以有数百万的measurement,无需预先定义数据的schema,并且不会存储空值。

数据写入TSDB For InfluxDB®使用行协议(Line Protocol),该协议遵循以下格式:

<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]

以下是符合格式的数据写入TSDB For 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写入一个数据点到TSDB For InfluxDB®,请先输入INSERT,然后输入该数据点的信息:

> INSERT cpu,host=serverA,region=us_west value=0.64
>

现在,一个measurement为cpu,tag为hostregion,测量值value0.64的数据点已经写入数据库。

查询刚刚写入的数据:

> SELECT “host”, “region”, “value” FROM “cpu”
> name: cpu
------------
time                              host       region    value
2015-10-21T19:28:07.580664347Z    serverA    us_west   0.64

>
说明

前面我们在写入数据点的时候没有提供时间戳。如果写入没有带时间戳的数据点,TSDB For InfluxDB®会在获取该点时,把本地当前时间分配给该数据点,作为该数据点的时间戳。这意味着您的时间戳跟上面的会有所不同。

让我们尝试写入另一种类型的数据,同一个measurement有两个field:

> INSERT temperature,machine=unit42,type=assembly external=25,internal=37
>

查询的时候,若想返回所有的field和tag,可以使用操作符*

> SELECT * FROM "temperature"
name: temperature
-----------------
time                               external  internal  machine  type
2015-10-21T19:28:08.385013942Z     25        37        unit42   assembly

>
注意

在大型数据库上使用*而不使用LIMIT子句可能会导致性能问题。 您可以使用Ctrl+C取消响应时间过长的查询。

TSDB For InfluxDB®有很多功能和特性没有在这里提及,包括支持Go语言风格的正则表达式,例如:

> SELECT * FROM /.*/ LIMIT 1
--
> SELECT * FROM “cpu_load_short”
--
> SELECT * FROM “cpu_load_short” WHERE “value” > 0.9

这就是你在入门指南里需要知道的将数据写入TSDB For InfluxDB®并进行查询的全部内容。想要获取更多关于TSDB For InfluxDB®写入数据和查询数据的信息,请查看文档通过HTTP API写入数据通过HTTP API查询数据。想要了解更多TSDB For InfluxDB®中涉及的概念,请查看文档关键概念

InfluxDB® is a trademark registered by InfluxData, which is not affiliated with, and does not endorse, TSDB for InfluxDB®.