postgresql 所有工作节点中的Citus分布式表

ngynwnxp  于 2023-06-29  发布在  PostgreSQL
关注(0)|答案(1)|浏览(175)

我正在尝试citus(基于教程的docker-compose,2个工作节点)。如果我创建了一个表,但没有执行create_distributed_table,那么这个表只会在coordinator中创建,这似乎是根据文档来创建的,但是,一旦我运行create_distributed_table并连接到coordinator和worker节点,这个表就会出现在所有节点中(所有行都有),并具有实际的表名(没有table_name_shardid)。
如果我运行以下查询:

SELECT
    shardid,
    node.nodename,
    node.nodeport
FROM pg_dist_placement placement
JOIN pg_dist_node node
  ON placement.groupid = node.groupid
 AND node.noderole = 'primary'::noderole
WHERE shardid = 102056;

我得到的碎片应该只存在于其中一个节点:
102056“Worker1b”5432
在coordinator上运行select * from citus_get_active_worker_nodes()得到:
“worker2a”5432
“worker1b”5432

vh0rcniy

vh0rcniy1#

Citus面具碎片表。为了能够查询它们,必须执行以下操作:
运行select * from citus_shards以标识分片表名称
然后:https://docs.citusdata.com/en/latest/develop/api_guc.html#citus-show-shards-for-app-name-prefixes-text
然后我们可以查询分片表。

相关问题