【问题标题】:influxdb : how do I filter by a field > than 4influxdb:如何按大于 4 的字段进行过滤
【发布时间】:2021-02-17 14:21:06
【问题描述】:

我有以下显示所有记录的查询:

SELECT "ApparentPower" FROM "machine01" WHERE "pin_no" = 'pin 2 ' AND $timeFilter;

我想按字段“ApparentPower”过滤,只显示大于 10 的值。我该怎么做?

如果我运行查询 SELECT "ApparentPower" FROM "machine01" WHERE "pin_no" = 'pin 2 ' AND $timeFilter AND "ApparentPower" > 10;,即使有大于 10 的值,我也没有返回任何值。

另外,如果我运行查询 SELECT "ApparentPower" FROM "machine01" WHERE "pin_no" = 'pin 2 ' AND $timeFilter AND "ApparentPower" < 10;,我不会再次返回任何值。

但是,如果我运行查询 SELECT "ApparentPower" FROM "machine01" WHERE "pin_no" = 'pin 2 ' AND $timeFilter AND "ApparentPower" != 10;,我会返回所有值。

我已经使用命令curl -sL -I localhost:8086/ping检查了influx im运行的版本:

HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: f4132538-7129-11eb-b770-000000000000
X-Influxdb-Version: 1.1.1
Date: Wed, 17 Feb 2021 14:10:56 GMT

【问题讨论】:

  • “表观功率”字段的数据类型是什么? (显示“machine01”中的字段键)
  • 奇怪的是它们都是字符串,我该如何纠正这个?我猜他们想要整数? pin_no string ApparentPower string AnalogueRead string
  • 我无法编辑我之前的声明。 pin 可以是字符串,但是 ApparentPower 和 AnalogueRead 应该是浮动的。是否可以更改它们?
  • 它们应该以正确的数据类型写入 InfluxDB。详见线路协议文档:docs.influxdata.com/influxdb/v1.8/write_protocols/…
  • 您可以写入不同的字段名称,或 DROP MEASUREMENT machine01。或者,如果您有分片,请等到写入进入下一个分片。

标签: filter influxdb influxdb-python


【解决方案1】:

很可能,“ApparentPower”字段作为字符串写入 InfluxDB。

您可以使用以下方式验证这一点:SHOW FIELD KEYS FROM "machine01"

字段必须写为整数或浮点数才能与<进行比较

更改数据类型

您无法更改现有测量字段的数据类型,但您可以:

  • 写入不同的字段名称,
  • 使用DROP MEASUREMENT machine01删除测量,
  • 如果您启用了分片,请等到写入转到下一个分片。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-23
    • 2014-08-30
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2013-02-07
    相关资源
    最近更新 更多