允许您设置策略,系统会根据该策略在后台自动压缩数据块,在数据块达到给定期限后。
压缩策略只能在已经启用压缩的超表或连续聚合上创建。要为超表设置 timescaledb.compress
和其他配置参数,请使用 ALTER TABLE
命令。要在连续聚合上启用压缩,请使用 ALTER MATERIALIZED VIEW
命令。要查看您设置的策略或已存在的策略,请参阅信息视图。
名称 | 类型 | 描述 |
---|---|---|
hypertable | REGCLASS | 超表或连续聚合的名称 |
compress_after | INTERVAL 或 INTEGER | 策略作业压缩数据块的期限。compress_after 是相对于当前时间计算的,因此包含早于 now - {compress_after}::interval 的数据的数据块将被压缩。此参数与 compress_created_before 互斥。 |
compress_created_before | INTERVAL | 创建时间早于此截止点的数据块将被压缩。截止点计算为 now() - compress_created_before 。默认为 NULL 。尚不支持连续聚合。此参数与 compress_after 互斥。 |
compress_after
参数应根据超表或连续聚合的时间列类型以不同的方式指定
- 对于具有 TIMESTAMP、TIMESTAMPTZ 和 DATE 时间列的超表:时间间隔应为 INTERVAL 类型。
- 对于具有基于整数的时间戳的超表:时间间隔应为整数类型(这需要设置 integer_now_func)。
名称 | 类型 | 描述 |
---|---|---|
schedule_interval | INTERVAL | 上次执行完成时间和下次开始时间之间的间隔。对于 chunk_time_interval >= 1 天的超表,默认为 12 小时;对于所有其他超表,默认为 chunk_time_interval / 2 。 |
initial_start | TIMESTAMPTZ | 策略首次运行的时间。默认为 NULL。如果省略,则计划间隔是从上次执行完成时间到下次开始时间的间隔。如果提供,它将作为计算 next_start 的原点 |
timezone | TEXT | 有效的时区。如果也指定了 initial_start ,则压缩策略的后续执行将与其初始启动对齐。但是,夏令时 (DST) 更改可能会移动此对齐。如果这是一个您想要缓解的问题,请设置为有效的时区。如果省略,则执行 UTC 分桶。默认为 NULL 。 |
if_not_exists | BOOLEAN | 设置为 true 会导致命令失败并发出警告,而不是在超表上已存在压缩策略时报错。默认为 false。 |
添加一个策略以压缩 cpu
超表上超过 60 天的数据块。
SELECT add_compression_policy('cpu', compress_after => INTERVAL '60d');
添加一个策略以压缩在 'cpu' 超表上 3 个月前创建的数据块。
SELECT add_compression_policy('cpu', compress_created_before => INTERVAL '3 months');
请注意,当使用 compress_after
时,则使用分区时间列中存在的时间数据范围来选择目标数据块。而当使用 compress_created_before
时,则选择 3 个月前创建的数据块。
为具有基于整数的时间列的超表添加压缩数据块策略
SELECT add_compression_policy('table_with_bigint_time', BIGINT '600000');
为名为 cpu_weekly
的连续聚合添加一个策略,以压缩超过八周的数据块
SELECT add_compression_policy('cpu_weekly', INTERVAL '8 weeks');
关键词
在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页。