1

我的 Postgres 数据库中有几个时间序列数据表,我最近将其转换为TimescaleDB hypertables。我有一个巨大的物化视图,但需要很长时间才能令人耳目一新。出于这个原因,我想使用 TimescaleDB Continuous Aggregates。不幸的是,这给出了一个错误消息:

错误:在 SELECT 查询中只允许 1 个超表用于连续聚合

因此,我计划通过简单地创建一个新表并每 10 分钟左右计算/附加新记录来构建自己的连续聚合。一位同事建议,也许时间尺度的人有充分的理由不允许来自多个超表的连续聚合,但我只是不明白它可能是什么。

在他们的 github 页面上创建了一个关于它的问题,但目前我还没有得到任何回复。所以在我开始构建我自己的持续聚合之前,我想我会问你们来自 stackoverflow 的聪明人。

有谁知道 TimescaleDB 的人们不允许来自多个超表的连续聚合的原因是什么?在自己构建类似的东西时,你会看到什么挑战?

4

1 回答 1

2

连续聚合的想法是只刷新热数据的当前窗口,而不接触旧数据。但是,在使用连接的视图查询的情况下,并不总是可以计算连续聚合实现的当前增量。如果连接需要检查旧数据,则会降低性能。

话虽如此,在某些用例中应该可以支持有限的连接查询,这些限制可能会影响,哪些表可以连接,哪些应该是连接条件和过滤器。

我建议在TimescaleDB的问题中描述您的案例,以便在设计该功能时考虑。

于 2021-06-14T12:43:51.710 回答