我正在使用Citus-Postgress来设置一个协调器和工作节点的集群,并在这些节点上分发表数据。默认情况下,Citus使用自己的逻辑在工作节点上自动分发分片。
但是,我想手动指定工人节点来放置具有特定值的分片。例如,我有一个表“user”,它有像first_name、last_name等列沿着一个列“region”。“region”列可以针对每个区域具有4个值(int或string),如ca、us、Au、eu。我有4个工人节点为每个地区,我想把用户记录在正确的工人节点的基础上“地区”列。
有没有什么方法可以在citus中定义自己的分发逻辑,并相应地路由这些分片。我会避免把这个逻辑放在应用层。
1条答案
按热度按时间a11xaf1n1#
Citus引入了一种新颖的分片方法,允许您基于模式对数据库进行分片。通过将一个区域分配给一个模式,来自该区域的所有数据将驻留在单个工作节点上。但是,这种方法将每个区域限制在单个节点上,这意味着如果您有4个区域,则数据只能分布在4台计算机上。
详情请参见https://www.citusdata.com/updates/v12-0/#distributed_schema。