初始化与创建 hypertable:CREATE EXTENSION IF NOT EXISTS timescaledb;

CREATE TABLE metrics (

ts timestamptz NOT NULL,

host text NOT NULL,

cpu double precision NOT NULL

);

SELECT create_hypertable('metrics', 'ts', chunk_time_interval => interval '1 day');

创建连续聚合视图:CREATE MATERIALIZED VIEW metrics_cpu_hourly

WITH (timescaledb.continuous) AS
SELECT time_bucket('1 hour', ts) AS bucket,

host,

avg(cpu) AS avg_cpu

FROM metrics

GROUP BY bucket, host;

刷新策略(近 7 天、每小时调度):SELECT add_continuous_aggregate_policy('metrics_cpu_hourly',

start_offset => interval '7 days',

end_offset => interval '1 hour',

schedule_interval => interval '1 hour');

保留与压缩策略:SELECT add_retention_policy('metrics', INTERVAL '30 days');

ALTER TABLE metrics SET (

timescaledb.compress,

timescaledb.compress_segmentby = 'host'

);

SELECT add_compression_policy('metrics', INTERVAL '7 days');

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部