【INFLUXDB】INFLUXDB使用

本文详细介绍了InfluxDB的数据库配置、保留策略管理、连续查询操作及API使用方法,包括数据库的创建、删除、查询,保留策略的创建、修改、删除,连续查询的创建与删除,以及如何使用InfluxDB API进行数据读写和数据库管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【INFLUXDB】INFLUXDB使用
一. 数据库配置
查询: show database
创建: CREATE DATABASE {database_name} [WITH [DURATION ] [REPLICATION ] [SHARD DURATION ] [NAME ]
删除: DROP DATABASE {database_name}
二. RETENTION POLICY
查询: SHOW RETENTION POLICIES
创建: CREATE RETENTION POLICY {retention_policy_name} ON {database_name} DURATION {duration} REPLICATION {n} [SHARD DURATION {duration}] [DEFAULT]
CREATE RETENTION POLICY rp_10m on hubble duration 9408h0m0s REPLICATION 1 SHARD DURATION 168h0m0s
CREATE RETENTION POLICY rp_1h on hubble duration 8760h0m0s REPLICATION 1 SHARD DURATION 168h0m0s
CREATE RETENTION POLICY rp_6h on hubble duration 52560h0m0s REPLICATION 1 SHARD DURATION 168h0m0s
修改: ALTER RETENTION POLICY {rp_name} ON {database_name} DURATION {duration} REPLICATION {n} SHARD DURATION {duration} DEFAULT
删除: DROP RETENTION POLICY {rp_name} ON {database_name}
三. CONTINUOUS QUERY
查询: SHOW CONTINUOUS QUERY
删除: DROP CONTINUOUS QUERY {cq_name} ON {database_name}
四. API
InfluxDB API提供了较简单的方式用于数据库交互。该API使用了HTTP的方式,并以JSON格式进行返回。

① 支持的ENDPOINTS
在这里插入图片描述
② /PING
/ping支持GET和HEAD,都可用于获取指定信息。

定义:
1.GET http://localhost:8086/ping
2.HEAD http://localhost:8086/ping

示例:
获取InfluxDB版本信息:
$curl -sl -I [http://localhost:8086/ping](http://localhost:8086/ping)
HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: ebe357b8-ea19-11e7-8001-000000000000
X-Influxdb-Version: v1.3.6
Date: Tue, 26 Dec 2017 08:51:11 GM

③ /QUERY
/query支持GET和POST的HTTP请求。可用于查询数据和管理数据库、rp、users。

定义:
1.GET http://localhost:8086/query
2.HEAD http://localhost:8086/query
在这里插入图片描述

示例:
1). 使用SELECT查询数据:
     $ curl -G '[http://localhost:8086/query?db=mydb](http://localhost:8086/query?db=mydb)' 
     --data-urlencode 'q=SELECT * FROM "mymeas”'
        {"results":[{"series":[{"name":"mymeas","columns":["time","myfield","mytag1","mytag2"],
        "values":[["2016-05-20T21:30:00Z",12,"1",null],
        ["2016-05-20T21:30:20Z",11,"2",null],["2016-05-20T21:30:40Z",18,null,"1"],
        ["2016-05-20T21:31:00Z",19,null,"3"]]}]}]}

2). 使用INTO字段
     $ curl -XPOST '[http://localhost:8086/query?db=mydb](http://localhost:8086/query?db=mydb)' 
     --data-urlencode 'q=SELECT * INTO "newmeas" FROM "mymeas”'
     {"results":[{"series":[{"name":"result","columns":["time","written"],
     "values":[["1970-01-01T00:00:00Z",4]]}]}]}

3). 创建数据库
      $ curl -XPOST '[http://localhost:8086/query](http://localhost:8086/query)' 
      --data-urlencode 'q=CREATE DATABASE "mydb”'
      {"results":[{}]}

④ QUERY参数说明:
在这里插入图片描述

示例1:使用http认证来创建数据库:
$ curl -XPOST '[http://localhost:8086/query?u=myusername&p=mypassword](
http://localhost:8086/query?u=myusername&p=mypassword)' --data-urlencode 'q=CREATE DATABASE "mydb"'
   {"results":[{}]}

示例2:使用基础认证来创建数据库:
$ curl -XPOST -u myusername:mypassword '[http://localhost:8086/query](
http://localhost:8086/query)' --data-urlencode 'q=CREATE DATABASE "mydb”'
   {"results":[{}]}

⑤ /WRITE
/wirte只支持POST的HTTP请求,使用该Endpoint可以写数据到已存在的数据库中。
在这里插入图片描述
定义:POST http://localhost:8086/write
write参数说明

示例1:使用秒级的时间戳,将一个point写入数据库mydb
$ curl -i -XPOST "[http://localhost:8086/write?db=mydb&precision=s](
http://localhost:8086/write?db=mydb&precision=s)" --data-binary 'mymeas,mytag=1myfield=90 1463683075'

示例2:将一个point写入数据库mydb,并指定RP为myrp
$ curl -i -XPOST "[http://localhost:8086/write?db=mydb&rp=myrp](
http://localhost:8086/write?db=mydb&rp=myrp)" --data-binary 'mymeas,mytag=1 myfield=90'

示例3:使用HTTP认证的方式,将一个point写入数据库mydb
$ curl -i -XPOST "[http://localhost:8086/write?db=mydb&u=myusername&p=mypassword](
http://localhost:8086/write?db=mydb&u=myusername&p=mypassword)" --data-binary 'mymeas,mytag=1 myfield=91'

示例4:使用基础认证的方式,将一个point写入数据库mydb
$ curl -i -XPOST -u myusername:mypassword "[http://localhost:8086/write?db=mydb](
http://localhost:8086/write?db=mydb)" --data-binary 'mymeas,mytag=1 myfield=91'

数据请求体:--data-binary '< Data in Line Protocol format >'

示例1:写多个points到数据库中,需要使用新的一行
$ curl -i -XPOST "[http://localhost:8086/write?db=mydb](http://localhost:8086/write?db=mydb)"
 --data-binary 'mymeas,mytag=3 myfield=89
    mymeas,mytag=2 myfield=34 1463689152000000000'

示例2:通过导入文件的形式,写入多个points。需要使用@来指定文件
$ curl -i -XPOST "[http://localhost:8086/write?db=mydb](http://localhost:8086/write?db=mydb)"
 --data-binary @data.txt

文件内容如下
mymeas,mytag1=1 value=21 1463689680000000000
mymeas,mytag1=1 value=34 1463689690000000000
mymeas,mytag2=8 value=78 1463689700000000000    
mymeas,mytag3=9 value=89 1463689710000000000

响应的状态码
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值