InfluxDB:通过 REST 从测量中查询数据 API

InfluxDB: Query data from measurement via REST API

我正在使用 InfluxDB

的 REST API
curl -s -XPOST -G influxdb_url:8086/query?pretty=true --data-urlencode "db=metrics" --data-urlencode "q=SHOW MEASUREMENTS WITH MEASUREMENT=~/a.b-c*/"

检索可用的测量值

    {
    "results": [
        {
            "statement_id": 0,
            "series": [
                {
                    "name": "measurements",
                    "columns": [
                        "name"
                    ],
                    "values": [
                        [
                            "a.b-c"
                        ],
                        [
                            "a.b-cd"
                        ],
                        [
                            "a.b-cde"
                        ],
                        [
                            "a.b-cdfg"
                        ]
                    ]
                }
            ]
        }
    ]
}

然后我尝试select其中之一的所有数据

curl -s -XPOST -G influxdb_url:8086/query?pretty=true --data-urlencode "db=metrics" --data-urlencode "q=SELECT * FROM "a.b-c""

我收到了这个错误

{
    "error": "error parsing query: found -, expected ; at line 1, char 18"
}

如果我登录 Influx 实例,则完全相同的查询有效

select * from "a.b-c"

这里的问题是在指定查询的字符串中使用了引号 "。要在查询中正确包含引号,您需要将字符串用三重单引号引起来。在这种特殊情况下正确的方法如下:

curl -s -XPOST -G influxdb_url:8086/query?pretty=true --data-urlencode "db=metrics" --data-urlencode '''q=SELECT * FROM "a.b-c"''' 

这反过来又会给你一个想要的结果。使用测试数据集的响应示例:

{
    "results": [
        {
            "statement_id": 0,
            "series": [
                {
                    "name": "a.b-c",
                    "columns": [
                        "time",
                        "m",
                        "value"
                    ],
                    "values": [
                        [
                            "2020-10-06T15:13:29.562248587Z",
                            "a",
                            0
                        ]
                    ]
                }
            ]
        }
    ]
}