全部产品
云市场

入门指南

更新时间:2019-04-24 10:03:49

TSDB For InfluxDB®成功购买后,您就可以开始做一些有意思的事情。在这一章里,我们将会用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),该协议遵循以下格式:

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

以下是符合格式的数据写入TSDB For InfluxDB®的示例:

  1. cpu,host=serverA,region=us_west value=0.64
  2. payment,device=mobile,product=Notepad,method=credit billed=33,licenses=3i 1434067467100293230
  3. stock,symbol=AAPL bid=127.46,ask=127.48
  4. temperature,machine=unit42,type=assembly external=25,internal=37 1434067467000000000

注释:更多关于行协议的信息可参考文档行协议参考

使用CLI写入一个数据点到TSDB For InfluxDB®,请先输入INSERT,然后输入该数据点的信息:

  1. > INSERT cpu,host=serverA,region=us_west value=0.64
  2. >

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

查询刚刚写入的数据:

  1. > SELECT host”, region”, value FROM cpu
  2. > name: cpu
  3. ------------
  4. time host region value
  5. 2015-10-21T19:28:07.580664347Z serverA us_west 0.64
  6. >

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

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

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

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

  1. > SELECT * FROM "temperature"
  2. name: temperature
  3. -----------------
  4. time external internal machine type
  5. 2015-10-21T19:28:08.385013942Z 25 37 unit42 assembly
  6. >

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

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

  1. > SELECT * FROM /.*/ LIMIT 1
  2. --
  3. > SELECT * FROM cpu_load_short
  4. --
  5. > 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®.