首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InfluxDB是否可以使用相同的源和目标度量而具有不同/新标记的连续查询?

InfluxDB是否可以使用相同的源和目标度量而具有不同/新标记的连续查询?
EN

Stack Overflow用户
提问于 2020-01-29 05:16:51
回答 1查看 576关注 0票数 0

下面是我要提出这个问题的情况。

要求:在influxDb中预先聚合时间序列数据,每个传感器在设备中的粒度为秒、分钟、小时、天数和周。

当前的建议:创建五个连续查询(每个粒度级别一个,即秒、分钟.)对于设备的每个传感器在不同的保留策略中作为原始时间序列数据的保留策略,当设备在板上时。

的限制与目前的建议:增加了设备/传感器的数量(时间序列数据源),流入将因过多的连续查询(这是不建议的)而膨胀,并将给influxDb实例本身带来代价。

问题:为了避免上述问题,是否有可能在同一源度量(即原始时间序列度量)上创建连续查询,但可以使用引入的新标记来区分度量中的聚合,从而将结果与度量中的原始时间序列数据区分开来。

示例:

代码语言:javascript
复制
CREATE CONTINUOUS QUERY "strain_seconds" ON "database"
RESAMPLE EVERY 5s FOR 1m
BEGIN
  SELECT MEAN("strain_top") AS "STRAIN_TOP_MEAN" INTO "database"."raw"."strain" FROM "database"."raw"."strain" GROUP BY time(1s),*
END
EN

回答 1

Stack Overflow用户

发布于 2020-01-29 14:06:19

据我所知,并且已经从文档中看到,在连续查询中不可能应用新的标记。

如果我正确地理解了需求,这是您可以处理它的一种方法。

代码语言:javascript
复制
CREATE CONTINUOUS QUERY "strain_seconds" ON "database"
RESAMPLE EVERY 5s FOR 1m
BEGIN
  SELECT MEAN("strain_top") AS "STRAIN_TOP_MEAN" INTO "database"."raw"."strain" FROM "database"."strain_seconds_retention_policy"."strain" GROUP BY time(1s),*
END

这将将数据保存在相同的度量中,但保留策略不同-- strain_seconds_retention_policy。在执行select时,可以指定要从中选择的相应保留策略。

请注意,不可能同时从多个保留策略执行select。如果不指定一个,则使用默认的(而不是所有的)。如果这是您需要的东西,那么可以使用另一种方法。

我不太明白为什么每个设备和每个传感器都需要定义一个连续的查询。您只需要定义五个(1 /秒、分钟、小时、天、周)并执行group by * (全部),而您已经这样做了。只要源数据池具有相应设备和传感器的id标记,重放的数据池也将具有该标记。任何新添加的设备(数据)都将由这5个查询自动处理,并保存到相应的保留策略中。

如果您确实希望应用其他标记,则可以在自定义脚本中处理数据库外的数据,并使用所需的任何附加标记将其写回,而不是使用连续查询。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59960850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档