使用 TimescaleDB 从多个超表的变量子集创建合并数据集 - 连续聚合

问题描述 投票:0回答:1

我想看看是否有人可以提出解决这个问题的方法,然后我完全放弃它作为一种选择。

我们有一个 Postgres (14) TimescaleDB 数据库。它有几个超级表,每个超级表都由不同的工具填充。这些表包含时间戳、字段 1、字段 2、...、字段 N 列,其中每个字段都是测量值(可以是温度、速度、方向(0-360 度)等)。

我们希望创建多个表中字段子集的合并数据集。它们应该以 5 秒的间隔聚合到相同的时间戳。据我所知,使用 TimescaleDB 的连续聚合功能这是不可能的,因为:

  1. 连续聚合不允许在超表上进行 CTE 或连接。即使我要为我们想要包含的每个表生成连续聚合,时间戳也不一定在最终产品中同步?
  2. 连续聚合不允许函数不是 IMMUTABLE。我们使用 atan / cos / sin 来确保航向和方向在 359-0 度范围内正确平均,而时间刻度对此有所抱怨。

任何人都可以提出解决我遇到的这些障碍的方法吗?或者我的备份的替代方案 - 有一个由 CRON 作业定期调用的大视图查询?

postgresql time-series timescaledb continuous-aggregates
1个回答
0
投票

我认为您可以通过创建一个超表来跟踪连接的数据来克服这个问题。请记住,连续聚合是超表。

为每个数据源制定一个用户定义的操作,以独立地为超表提供数据。每个动作都可以独立安排,但都提供相同的超表。

© www.soinside.com 2019 - 2024. All rights reserved.