v0.1 Hello World (USING columnstore)
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 架构演进对比。
启用扩展
CREATE EXTENSION pg_mooncake;
创建 USING columnstore 列存表(v0.1)
CREATE TABLE user_activity (
user_id BIGINT,
activity_type TEXT,
activity_timestamp TIMESTAMP,
duration INT
) USING columnstore;
插入、更新与删除
INSERT INTO user_activity VALUES
(1, 'login', '2024-01-01 08:00:00', 120),
(2, 'page_view', '2024-01-01 08:05:00', 30),
(3, 'logout', '2024-01-01 08:30:00', 60),
(4, 'error', '2024-01-01 08:13:00', 60);
UPDATE user_activity SET duration = 180 WHERE user_id = 1;
DELETE FROM user_activity WHERE user_id = 2;
事务与回滚
BEGIN;
INSERT INTO user_activity VALUES
(5, 'login', '2024-01-02 10:00:00', 200),
(6, 'login', '2024-01-02 10:30:00', 90);
ROLLBACK;
SELECT * FROM user_activity;
跨表关联(JOIN)
-- 两张列存表关联
SELECT * FROM user_activity ua
JOIN user_activity ua2 ON ua.user_id = ua2.user_id;
-- 普通 Postgres 行存表与列存表关联
SELECT * FROM users JOIN user_activity ON users.user_id = user_activity.user_id;