Timescale Cloud:性能、规模、企业级

自托管产品

MST

Timescale 原生支持为超表添加 数据保留策略。如果要为所有超表添加通用数据保留策略,可以创建自定义作业。

  1. 创建一个存储过程,如果数据块早于 drop_after 参数设定的时间,则从任何超表中删除这些数据块。要获取所有超表,需查询 timescaledb_information.hypertables 表。

    CREATE OR REPLACE PROCEDURE generic_retention (job_id int, config jsonb)
    LANGUAGE PLPGSQL
    AS $$
    DECLARE
    drop_after interval;
    BEGIN
    SELECT jsonb_object_field_text (config, 'drop_after')::interval
    INTO STRICT drop_after;
    IF drop_after IS NULL THEN
    RAISE EXCEPTION 'Config must have drop_after';
    END IF;
    PERFORM drop_chunks(
    format('%I.%I', hypertable_schema, hypertable_name),
    older_than => drop_after
    ) FROM timescaledb_information.hypertables;
    END
    $$;
  2. 注册作业以每日运行。在 config 中,将 drop_after 设置为 12 个月,以删除包含早于 12 个月数据的数据块。

    SELECT add_job('generic_retention','1d', config => '{"drop_after":"12 month"}');
注意

您可以通过向存储过程添加过滤器来进一步完善此策略。例如,向 PERFORM 查询添加 WHERE 子句,以便仅从特定超表中删除数据块。

关键词

在此页面上发现问题?报告问题 或 编辑此页面 在 GitHub 上。