返回 导航

其他

hangge.com

InfluxDB时序数据库的安装使用教程6(使用HTTP API接口进行操作)

作者:hangge | 2020-09-27 08:10
    前面文章我们都是通过命令行的方式操作 InfluxDB 数据库,其实 InfluxDB 也提供了一系列的 HttpAPI 供我们调用,下面通过样例进行演示。

六、使用 HTTP 接口进行操作

1,准备工作

由于 InfluxDB HTTP API 默认的端口是 8086,如果服务器有防火墙的话,需要执行如下命令打开该端口:
firewall-cmd --permanent --add-port=8086/tcp
firewall-cmd --reload

2,创建数据库

(1)下面我们使用 Postman 进行测试,通过发送一个 post 请求来创建一个名为 mydb 的数据库:
  • 请求地址http://IP:8086/query
  • 参数 qCREATE DATABASE mydb

(2)接着将参数 q 改成 SHOW DATABASES 查询当前所有的数据库,可以发现 mydb 数据库已经创建成功。
提示:如果要删除 mydb 数据库则将参数 q 改成 DROP DATABASE mydb 即可。

3,插入数据(新建表)

(1)InfluxDB 中没有显式的新建表的语句,只能通过 insert 数据的方式来建立新表,我们发送一个 post 请求到 /write 路径来写入一条数据:
  • 请求地址(指定数据库):http://IP:8086/write?db=mydb
  • body 里则为我们希望存储的时间序列数据。它的组成部分有 measurementtagsfieldstimestamp(如果不写 timestamp 系统会自动追加时间戳)。

(2)当然我们也可以一次性写入多个数据点:
提示:使用批量写会有更好地性能,InfluxData 建议每个 batch 的大小在 5000~10000 个数据点。

(3)我们也可以写入来自文件的数据,比如这里我们 data.txt 里的内容就是上面的数据,执行结果是一样的:

4,查询数据

(1)我们发送如下一个 post 请求来查询 mydb 的数据库下的所有表(measurement):
  • 请求地址http://IP:8086/query
  • 参数 dbmydb
  • 参数 qSHOW MEASUREMENTS

(2)我们将参数 q 改成 SELECT * FROM "temperature" 来查询 temperature 表中的数据:
关于 InfluxQL 语言更详细的用法,可以参考我之前写的文章:

(3)我们也可以在一次 API 调用中发送多个 InfluxDB 的查询语句,只需简单地使用分号分隔每个查询即可:

(4)查询时间戳默认返回 RFC3339 格式的纳米级的 UTC 时间,例如 2015-08-04T19:05:14.318570484Z。如果我们想要返回 Unix 格式的时间,可以在请求参数里设置 epoch 参数,其中epoch 可以是 [h,m,s,ms,u,ns] 之一。
  • 比如下面查询我们返回一个秒级的 epoch
评论

全部评论(0)

回到顶部