Timescale Cloud:性能、扩展、企业版
自托管产品
MST
在由 window_start
和 window_end
给定的刷新窗口内刷新连续聚合的所有桶。
连续聚合将聚合数据具体化为时间桶。例如,在 1 天的数据中计算最小值、最大值和平均值,这由 time_bucket
间隔决定。因此,在刷新连续聚合时,只有完全符合刷新窗口的桶才会被刷新。换句话说,对于不完整的桶,无法计算聚合。因此,任何不符合给定刷新窗口的桶都将被排除。
该函数要求窗口参数值的时间类型与连续聚合的时间桶表达式兼容——例如,如果时间桶在 TIMESTAMP WITH TIME ZONE
中指定,则开始时间和结束时间应为日期或时间戳类型。请注意,使用 TIMESTAMP WITH TIME ZONE
类型的连续聚合与 UTC 时区对齐,因此,如果在本地时区指定 window_start
和 window_end
,则在刷新时需要考虑任何相对于 UTC 的时区偏移,以与桶边界对齐。
要提高连续聚合刷新的性能,请参阅 CREATE MATERIALIZED VIEW 。
名称 | 类型 | 描述 |
---|---|---|
continuous_aggregate | REGCLASS | 要刷新的连续聚合。 |
window_start | INTERVAL, TIMESTAMPTZ, INTEGER | 要刷新的窗口的起始时间,必须在 window_end 之前。 |
window_end | INTERVAL, TIMESTAMPTZ, INTEGER | 要刷新的窗口的结束时间,必须在 window_start 之后。 |
您必须根据超表时间列的类型,以不同的方式指定 window_start
和 window_end
参数。对于具有 TIMESTAMP
、TIMESTAMPTZ
和 DATE
时间列的超表,将刷新窗口设置为 INTERVAL
类型。对于具有基于整数的时间戳的超表,将刷新窗口设置为 INTEGER
类型。
注意
window_start
的 NULL
值相当于 CAgg 原始超表中最低的已更改元素。window_end
的 NULL
值相当于 CAgg 原始超表中最大的已更改元素。由于在首次 CAgg 刷新后执行已更改元素跟踪,因此在没有 window_start
和 window_end
的情况下运行 CAgg 刷新将覆盖整个时间范围。
警告
请注意,并非所有桶都保证会更新:当桶的具体化没有数据更改,或者仅在 JOIN 中使用的辅助表中发生更改时,刷新不会进行。
名称 | 类型 | 描述 |
---|---|---|
force | BOOLEAN | 强制刷新 window_start 和 window_end 之间时间范围内的每个桶,即使该桶已经刷新过。当刷新大量数据时,这可能会非常耗费资源。默认为 FALSE 。 |
refresh_newest_first | BOOLEAN | 设置为 FALSE 以优先刷新最旧的数据。默认为 TRUE 。 |
刷新 2020-01-01
和 2020-02-01
之间的连续聚合 conditions
(不包含结束日期)。
CALL refresh_continuous_aggregate('conditions', '2020-01-01', '2020-02-01');
或者,以 12h
的间隔,增量刷新 2020-01-01
和 2020-02-01
之间的连续聚合 conditions
(不包含结束日期)
DO$$DECLARErefresh_interval INTERVAL = '12h'::INTERVAL;start_timestamp TIMESTAMPTZ = '2020-01-01T00:00:00Z';end_timestamp TIMESTAMPTZ = start_timestamp + refresh_interval;BEGINWHILE start_timestamp < '2020-02-01T00:00:00Z' LOOPCALL refresh_continuous_aggregate('conditions', start_timestamp, end_timestamp);COMMIT;RAISE NOTICE 'finished with timestamp %', end_timestamp;start_timestamp = end_timestamp;end_timestamp = end_timestamp + refresh_interval;END LOOP;END$$;
强制刷新 2020-01-01
和 2020-02-01
之间的连续聚合 conditions
(不包含结束日期),即使数据已刷新过。
CALL refresh_continuous_aggregate('conditions', '2020-01-01', '2020-02-01', force => TRUE);
关键词