Серия не удалена, хотя ответ curl от InfluxDB равен HTTP 200

#curl #influxdb

#curl #influxdb

Вопрос:

Я пытаюсь использовать DROP SERIES вместе с WITH инструкцией во InfluxDB. Я хочу удалить некоторые значения, используя следующий запрос:

 DROP SERIES FROM "measurement_name" WHERE "tag_name"='tag_value'
  

В моем случае для теста необходимо удалить все значения из измерения, поскольку у меня нет отдельных тегов.

cURL

 curl -i -XPOST 'http://localhost:8086/query?db=testNimble' --data-urlencode 'q=drop series from "pressure" where "unit"='hPa''
  

Ответ на демоне InfluxDB

 2019-03-18T18:36:37.818018Z     info    Executing query {"log_id": "0EGWa~nl000", "service": "query", "query": "DROP SERIES FROM pressure WHERE unit = hPa"}
[httpd] 127.0.0.1 - - [18/Mar/2019:19:36:37  0100] "POST /query?db=testNimble HTTP/1.1" 200 33 "-" "curl/7.35.0" c3b5ba54-49ac-11e9-800e-000000000000 0
  

Ответ от HTTP

 HTTP/1.1 200 OK
Content-Type: application/json
Request-Id: ebd5b2a4-49ab-11e9-800b-000000000000
X-Influxdb-Build: OSS
X-Influxdb-Version: 1.6.1
X-Request-Id: ebd5b2a4-49ab-11e9-800b-000000000000
Date: Mon, 18 Mar 2019 18:30:35 GMT
Transfer-Encoding: chunked

{"results":[{"statement_id":0}]}
  

Однако данные все еще существуют:

 select * from pressure limit 10

name: pressure
time                unit v
----                ---- -
1545153813714000000 hPa  101997
1545153814761000000 hPa  102004
1545153816045000000 hPa  102006
1545153817203000000 hPa  102003
1545153818265000000 hPa  102003
1545153819446000000 hPa  102003
1545153820498000000 hPa  102004
1545153821680000000 hPa  102007
1545153822854000000 hPa  102003
1545153823904000000 hPa  102003
  

Я попытался перезапустить демон, но данные все еще существуют.

Журнал ввода

В нем упоминается, что я пытаюсь запросить это

  "query": "DROP SERIES FROM pressure WHERE unit = hPa"
  

Двойные кавычки и одинарные кавычки здесь не экранируются.

Я попытался изменить свой запрос с помощью escape для кавычек следующим образом:

  curl -X POST 'http://localhost:8086/query?db=test' --data-urlencode 'q=DROP SERIES WHERE "unit"='hPa' '
  

затем он запрашивает дополнительную одинарную кавычку (ПОЧЕМУ? все кавычки закрыты)

и ответ выдает ошибку:

 {"error":"error parsing query: found \, expected identifier, string, number, bool at line 1, char 26"}
  

Ответ №1:

Я смог решить эту проблему в WSL, используя многострочное форматирование для bash следующим образом:

 curl -i -XPOST 
> 'http://localhost:8086/query?db=test' 
> --date-urlencode 
> "q=DROP SERIES FROM WHERE "unit"='hPa'"