gpt4 book ai didi

influxdb - 如何从缺少字段的 Influx 数据库中查询?

转载 作者:行者123 更新时间:2023-12-04 14:23:00 30 4
gpt4 key购买 nike

我有一个通过 telegraf 收集的测量值。它具有以下结构:

名称:智能设备

fieldKey    fieldType
-------- ---------
exit_status integer
health_ok boolean
read_error_rate integer
seek_error_rate integer
temp_c integer
udma_crc_errors integer

当我查询这个数据库时,我可以这样做:

> select  * from smart_device where  "health_ok" = true limit 1
name: smart_device
time capacity device enabled exit_status health_ok host model read_error_rate seek_error_rate serial_no temp_c udma_crc_errors wwn
---- -------- ------ ------- ----------- --------- ---- ----- --------------- --------------- --------- ------ --------------- ---
15337409500 2000398934016 sda Enabled 0 true osd21 Hitachi HDS722020ALA330 0 0 JK11A4B8JR2EGW 38 0 5000cca222e6384f

还有这个:

> select  * from smart_device limit 1
name: smart_device
time capacity device enabled exit_status health_ok host model read_error_rate seek_error_rate serial_no temp_c udma_crc_errors wwn
---- -------- ------ ------- ----------- --------- ---- ----- --------------- --------------- --------- ------ --------------- ---
1533046990 sda 0 osd21

但是当我尝试过滤掉 health_ok 为空的记录时,我得到空输出:

> select  * from smart_device where "health_ok"!= true 
>

如何选择空(没有?空?)health_ok 的测量值?

最佳答案

不幸的是,目前还没有办法使用 InfluxQL 来做到这一点。 InfluxDB是一种面向文档的数据库;这意味着测量的行可以有不同的模式。因此,一行的某个字段没有null的概念;实际上这一行没有字段。例如假设测量 cost

中有 4 行
> select * from cost
name: cost
time isok type value
---- ---- ---- -----
1533970927859614000 true 1 100
1533970938243629700 true 2 101
1533970949371761100 3 103
1533970961571703900 2 104

如您所见,有两行带有 isok=true 和两行没有名为 isok 的字段;所以只有一种方法可以通过此查询选择具有 isok 字段的行的时间:

> select isok from cost
name: cost
time isok
---- ----
1533970927859614000 true
1533970938243629700 true

由于InfluxQL目前不支持where子句中的子查询,因此无法查询没有isok字段的行(如果InfluxDB支持这种类型的查询,你可以这样查询SELECT * FROM cost WHERE time NOT IN(SELECT isok FROM cost))

关于influxdb - 如何从缺少字段的 Influx 数据库中查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51788320/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com