Timescale Cloud:性能、扩展、企业级

自托管产品

MST

自 TimescaleDB v2.18.0 起的旧 API,已被 add_columnstore_policy() 取代。

允许您设置一项策略,根据该策略,系统会在数据块达到指定期限后在后台自动压缩该数据块。

压缩策略只能在已启用压缩的 Hypertables(超表)或连续聚合上创建。要为 Hypertables(超表)设置 timescaledb.compress 和其他配置参数,请使用 ALTER TABLE 命令。要在连续聚合上启用压缩,请使用 ALTER MATERIALIZED VIEW 命令。要查看您设置的策略或已存在的策略,请参阅 信息视图

名称类型描述
hypertableREGCLASShypertable 或连续聚合的名称
compress_afterINTERVAL 或 INTEGER策略作业压缩数据块的期限。compress_after 是相对于当前时间计算的,因此包含早于 now - {compress_after}::interval 数据的数据块将被压缩。此参数与 compress_created_before 互斥。
compress_created_beforeINTERVAL创建时间早于此截止点的数据块将被压缩。截止点计算为 now() - compress_created_before。默认为 NULL。尚不支持连续聚合。此参数与 compress_after 互斥。

compress_after 参数的指定方式应根据 hypertable 或连续聚合的时间列类型而异

  • 对于时间列类型为 TIMESTAMP、TIMESTAMPTZ 和 DATE 的 hypertables:时间间隔应为 INTERVAL 类型。
  • 对于使用基于整数时间戳的 hypertables:时间间隔应为整数类型(这需要设置 integer_now_func)。
名称类型描述
schedule_intervalINTERVAL上次执行结束时间与下次开始时间之间的间隔。对于 chunk_interval >= 1 天的 Hypertables(超表),默认为 12 小时;对于所有其他 Hypertables(超表),默认为 chunk_interval / 2
initial_startTIMESTAMPTZ首次运行策略的时间。默认为 NULL。如果省略,则调度间隔是上次执行结束时间到下次开始时间的间隔。如果提供,则作为计算 next_start 的起始点。
timezoneTEXT一个有效时区。如果也指定了 initial_start,则压缩策略的后续执行将与其初始开始时间对齐。但是,夏令时 (DST) 更改可能会使此对齐发生偏移。如果您想缓解此问题,请设置为有效时区。如果省略,则执行 UTC 分桶。默认为 NULL
if_not_existsBOOLEAN如果 hypertable 上已存在压缩策略,设置为 true 会导致命令以警告而非错误失败。默认为 false。
hypercore_use_access_methodBOOLEANNULL

添加策略以压缩 cpu hypertable 上超过 60 天的数据块。

SELECT add_compression_policy('cpu', compress_after => INTERVAL '60d');

添加策略以压缩 'cpu' hypertable 上 3 个月前创建的数据块。

SELECT add_compression_policy('cpu', compress_created_before => INTERVAL '3 months');

请注意,当使用 compress_after 时,分区时间列中存在的时间数据范围用于选择目标数据块。而当使用 compress_created_before 时,将选择 3 个月前创建的数据块。

为具有基于整数时间列的 hypertable 添加压缩数据块策略

SELECT add_compression_policy('table_with_bigint_time', BIGINT '600000');

为名为 cpu_weekly 的连续聚合添加策略,以压缩超过八周的数据块

SELECT add_compression_policy('cpu_weekly', INTERVAL '8 weeks');

关键词

此页面有问题?报告问题 或 在 GitHub 上编辑此页面