问题标签 [influxql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
influxdb - 在 influxdb 中显示具有相似名称的测量
我有一个包含 300 多个测量值的流入数据库。其中一些具有相似的名称。有没有一种方法可以搜索名称中具有相似字符串的测量名称。influx 是否有任何类似于 sql 的语法,我可以使用“like”运算符找到类似的表名。我可以使用类似的东西吗
谢谢
influxdb - “高基数”字段(或标签)上的 InfluxDB WHERE 子句
我正在使用 InfluxDB 并尝试将其用于车速跟踪用例。每辆车在给定时间的速度都存储为一个数据点。我将“vehicle_registration”建模为标签,将其他值建模为字段。我希望将 where 子句应用于“vehicle_registration”并且它必须很快。因此,我默认利用标签上的索引功能。但对我来说最大的绊脚石是标签需要具有较低的基数。这里有什么建议?我希望在“where”子句中应用一个高基数字段,并且查询应该很快。
有什么建议吗?
database - 如何在查询期间从 Influx 中的两个表中获取特定行
我尝试在下面的示例中编写对 Influx 数据库的查询:
我有两张桌子:
我想使用一个查询来获取行:id 1 and 2 fromtable_1
和 id 2 fromtable_2
在查询中:
SELECT * FROM table_1, table_2 WHERE id=1 AND id=2
...我得到所有数据。
我试过:
SELECT * FROM table_1, table_2 WHERE table_1.id=1 AND id=2
......但它不起作用。
感谢帮助!
sql - 在组织 InfluxDB 数据库时,这两种方法中的哪一种更受青睐?
我正在尝试决定如何在 InfluxDB 数据库中组织测量(我相信他们称之为架构设计和数据布局),但我认为这可能是一个更一般的数据库类型问题。
举个简单的例子,我在客厅和室外两个位置测量两个量,温度和湿度(想象一下,我知道!)。
InfluxDB 具有插入数据点的语法:
测量,tag_key=tag_value field_key=field_value
所以有两个明显的(至少对我来说)选项。简而言之,第一个选项将插入这样的数据点:
而第二个选项会这样做:
我的问题更高级:
- 有没有首选/接受的方法来解决这个问题?
- 如果我尝试将其扩展到更多数量/位置/数据类型,我会遇到其中任何一个问题吗?
- 例如,如果我稍后尝试在 Grafana 中绘制这些东西,或者如果我稍后尝试实现许多InfluxQL 函数中的一些函数,那么这两种方法是否提供了优势?
- 有没有人对此提供任何一般性建议?
我自己的想法:
在我看来,选项 1 更像是 InfluxDB 描述“测量”所暗示的内容。温度和湿度都是独立的量。但是将其称为“价值”似乎有点笨拙。
选项 2 似乎具有湿度和温度共享完全相同的时间戳的优点。这将很有用,例如,如果我想将数据导入其他软件并在两个数量之间进行关联,这意味着我不必进行任何插值或分箱来使它们匹配。
我不确定选项 2 是否只是一个名为sensor_measurements的通用测量值是否是一个坏主意,并且以后很难维护。
详细地:
选项1
- 对每个温度和湿度进行单独的“测量” ,将位置用作“标签”,并将“字段”命名为值:
在时间t1,插入数据:
在时间t2,插入一些不同的数据:
然后,我可以通过查询以下内容来访问客厅温度:
我也可以使用group by 函数来做这样的事情:
选项 2
- 有一个名为sensor_measurements的组合“测量” ,例如,对location使用“标签” ,然后为每个温度和湿度使用单独的“字段” :
在时间t1,插入数据:
在时间t2,插入一些不同的数据:
我现在可以通过查询以下内容来获取客厅温度:
我现在可以使用group by 函数来执行以下操作:
influxdb - 如何在通量查询中的正则表达式条件内转义正斜杠“/”
我必须查询 InFlux 数据库并匹配其中一列中的特定字符串。
就像是: WHERE (\"namecache\" =~ /<match_string>/)
但是,<match_string>本身可以包含“/”字符。我无法转义匹配字符串中的正斜杠,因此查询失败。
有没有办法逃避'/'斜线?还是有另一种方法来匹配部分字符串?
提前致谢!
time-series - 如何在 InfluxDB 订阅端点获取数据?
嗨,我使用以下命令创建了订阅 ( http
) :InfluxDB
并且在ExpressJs
端口上运行的应用程序中9001
添加了如下路由:
我以为我会得到所有的数据,req.body
但我什么也没得到。如何通过influxdb 文档中提到的订阅获取数据。
我已经看到了更多正在使用
Kapacitor
的示例,但到目前为止我们还没有计划Kapacitor
。
让我知道如何从InfluxDB
订阅端点获取更新的数据?或者它应该是这样的,我们已经InfluxDB
从这个端点进行正常查询以获取数据?
sql - 检索 InfluxDB 中每个标签的所有最后点/记录,没有 WHERE 子句
我有大约 1500 台设备,它们以随机频率将数据推送到我的 InfluxDB v1.8+ 实例。我正在寻找最有效的方法,至少在性能方面,来收集每个 device_id(标签)的最后一点。
为简洁起见,此测量中的数据非常简单:
我保证每个点都填充了“使用”字段。这不是问题。因此,对于每个标签(device_id),拥有最新的时间戳实际上就是我想要的。
我当前的解决方案远非可扩展且效率不高,它首先列出所有 device_id:
...然后遍历每个以获得最后一点:
我的问题:如何最有效地获取所有 device_ids (tag)的最后点/记录,而不在 device_id 上提供 WHERE 子句?最好在一个命令中,这样我就可以删除 foreach 迭代。
其他风格也有同样的问题,例如在 MySQL 中。这个问题是特定于 InfluxDB 的。
influxdb - 添加逻辑或条件时,InfluxDB 不返回结果
我正在尝试将以下 InfluxDB 查询与时间和字段值的条件一起使用,但它不返回任何结果:
但是,当我删除最后一个条件时,我的测量值会返回:
这是 InfluxDB 中的错误,还是我做错了什么?我在文档中找不到任何内容表明时间和现场条件无法组合...我尝试从 1.7 升级到 1.8。
自己尝试一下:
grafana - 你如何在 grafana/influxql 中获得最后一次测量的年龄?
看门狗进程通过在 influxdb 中写入测量值来报告主机“活跃度”,例如
watchdog,host=host_xyz alive=1
自上次测量以来已经过去了太多时间时,我有兴趣在 Grafana 中显示。有没有办法从 Influx 查询这些信息?
(9个月前也有人问过类似的问题,但没有答案:InfluxQL:记录年龄 是否有可能时间序列数据库不能给出记录的年龄?)
谢谢!
influxql - InfluxDB 查询除了最后一个
有没有办法创建一个选择除最后一个值之外的所有值的 InfluxQL 查询?我当前在 Grafana 中的 InfluxDB 查询如下所示: