如何在5分钟内快速开始使用Citus:分布式PostgreSQL入门教程
【免费下载链接】citus Distributed PostgreSQL as an extension 项目地址: https://gitcode.com/gh_mirrors/ci/citus
想要体验分布式PostgreSQL的强大功能吗?Citus作为PostgreSQL的扩展,可以将您的单机数据库轻松转换为分布式数据库系统。本教程将带您在5分钟内快速上手Citus,开启高性能数据库之旅!🚀
什么是Citus分布式数据库?
Citus是一个开源PostgreSQL扩展,它将Postgres转换为分布式数据库,让您能够在任何规模下实现高性能。通过Citus,您可以获得以下超能力:
- 分布式表:将表分片到PostgreSQL节点集群中,结合CPU、内存、存储和I/O容量
- 引用表:复制到所有节点,实现分布式表的联接和外键
- 分布式查询引擎:跨集群路由和并行化SELECT、DML等操作
- 列式存储:压缩数据,加速扫描,支持快速投影
快速开始:Docker方式安装Citus
最简单的Citus集群是单个带有Citus扩展的PostgreSQL节点,这意味着您可以通过运行单个Docker容器来尝试Citus:
# 运行带有Citus的PostgreSQL,端口5500
docker run -d --name citus -p 5500:5432 -e POSTGRES_PASSWORD=mypassword citusdata/citus
# 使用Docker容器内的psql连接
docker exec -it citus psql -U postgres
# 或者使用本地psql连接
psql -U postgres -d postgres -h localhost -p 5500
创建您的第一个分布式表
连接成功后,您可以开始创建分布式表。让我们创建一个事件表并进行分布式处理:
-- 创建事件表
CREATE TABLE events (
device_id bigint,
event_id bigserial,
event_time timestamptz default now(),
data jsonb not null,
PRIMARY KEY (device_id, event_id)
);
-- 将事件表分布到分片上
SELECT create_distributed_table('events', 'device_id');
插入和查询分布式数据
现在让我们插入一些测试数据并体验分布式查询的性能:
-- 插入100万条事件记录
INSERT INTO events (device_id, data)
SELECT s % 100, ('{"measurement":'||random()||'}')::jsonb
FROM generate_series(1,1000000) s;
-- 查询特定设备的最新3个事件
SELECT * FROM events
WHERE device_id = 1
ORDER BY event_time DESC, event_id DESC
LIMIT 3;
本地安装Citus(可选)
如果您已经有本地PostgreSQL安装,可以通过包管理器安装Citus:
Ubuntu/Debian系统:
curl https://install.citusdata.com/community/deb.sh > add-citus-repo.sh
sudo bash add-citus-repo.sh
sudo apt-get -y install postgresql-17-citus-13.0
Red Hat系统:
curl https://install.citusdata.com/community/rpm.sh > add-citus-repo.sh
sudo bash add-citus-repo.sh
sudo yum install -y citus130_17
安装后,在postgresql.conf中添加:
shared_preload_libraries = 'citus'
重启PostgreSQL后运行:
CREATE EXTENSION citus;
Citus的核心优势
- 无缝扩展:当数据量和体积增长时,您可以轻松地向集群添加更多工作节点并重新平衡分片
- 完整PostgreSQL功能:支持高级联接、子查询、用户定义函数、更新/删除/upsert等
- 混合工作负载:同时处理事务和分析查询,适合实时分析场景
下一步学习建议
现在您已经成功运行了Citus分布式数据库,建议您继续探索:
- 创建共置表以实现高性能分布式联接
- 使用引用表进行跨表关联查询
- 体验列式存储的数据压缩功能
- 设置多节点集群以获得真正的分布式体验
Citus让PostgreSQL的强大功能在任何规模下都能正常工作,让您能够在单个数据库系统上处理复杂的数据密集型工作负载。开始您的分布式数据库之旅吧!🎯
官方文档:src/backend/distributed/README.md 提供了详细的技术实现说明。
【免费下载链接】citus Distributed PostgreSQL as an extension 项目地址: https://gitcode.com/gh_mirrors/ci/citus
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考






