7.1.4. 常见问题 [1]¶
partial write: points beyond retention policy dropped=1¶
如: 存储2天前的数据,存储策略存储1天
时区问题¶
说明:
influx的时间是utc时间,但查询要用当地时区
解决:
// 增加选项: TZ('Asia/Beijing')
如:
influx -precision rfc3339 -execute="
SELECT count(*) FROM "win_cpu"
WHERE (time >= now() - 15d)
GROUP BY IP,host TZ('Asia/Beijing')" // 指定东八区
-database=telegraf -format=csv
GROUP BY(1w)按周查询问题¶
默认是从周四开始(即周四为第1天)
如果想从周一开始则使用
GROUP BY time(7d, 4d)
orGROUP BY time(1w, 4d)
orGROUP BY time(1w, -3d)
如果想从周三开始则使用
GROUP BY time(1w, 6d)
orGROUP BY time(1w, -1d)
本质就是从周四到周x有几天(为正), 周x到周四有几天(为负)
GROUP BY(1M)按月查询问题¶
查询返回结果为空的问题¶
在SELECT语句中只查询tag没有数据:
一个查询在SELECT子句中至少需要一个field key来返回数据。 如果SELECT子句仅包含单个tag key或多个tag key,则查询返回一个空的结果。 SELECT子句中必须至少有一个field。
无引号或双引号tag value或field value的查询将不会返回任何数据,并且在大多数情况下不会返回错误:
> SELECT "water_level" FROM "h2o_feet" WHERE "location" = santa_monica > SELECT "water_level" FROM "h2o_feet" WHERE "location" = "santa_monica" > SELECT "water_level" FROM "h2o_feet" WHERE "location" = 'santa_monica' 说明: 前2条都无数据,第3条正常返回 注意: where的值一定要是单引号
INTO子句的共同问题¶
问题一:丢数据:
INTO查询在SELECT子句中包含tag key,则查询将当前measurement中的tag转换为目标measurement中的字段 这可能会导致InfluxDB覆盖以前由tag value区分的点 注: 要将当前measurement的tag保留在目标measurement中的tag中 GROUP BY相关tag key或INTO查询中的GROUP BY *
为啥是从周四开始¶
为啥不从周一或周日开始:
So why not start from Monday or Sunday?
Is there any special reason?
It's because the epoch was a Thursday (1 January 1970).
Influx only cares about epoch (a.k.a. unix) time. Which is also why you can't group by month.
partial write: max-values-per-tag limit exceeded (100000/100000)¶
每个 tag key 下默认至多有 10W 个 tag value,可以通过将该值设置为 0 来取消限制:
配置文件路径:/etc/influxdb/influxdb.conf
修改配置:max-values-per-tag = 0
influxdb. Configure InfluxDB: https://docs.influxdata.com/influxdb/v1.8/administration/config/#max-values-per-tag–100000
stackoverflow: Max values per tag limit exceeded InfluxDB