命令行界面介绍
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表格,其中,时间戳始终是主索引,tag
和field
是表格中的列,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为host
和region
,测量值value
为0.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®.