citus 常用功能与api——citus表和视图部分(翻译自v9.3)

翻译为个人兴趣,仅供学习参考,侵删

官方原文连接:http://docs.citusdata.com/en/v9.3/develop/api_metadata.html#coordinator-metadata

citus表和视图

协调器节点元数据

citus根据分发列将每个分布式表分成多个分片,然后,协调器维护元数据表,以跟踪这些分片的健康状况和位置,获得统计信息。本节中将对这些源数据表及其结构进行介绍,你可以登录协调器节点然后使用sql语句对这些信息进行查询使用。

Partition table/分区表

pg_dist_partition表,存储该数据库中是分布式表的表的元数据,对于每个分布式表,它还存储有关分布方法和有关分发列的详细信息。

名称 类型 描述
logicalrelid regclass

该值参考pg_class系统目录表中的relfilenode列。

对应分布式表名

partmethod char

用于分区/分发的方法。值与不同的分区方法的对应为:

append: ‘a’

hash: ‘h’

reference table: ‘n’

partkey text 有关分发列(包括列)的详细信息。编号,类型和其他相关信息。
colocationid integer

该表属于哪个位置组。同一组中的表允许同位置的联接、分布汇总以及其他优化。

此值引用pg_dist_colocation表中的colocationid列。

repmodel char

用于数据复制的方法。值与复制方法的对应关系为:

*基于citus语句的复制:“ c”
* Postgresql流式复制:“ s”
*两阶段提交(用于参考表):“ t”

SELECT * from pg_dist_partition;
 logicalrelid  | partmethod |                                                        partkey                                                         | colocationid | repmodel
---------------+------------+------------------------------------------------------------------------------------------------------------------------+--------------+----------
 github_events | h          | {VAR :varno 1 :varattno 4 :vartype 20 :vartypmod -1 :varcollid 0 :varlevelsup 0 :varnoold 1 :varoattno 4 :location -1} |            2 | c
 (1 row)

Shard table/分片的表

pg_dist_shard表存储有关表的各个分片的元数据。包括该分片所属的分布式表和分发列的统计信息。对于append类型分布式表,这些统计信息对应于分布列的最小值/最大值。如果是hash分布式表,则对应分配给该分片的哈希值范围。这些统计信息用于在SELECT查询期间筛去不相关的分片。

名称 类型 描述
logicalrelid regclass 该分片所属的分布式表。 此值引用pg_class系统目录表中的relfilenode列。
shardid bigint 分配给该分片的全局唯一标识符。分片id
shardstorage char 该分片使用的存储类型。 下表讨论了不同的存储类型。
shardminvalue text

对于append类型分布式表,这些统计信息对应于分布列的最小值(包含边界)。

对于hash类型分布式表,则对应分配给该分片的哈希值范围最小值(包含边界)。

shardmaxvalue text

对于append类型分布式表,这些统计信息对应于分布列的最大值(包含边界)。

对于hash类型分布式表,则对应分配给该分片的哈希值范围最大值(包含边界)。

SELECT * from pg_dist_shard;
 logicalrelid  | shardid | shardstorage | shardminvalue | shardmaxvalue
---------------+---------+--------------+---------------+---------------
 github_events |  102026 | t            | 268435456     | 402653183
 github_events |  102027 | t            | 402653184     | 536870911
 github_events |  102028 | t            | 536870912     | 671088639
 github_events |  102029 | t            | 671088640     | 805306367
 (4 rows)

分片存储类型

pg_dist_shard表中的shardstorage列指示用于该分片的存储类型。 下面是不同分片存储类型及其表示的简要概述。

存储类型

碎片存储

描述
TABLE ‘t’ 分片存储属于常规分布式表的数据。
COLUMNAR ‘c’ 分片存储列数据。 (由分布式cstore_fdw表使用)
FOREIGN ‘f’ 分片存储外部数据。 (由分布式file_fdw表使用)

Shard placement table/分片放置表

pg_dist_placement表跟踪工作节点上的分片副本的位置,分配给特定节点的分片的每个副本称为“分片放置”。 该表存储有关每个“分片放置” 的运行状况和位置信息。

名称 类型 描述
shardid bigint 与该展示位置关联的分片标识符。 此值引用pg_dist_shard目录表中的shardid列。
shardstate int

描述此分片放置的状态。不同的分片状态将在下节讨论。

shardlength bigint

对于append类型分布式表,为工作节点上的“分片放置”大小(以字节为单位);

对于哈希分布式表,为零。

placementid bigint 每个“分片放置”自动生成的唯一标识符。分片放置id
groupid int 一个标识符,用于表示个组id,一个组为:使用流复制模型时,包含一个主服务器和零个或多个辅助服务器。
SELECT * from pg_dist_placement;
  shardid | shardstate | shardlength | placementid | groupid
 ---------+------------+-------------+-------------+---------
   102008 |          1 |           0 |           1 |       1
   102008 |          1 |           0 |           2 |       2
   102009 |          1 |           0 |           3 |       2
   102009 |          1 |           0 |           4 |       3
   102010 | 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aiky哇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值