Citus系统表和视图
系统表
pg_dist_partition 分区元信息
存储数据库中分布式表的元数据
名称 | 类型 | 描述 |
---|---|---|
logicalrelid | regclass | 分区表名 |
partmethod | char | 分发类型 ‘a’:追加类型, ‘h’:hash类型, ‘n’:参考表 |
partkey | text | 分区键值信息 |
colocationid | integer | 共址表id(引用pg_dist_colocation的colocationid列) |
repmodel | char | 复制类型 ‘c’:citus statement-based replication,’s’: postgresql streaming replication,’t’:两阶段提交(参考表用) |
pg_dist_shard 分片表元信息
存储有分布式表的各个分片的元数据。对于追加分布式表,存储分发列的最小值/最大值。在散列分布式表的情况下,它们是分配给该分片的散列hash范围。
名称 | 类型 | 描述 |
---|---|---|
logicalrelid | regclass | 此分片所属的分布式表名 |
shardid | BIGINT | 分配给此分片的全局唯一标识符 |
shardstorage | char | 用于此分片的存储类型。‘t’:常规的分布式表。’c’:列存储表(用于分布式cstore_fdw表)。’f’:外部表(用于分布式file_fdw表) |
shardminvalue | text | 分发列的最小值 |
shardmaxvalue | text | 分发列的最大值 |
pg_dist_placement 分片放置表
存储有关每个分片的运行状况和位置的信息。
名称 | 类型 | 描述 |
---|---|---|
shardid | BIGINT | 与分片标识id。该值引用pg_dist_shard目录表中的shardid列。 |
shardstate | INT | 此分片的状态。’1‘:正常的分片。’3’:非活动状态,此分片不会被使用。’4’:master_apply_delete_command调用失败的状态,停止对该分片的操作手动删除。 |
shardlength | BIGINT | 对于append分布式表,存储分片的大小以字节为单位。对于散列分布式表为零。 |
placementid | BIGINT | 每个展示位置的唯一标识id。 |
GROUPID | INT | 分配的group信息。 |
pg_dist_node 工作节点表
包含有关集群中工作节点的信息。
名称 | 类型 | 描述 |
---|---|---|
NODEID | INT | 自动生成的单个节点的标识符 |
GROUPID | INT | 组ID,流复制时主服务器与备服务器可组成一个组 |
nodename | text | PostgreSQL工作节点的主机名或IP地址 |
nodeport | INT | PostgreSQL工作节点正在侦听的端口号 |
noderack | text | (可选)工作节点的机架信息 |
hasmetadata | bool | 节点是否有元信息 |
isactive | bool | 节点是否处于活动状态 |
noderole | text | 节点是主节点还是辅节点 |
nodecluster | text | 此节点的集群的名称 |
pg_dist_colocation 共址表信息
表的共址信息。
名称 | 类型 | 描述 |
---|---|---|
colocationid | INT | 共址组的唯一标识符 |
shardcount | INT | 此共址组中表的分片计数 |
replicationfactor | INT | 复制因子 |
distributioncolumntype | OID | 分发列类型 |
citus_stat_statements 查询统计表
是Citus Enterprise的一部分
名称 | 类型 | 描述 |
---|---|---|
queryid | BIGINT | 标识符(可用于pg_stat_statements的join) |
userid | OID | 运行查询的用户ID |
DBID | OID | 协调器的数据库ID |
query | text | 执行的语句 |
executor | text | 执行器:real-time, task-tracker, router, insert-select |
partition_key | text | 路由器执行的查询中的分发列的值,否则为NULL |
calls | BIGINT | 查询运行的次数 |
pg_dist_authinfo 连接信息
Citus Enterprise Edition的一部分
该pg_dist_authinfo表包含Citus节点用于彼此连接的身份验证参数。
名称 | 类型 | 描述 |
---|---|---|
nodeid | integer | work节点的nodeid, 0:代表所有节点。-1:代表本地循环。 |
rolename | name | 用户名 |
authinfo | text | libpq的连接参数 |
SELECT * FROM pg_dist_authinfo;
nodeid | rolename | authinfo
--------+----------+-----------------
123 | jdoe | password=abc123
(1 row)
pg_dist_poolinfo 连接池信息
Citus Enterprise Edition的一部分
如果存在连接池信息,Citus将尝试使用连接池而不是直接连接。
如果要使用连接池连接到节点,需要在pg_dist_poolinfo中插入连接池信息,连接信息包含主机,端口和数据库名称。
名称 | 类型 | 描述 |
---|---|---|
NODEID | int | Worker的节点ID |
poolinfo | text | 空格分隔的参数:host,port或dbname |
INSERT INTO pg_dist_poolinfo (nodeid , poolinfo )
VALUES (1 , 'host = 127.0.0.1 port = 5433' );
在某些情况下,Citus会忽略pg_dist_poolinfo中的设置。例如,Shard重新平衡与诸如pgbouncer之类的连接不兼容。在这些情况下,Citus将使用直接连接。
视图
citus_dist_stat_activity
显示在所有节点上执行的分布式查询
citus_worker_stat_activity
显示worker的查询包括针对各个分片的查询
citus_lock_waits
整个群集中的锁的信息
citus_shards_on_worker
MX模式下,查询分片表的信息
SELECT * FROM citus_shards_on_worker ORDER BY 2;
Schema | Name | Type | Owner
--------+--------------------+-------+-------
public | test_table_1130000 | table | citus
public | test_table_1130002 | table | citus
citus_shard_indexes_on_worker
MX模式下,查询索引的信息
SELECT * FROM citus_shard_indexes_on_worker ORDER BY 2
Schema | Name | Type | Owner | Table
--------+--------------------+-------+-------+--------------------
public | test_index_1130000 | index | citus | test_table_1130000
public | test_index_1130002 | index | citus | test_table_1130002
[CitusDB中国]站主,PostgreSQL粉丝,现从事Citus研发工作
愿Citus在中国发展的越来越好