SuperAPI AI 工具集

migrate-postgres-tables-to-hypertables

数据与分析

查看项目

更新于 10-16 00:30

技能介绍

用途:把已确认适合的 PostgreSQL 表迁移为 TimescaleDB 超表,并完成配置与性能验证。前提是表已通过配套技能筛选为候选表。

主要能力:

  1. 最优配置。选择分区列:需为时间列(timestamp/timestamptz/date)或递增整数(int/bigint),应代表事件发生时间或顺序;避免用 updated_at 作主查询维度。表同时含 ID 和时间戳且相关时,可按 ID 分区并用 minmax 稀疏索引加速时间查询。分块间隔默认 7 天,范围 1 小时至 30 天,目标是近期分块索引小于内存 25%。
  2. 约束兼容。主键/唯一约束必须包含分区列;不含时需先征得用户同意再修改,否则不得迁移。
  3. 压缩配置。用 segment_by 选高频过滤列(每值每分块宜超 100 行),order_by 通常为时间降序,可为范围查询列加 minmax 稀疏索引,并用 add_columnstore_policy 设置压缩策略。
  4. 迁移方案。小于 1GB 可原地转换(create_hypertable,会锁表);大于 1GB 用蓝绿方式:新建表、分批复制、维护窗口内补齐最新数据并换名。
  5. 验证与监控。检查分块大小、压缩率、压缩覆盖率和存储指标;用 EXPLAIN 查看分块排除、ColumnarScan 与缓冲区读取,并排查压缩差、插入慢、无用索引等问题。

限制:不支持超表到超表的外键,需删除并在应用层保证,且须先获用户许可;修改主键/唯一约束可能破坏应用代码,必须经用户同意;执行长命令前应交由人工确认并做好备份与维护窗口。