您的位置:首页 > 文旅 > 旅游 > 网站规划文案_企业oa系统搭建_盛大游戏优化大师_谷歌浏览器网页

网站规划文案_企业oa系统搭建_盛大游戏优化大师_谷歌浏览器网页

2025/1/7 22:39:48 来源:https://blog.csdn.net/weixin_42329915/article/details/144110967  浏览:    关键词:网站规划文案_企业oa系统搭建_盛大游戏优化大师_谷歌浏览器网页
网站规划文案_企业oa系统搭建_盛大游戏优化大师_谷歌浏览器网页

作者:Digital Observer(施嘉伟)
Oracle ACE Pro: Database
PostgreSQL ACE Partner
11年数据库行业经验,现主要从事数据库服务工作
拥有Oracle OCM、DB2 10.1 Fundamentals、MySQL 8.0 OCP、WebLogic 12c OCA、KCP、PCTP、PCSD、PGCM、OCI、PolarDB技术专家、达梦师资认证、数据安全咨询高级等认证
ITPUB认证专家、PolarDB开源社区技术顾问、HaloDB技术顾问、TiDB社区技术布道师、青学会MOP技术社区专家顾问、国内某高校企业实践指导教师

第一部分 说明

Citus 是一种 PostgreSQL 扩展,它允许数据库服务器(称为节点)在“无共享”架构中相互协调。 这些节点形成一个集群,允许 PostgreSQL 保存更多数据并使用比单台计算机更多的 CPU 内核。 这种架构还允许通过简单地向集群添加更多节点来扩展数据库。
Citus 数据库集群包含一个 Citus 协调器节点和多个工作节点。 每个节点都包含称为分片的小型 Postgres 表。

对于每个查询,协调器要么将其路由到单个工作节点,要么将其并行化到多个节点,具体取决于所需数据是位于单个节点上还是多个节点上。 协调器通过查阅其元数据表知道如何做到这一点。 这些特定于 Citus 的表跟踪 DNS 名称和工作节点的健康状况,以及跨节点的数据分布。可以这么说,Coordinator是个包工头,Workers才是使力气的搬砖人。
Citus 集群中有三种类型的表,包括Distributed Tables(分布式表)、Reference Tables(参考表)以及Local Tables(本地表),每种类型用于不同的目的,我们主要来描述一下分布式表的相关内容。
分布式表是最常见的类型,一般建议把大于10G的业务表创建为分布式表,它们在Workers工作节点之间水平分区。

从图中我们可以看到,分布式表的按照设置好的分布式列,将数据打散到各个Worker上,在Coordinator上负责维护元数据,Workers上承担数据的实际存储。以实现了分布式最主要的功能特性。
综合而言,Citus非常适合做单表查询,并且单表的数据量越大,其优势就越明显,当然地,对于实时场景分析也有不俗的表现。但对于Work节点之间需要大量的数据进行交互的场景,并不能发挥Citus的功能特性,它只适合节点之间IO比较小的场景。

1.1 环境规划

本操作使用1个coordinator、2个worker进行部署:

PG版本13
citus10.0

主机名IP地址数据库端口
cnode192.168.22.1285437
node1192.168.22.1295438
node2192.168.22.1305439

第二部分 操作步骤

2.1 安装citus扩展

以下步骤在所有节点上执行。

2.1.1 下载并添加存储库
# curl https://install.citusdata.com/community/rpm.sh | sudo bash
2.1.2 安装citus
# sudo yum install -y citus100_13
2.1.3 初始化数据库

安装PostgreSQL(此步骤见《基于Linux的PostgreSQL12源码安装标准化实施文档》),并初始化数据库

$ initdb -D /citus1/data
2.1.4 配置数据库参数

修改配置文件,如果包含多个预载入的共享库,shared_preload_libraries 参数的值,citus需要写在第一个。同时,修改配置连接,设置远端可访问

$ vim postgresql.conf
shared_preload_libraries = 'citus'
listen_addresses = '*'

修改白名单验证,来保证集群之间各节点的正常通讯

$ vim ph_hba.conf
host    all             all             192.168.0.0/16            trust
2.1.5 创建citus扩展

启动数据库服务,创建citus扩展

$ pg_ctl start -D /citus1/datacitus=# create extension citus;

2.2 添加节点信息

在coordinator节点上使用citus_add_node()函数来添加两个工作节点

citus=# SELECT * from citus_add_node('node1', 5438);
citus=# SELECT * from citus_add_node('node2', 5439);

查看已添加的工作节点,至此,部署完成

citus=# SELECT * FROM citus_get_active_worker_nodes();

2.3 创建分布式表

创建一张分布式表

citus=# create table citus_test(id int,name text);

使用表citus_test的"id"列作为分布列,对于分布列的选择,我们推荐选择一个具有高基数的列作为分布列,并且尽可能地选择包含均匀分布的列

citus=# SELECT create_distributed_table('citus_test','id');

们来对比一下Coordinator节点上的表和Work上节点的表所展现的情况
Coordinator节点的表:

Workers节点上的表:

在Coordinator节点上插入测试数据,并在该表上做查询。查看一下执行计划,可以看到该结果是从node1上,且端口号为5438的Work节点上找到的,也能够看到具体是从哪个小表中查询到的这条记录。

hhh6.jpg

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com