InfluxDBClientError: политика хранения не найдена: autogen
Я просматриваю https://www.influxdata.com/blog/getting-started-python-influxdb/ документацию, чтобы запросить InflDB с помощью Python.
Я могу создать базу данных:
client = InfluxDBClient(host='localhost', port=8086)
client.create_database('pyexample')
client.get_list_database()
client.switch_database('pyexample')
Плюс я также отправляю данные в базу данных:
json_body = [
{
"measurement": "brushEvents",
"tags": {
"user": "Carol",
"brushId": "6c89f539-71c6-490d-a28d-6c5d84c0ee2f"
},
"time": "2018-03-28T8:01:00Z",
"fields": {
"duration": 127
}
},
{
"measurement": "brushEvents",
"tags": {
"user": "Carol",
"brushId": "6c89f539-71c6-490d-a28d-6c5d84c0ee2f"
},
"time": "2018-03-29T8:04:00Z",
"fields": {
"duration": 132
}
},
{
"measurement": "brushEvents",
"tags": {
"user": "Carol",
"brushId": "6c89f539-71c6-490d-a28d-6c5d84c0ee2f"
},
"time": "2018-03-30T8:02:00Z",
"fields": {
"duration": 129
}
}
]
Вызов тела json как:
client.write_points(json_body)
True
Но скоро я хочу запросить метрики из базы данных с помощью:
client.query('SELECT "duration" FROM "pyexample"."autogen"."brushEvents" WHERE time > now() - 4d GROUP BY "user"')
Этот запрос приводит к ошибке:
Файл ipython-input-31-6e47204db16b, строка 1, в модуле client.query('SELECT "duration" ОТ "pyexample". "Autogen". "BrushEvents" ГДЕ время> now() - 4d GROUP BY "user"')
Файл "/home/rahul/anaconda2/lib/python2.7/site-packages/influxdb/client.py", строка 420, в запросе в data.get('results', [])
Файл "/home/rahul/anaconda2/lib/python2.7/site-packages/influxdb/resultset.py", строка 25, в init init InfluxDBClientError(self.error)
InfluxDBClientError: retention policy not found: autogen
Как я могу получить результат запроса?
Я проверил политику хранения, где также обнаружил ошибку:
client.query('SHOW RETENTION POLICIES')
Traceback (последний вызов был последним):
Файл "", строка 1, в файле client.query ('ПОКАЗАТЬ ПОКАЗАНИЯ ПО УХОДУ')
Файл "/home/rahul/anaconda2/lib/python2.7/site-packages/influxdb/client.py", строка 409, в запросе Ожидаемый_ответ_код = ожидаемый_ответ_код
Файл "/home/rahul/anaconda2/lib/python2.7/site-packages/influxdb/client.py", строка 286, в запросе повышает InfluxDBClientError (response.content, response.status_code)
InfluxDBClientError: 400: {"error": "запрос синтаксического анализа ошибки: найден EOF, ожидается включение в строке 1, символ 25"}
2 ответа
+ Изменить autogen
в default
:
client.query('SELECT "duration" FROM "pyexample"."default"."brushEvents" WHERE time > now() - 4d GROUP BY "user"')
Это зависит от того, какое сообщение об ошибке вы получаете. В моем случае я получил ошибку « Политика хранения не найдена: навсегда », что переводится как «Политика хранения с именем «навсегда» не найдена» .
И я исправил это:
- Войдите в док-контейнер InfluxDB.
- Запуск
influx
-
use collectd
выбрать базу данных - Создайте новую политику хранения с именем «навсегда»:
create retention policy "forever" on "collectd" duration 2d replication 1
Официальную документацию можно найти: Управление политикой хранения