influxDB写入数据找不到的原因 最后更新时间:2024年10月15日 ### 前言 由于influxDB使用UTC记录时间,而在国区内会有大约8个小时的时间差。再加上系统的使用关系,可能会导致初次使用influxDB写入数据产生一些问题。 ### 问题1,使用webui手工导入line protocol查询不到数据 #### 原因 手工导入line protocol数据时需要手工指定导入数据的时间戳精度,否自会导致导入数据丢失 ![](https://yidaimingjvn.xyz/usr/uploads/2024/10/4244380288.png) #### 解决办法 根据数据的时间戳精度选择手工导入的数据精度 ### 问题2,导入数据后当期时间段查询不到数据 #### 原因 由于influxDB使用UTC记录时间,而在国区内会有大约8个小时的时间差。录入数据后,需要基于这8个小时的时间差做偏移计算 #### 解决办法 录入数据后,需要基于这8个小时的时间差做偏移计算。 示例: ```javascript import "timezone" option location = timezone.fixed(offset: 8h) from(bucket: "mydb") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "home") |> filter(fn: (r) => r["_field"] == "co" or r["_field"] == "hum" or r["_field"] == "temp") |> filter(fn: (r) => r["room"] == "Living Room") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> yield(name: "mean") ``` 依赖文档: https://docs.influxdata.com/flux/v0/stdlib/timezone/#Copyright 官方解释: https://www.influxdata.com/blog/time-zones-in-flux/ #### 其他资料 InfluxDb 时间范围查询踩坑 问题:最近查询influxdb数据的时候,数据查不出来,分析发现查询数据少了 8 小时。 查询语句: ```sql SELECT cpu_used FROM host.host where time >= '2019-10-18T00:00:00Z' and time < '2019-10-23T00:00:00Z' group by time(1d) ``` 原因分析:因为influxdb查询的时候默认使用UTC时间查询(零时区),而我们想要查询的时间应该是使用东八区时间(比零时区时间快了8个小时)。 解决方法:查询语句的最后加TZ('Asia/Shanghai'),即可解决。 查询语句更改为: ```sql SELECT cpu_used FROM user_day where time >= '2019-10-18T00:00:00Z' and time < '2019-10-23T00:00:00Z' group by time(1d) TZ('Asia/Shanghai')。 ``` 备注:如果这里的时间查询使用的是时间戳查询,则不存在时区的问题。所以能用时间戳查询就尽量用时间戳查询。
Comments | NOTHING