首页 > 解决方案 > TimeScaleDB 连续聚合刷新策略结束偏移未按预期工作

问题描述

我是 TimeScaleDB 的新手,我创建了一个连续的聚合视图

CREATE MATERIALIZED VIEW minute_data 
WITH (timescaledb.continuous)
AS
SELECT
   time_bucket('1 min', time_stamp) as bucket,
   thing_key,
   avg(pulse_l) as avg_pulse_l,
   avg(pulse_h) as avg_pulse_h,
   max(pulse_l) as max_pulse_l,
   max(pulse_h) as max_pulse_h,
   min(pulse_l) as min_pulse_l,
   min(pulse_h) as min_pulse_h,
   count(thing_key) as counts,
   sum(pulse_l) as sum_pulse_l,
   sum(pulse_h) as sum_pulse_h
FROM
 water_meter
GROUP BY thing_key, bucket
WITH NO DATA;

我为此视图创建了刷新策略:

SELECT add_continuous_aggregate_policy('minute_data',
  start_offset => INTERVAL '1 day',
  end_offset => INTERVAL '1 hour',
  schedule_interval => INTERVAL '1 minute');

即使将结束偏移量设置为 1 小时后,我也会获得最新添加的数据。

刷新日志:

 2021-07-14 08:09:39.597 UTC [1268] LOG:  refreshing continuous aggregate "minute_data" in window [ 2021-07-13 08:10:00+00, 2021-07-14 07:09:00+00 ]

但是物化视图包含结束偏移之外的数据,虽然开始偏移设置工作正常

以下是物化视图中的数据: 物化视图

编辑:此外,我什至在政策刷新之前就获得了最新数据。

标签: offsetmaterialized-viewstimescaledbhypertablecontinuous-aggregates

解决方案


上述策略将每分钟运行一次 (schedule_interval)。当它运行时,它将根据定义连续聚合的查询,具体化执行时间的 1 天 (start_offset) 到 1 小时 (end_offset) 之间的数据。

即使将结束偏移量设置为 1 小时后,我也会获得最新添加的数据。

每分钟刷新一次信息将使视图中的最新信息每分钟可用一次。我看到日志时间是08:09:39,您的最新数据来自08:08:00. 有什么不一致的地方?

你介意在这里分享更多关于你的期望的细节吗?


推荐阅读