跳转到主要内容

v0.1 数据归档方案

pg_mooncake v0.1 中将历史数据从行存表迁移至 USING columnstore 归档表的历史方案。
pg_mooncake v0.1 历史归档文档(Delta Lake 引擎)

本页归档的是早期 pg_mooncake v0.1 版本文档(采用直接 CREATE TABLE ... USING columnstore DDL 与 Delta Lake 存储)。从 v0.2 及 PGSTY 维护的 v0.3.0 版本起,pg_mooncake 已全面转向基于 moonlink 的实时列存镜像架构(CALL mooncake.create_table + USING mooncake)与 Apache Iceberg v2。最新文档请参阅简介与 v0.1 与 v0.2 / v0.3 架构演进对比。

当前 v0.3.0 分区冷热归档方案

在 v0.2 与 v0.3.0 中,无需再手动编写 INSERT INTO ... DELETE FROM 迁移脚本,只需对分区表调用 CALL mooncake.create_table 并直接 DROP 旧分区即可。详见大表分区冷热归档。

v0.1 数据归档方式

-- 创建列存归档表
CREATE TABLE orders_archive (
    order_id INT,
    customer_id INT,
    order_date TIMESTAMP,
    amount NUMERIC(10, 2)
) USING columnstore;

-- 将历史数据拷贝至列存归档表
INSERT INTO orders_archive
SELECT * FROM orders
WHERE order_date < CURRENT_DATE - INTERVAL '1 year';

-- 从源表删除历史数据并回收空间
DELETE FROM orders
WHERE order_date < CURRENT_DATE - INTERVAL '1 year';
VACUUM FULL orders;