最近才开始使用 TimescaleDB 和 Postgres 来处理大多数数据请求。
但是,我遇到了一个问题,即我对时间序列数据的请求效率极低。
这是一个可以是任意时间长度的数据系列,具有特定的整数值。
大多数情况下,除非出现异常,否则该值将是相同的。因此,而不是获取 +10,000 行数据。我想将其汇总为“时间块”。
假设一行中有 97 个项目,其值为 100(每 5 分钟新项目)#98 连续 5 个项目的值为 48,然后再返回 100,再增加 2,900 行。
我不想获取 3002 项来显示此数据。我应该只需要取 3 件物品。
- 1 项表示从 startDate 开始的值为 100
- 1 项表示从 #1 之后的 startDate 开始的值为 48
- 1 项表示该值从 #2 之后的 startDate 再次为 100
但是我在弄清楚如何使用 timescaledb 做到这一点时遇到了一些麻烦。
基本上,如果该值与最后一个值相同,则将其聚合。这就是我需要它做的所有事情。
有谁知道如何使用连续聚合(或者如果有更快的方法)为 timescaleDB 中的这种情况构建一个 VIEW 来获取这个?