PostgreSQL基于Citus实现分布式集群的全过程

2024-03-01 0 569
目录
  • 1.Citus介绍
  • 2.架构设计
  • 3.安装citus
    • 3.1 yum安装
    • 3.2 创建拓展
  • 4.集群配置
    • 4.1修改配置文件
    • 4.2 新增节点
    • 4.3 集群信息

1.Citus介绍

Citus是一个PostgreSQL扩展,它将Postgres转换为分布式数据库,因此您可以在任何规模上实现高性能。

可以使用这些Citus超能力使您的Postgres数据库在单个Citus节点上扩展。或者,您可以构建一个能够处理高交易吞吐量的大型集群,尤其是在多租户应用程序中,运行快速分析查询,并处理大量时间序列或物联网数据进行实时分析。当数据大小和数量增长时,可以轻松地向集群中添加更多的工作节点并重新平衡碎片。

使用Citus,您可以用新的超能力扩展PostgreSQL数据库:

1.分布式表在PostgreSQL节点集群中进行分片,以组合它们的CPU、内存、存储和I/O容量。

2.引用表被复制到所有节点,以便从分布式表中进行联接和外键,从而获得最大的读取性能。

3.分布式查询引擎路由并并行化集群中分布式表上的SELECT、DML和其他操作。

4.列存储压缩数据,加快扫描速度,并支持在常规表和分布式表上进行快速投影。

5.通过从任何节点进行查询,您都可以利用集群的全部容量进行分布式查询

Citus集群由一个中心的协调节点(CN)和若干个工作节点(Worker)构成。

coordinate:协调节点,一般称为cn,存储所有元数据,不存实际数据,该节点直接对用户开放,等于一个客户端。

worker:工作节点,不存储元数据,存储实际数据。执行协调节点发来的查询请求。一般不直接对用户开放。

PostgreSQL基于Citus实现分布式集群的全过程

2.架构设计

主机名IP操作系统内存/空间角色说明pgcn172.18.12.80centos7.82c/18G 400Gcoordinate安装PG 14+ Citus 14.1.0pgwk01172.18.12.81centos7.82c/18G 400Gworker安装PG 14+ Citus 14.1.0pgwk02172.18.12.82centos7.82c/18G 400Gworker安装PG 14+ Citus 14.1.0pgwk03172.18.12.83centos7.82c/18G 400Gworker安装PG 14+ Citus 14.1.0pgwk04172.18.12.84centos7.82c/18G 400Gworker安装PG 14+ Citus 14.1.0

PostgreSQL基于Citus实现分布式集群的全过程

3.安装citus

3.1 yum安装

1.安装依赖

yum install -y libcurl-devel lz4 zstd epel-release libzstd-devel unzip libcurl make

2.yum 安装,所有节点均安装

curl https://install.citusdata.com/community/rpm.sh
yum install -y citus_14

PostgreSQL基于Citus实现分布式集群的全过程

3.2 创建拓展

##以下操作,所有节点均操作

su – postgres
psql
create database clusterdb;
\\c clusterdb
alter system set shared_preload_libraries=\’citus\’;
clusterdb=# select pg_reload_conf();
clusterdb=# select * from pg_available_extensions where name=\’citus\’;
name | default_version | installed_version | comment
——-+—————–+——————-+—————————-
citus | 12.1-1 | | Citus distributed database
(1 row)
clusterdb=# \\q

systemctl status postgresql-14
systemctl restart postgresql-14

root@pgcn:~$ su – postgres
root@pgcn:~$ psql

postgres=# \\c clusterdb
You are now connected to database \”clusterdb\” as user \”postgres\”.

clusterdb=# show shared_preload_libraries;
shared_preload_libraries
————————–
citus
(1 row)

clusterdb=# create extension citus;
CREATE EXTENSION

clusterdb=# \\dx
List of installed extensions
Name | Version | Schema | Description
—————-+———+————+——————————
citus | 12.1-1 | pg_catalog | Citus distributed database
citus_columnar | 11.3-1 | pg_catalog | Citus Columnar extension
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
(3 rows)

clusterdb=# \\dx+ citus

PostgreSQL基于Citus实现分布式集群的全过程

4.集群配置

4.1修改配置文件

1.coordinate节点的pg_hba.conf配置:

cat >> /var/lib/pgsql/14/data/pg_hba.conf <<“EOF”
host all all 0.0.0.0/0 md5
EOF

2.worker节点的pg_hba.conf配置:

cat >> /var/lib/pgsql/14/data/pg_hba.conf <<“EOF”
host all all 172.18.12.0/24 trust
EOF
systemctl restart postgresql-14

PostgreSQL基于Citus实现分布式集群的全过程

4.2 新增节点

psql -d clusterdb

– 查看工作节点:

SELECT * FROM master_get_active_worker_nodes();
select * from pg_dist_node;
##管理操作仅仅在协调节点(cn)上操作:
– 节点可以是ip或者dns name
SELECT * from master_add_node(‘172.18.12.81\’, 5432);
SELECT * from master_add_node(‘172.18.12.82\’, 5432);
SELECT * from master_add_node(‘172.18.12.83\’, 5432);
SELECT * from master_add_node(‘172.18.12.84\’, 5432);

4.3 集群信息

— 查看工作节点
clusterdb=# SELECT * FROM master_get_active_worker_nodes();
node_name | node_port
————–+———–
172.18.12.83 | 5432
172.18.12.81 | 5432
172.18.12.84 | 5432
172.18.12.82 | 5432
(4 rows)

clusterdb=# select * from pg_dist_node;
nodeid | groupid | nodename | nodeport | noderack | hasmetadata | isactive | noderole | nodecluster | metadatasynced | shouldhaveshards
——–+———+————–+———-+———-+————-+———-+———-+————-+—————-+——————
43 | 43 | 172.18.12.82 | 5432 | default | t | t | primary | default | t | t
44 | 44 | 172.18.12.83 | 5432 | default | t | t | primary | default | t | t
46 | 46 | 172.18.12.84 | 5432 | default | t | t | primary | default | t | t
42 | 42 | 172.18.12.81 | 5432 | default | t | t | primary | default | t | t

以上就是PostgreSQL基于Citus实现分布式集群的全过程的详细内容,更多关于PostgreSQL Citus分布式集群的资料请关注悠久资源其它相关文章!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 PostgreSQL PostgreSQL基于Citus实现分布式集群的全过程 https://www.u-9.cn/database/postgresql/182568.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务