支持的API client
http
创建数据库
curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE mydb"
写入数据
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
配置gzip压缩
InfluxDB支持gzip压缩。要减少网络流量,请考虑以下选项:
- 要接受来自InfluxDB的压缩数据,请将Accept-Encoding: gzip标头添加到InfluxDB API请求中。
- 要在将数据发送到InfluxDB之前压缩数据,请将Content-Encoding: gzip标头添加到InfluxDB API请求中。
批量写入
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server02 value=0.67
cpu_load_short,host=server02,region=us-west value=0.55 1422568543702900257
cpu_load_short,direction=in,host=server01,region=us-west value=2.0 1422568543702900257
从文件写入
通过传递@filename
到文件来写入文件中的点curl。文件中的数据应遵循InfluxDB行协议语法。
格式正确的文件(cpu_data.txt)的示例:
cpu_load_short,host=server02 value=0.67
cpu_load_short,host=server02,region=us-west value=0.55 1422568543702900257
cpu_load_short,direction=in,host=server01,region=us-west value=2.0 1422568543702900257
写入数据cpu_data.txt
到mydb
与数据库:
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary @cpu_data.txt
注意:如果您的数据文件具有5,000个以上的点,则可能有必要将该文件拆分为几个文件,以便将数据批量写入InfluxDB。默认情况下,HTTP请求在五秒钟后超时。超时后,InfluxDB仍将尝试写入这些点,但是不会确认它们已成功写入。
HTTP响应摘要
- 2xx:如果收到您的写请求HTTP 204 No Content,那就成功了!
- 4xx:InfluxDB无法理解该请求。
- 5xx:系统过载或严重损坏
查询数据
curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "q=SELECT \"value\" FROM \"cpu_load_short\" WHERE \"region\"='us-west'"
InfluxDB返回JSON。您的查询结果将显示在”results”数组中。如果发生错误,InfluxDB会设置一个”error”包含错误说明的密钥。
{
"results": [
{
"statement_id": 0,
"series": [
{
"name": "cpu_load_short",
"columns": [
"time",
"value"
],
"values": [
[
"2015-01-29T21:55:43.702900257Z",
2
],
[
"2015-01-29T21:55:43.702900257Z",
0.55
],
[
"2015-06-11T20:46:02Z",
0.64
]
]
}
]
}
]
}
注意:附加pretty=true到URL会启用精美打印的JSON输出。尽管这对于调试或在使用诸如之类的工具直接查询时很有用curl,但不建议用于生产环境,因为它会消耗不必要的网络带宽。
多个查询
通过单个API调用将多个查询发送到InfluxDB。只需使用分号分隔每个查询,例如:
curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "q=SELECT \"value\" FROM \"cpu_load_short\" WHERE \"region\"='us-west';SELECT count(\"value\") FROM \"cpu_load_short\" WHERE \"region\"='us-west'"
返回:
{
"results": [
{
"statement_id": 0,
"series": [
{
"name": "cpu_load_short",
"columns": [
"time",
"value"
],
"values": [
[
"2015-01-29T21:55:43.702900257Z",
2
],
[
"2015-01-29T21:55:43.702900257Z",
0.55
],
[
"2015-06-11T20:46:02Z",
0.64
]
]
}
]
},
{
"statement_id": 1,
"series": [
{
"name": "cpu_load_short",
"columns": [
"time",
"count"
],
"values": [
[
"1970-01-01T00:00:00Z",
3
]
]
}
]
}
]
}
java
- Java 1.8+ (tested with jdk8 and jdk11)
- Maven 3.0+ (tested with maven 3.5.0)
org.influxdb
influxdb-java
2.17
compile 'org.influxdb:influxdb-java:2.17'