我试图使用来自时间刻度文档的命令设置通过连续聚合创建的区块时间间隔物化视图
创建连续聚合:
CREATE MATERIALIZED VIEW device_summary
WITH (timescaledb.continuous)
AS
SELECT
time_bucket('1 hour', observation_time ) AS bucket,
min(observation_time::timestamp) AS min_time,
device_id,
avg(metric) AS metric_avg,
max(metric) - min(metric) AS metric_spread
FROM
device_readings
GROUP BY bucket, device_id;
并设置组块时间间隔(在最佳实践部分中提到(
SELECT set_chunk_time_interval('device_summary', INTERVAL '10 days');
它返回了设备摘要不可超表的错误,它要求我在超表上设置块时间间隔,我认为这是由设备摘要是视图引起的。
我可以通过SELECT * FROM timescaledb_information.chunks
看到我的物化视图的块间隔。我的问题是,是否可以设置物化视图块时间间隔?
要设置连续聚合的超表(CA(的间隔,您首先从以下查询中找到CA的超表:
SELECT view_name, format('%I.%I', materialization_hypertable_schema,
materialization_hypertable_name) AS materialization_hypertable
FROM timescaledb_information.continuous_aggregates where view_name='device_summary';
例如
view_name | materialization_hypertable
---------------------+-----------------------------------------------------
device_summary| _timescaledb_internal._materialized_hypertable_1394
然后使用
SELECT set_chunk_time_interval('_timescaledb_internal._materialized_hypertable_1394', INTERVAL '10 days');
如果你的主表(device_readings(有数据,你应该记住使用WITH NO data;在CA定义中,以防止创建具有默认间隔的块。然后你可以使用
CALL refresh_continuous_aggregate('device_summary', START_TIME , END TIME);
以填充CA数据;
select * from timescaledb_information.continuous_aggregates
这将为您提供物化_hypertable_name。(请参阅上面粘贴的文档链接中的提示(。将其用作set_chunk_time_interval的参数。