我已经有一个Web应用程序使用的服务器上的一个数据库。可以说 D1
我想在其他与 D1 相关的服务器上使用新数据库 D2 创建一个新的Web应用。
我想创建 citus 数据服务器,并将 D1 和 D2 添加为分片表,并将其工作节点添加为各自的服务器。 / p>
我在 citus 文档中发现的是,碎片数据库表是在 citus 服务器上创建的,并自动分发到可用的工作节点。
如何将现有数据库用作新的 citus服务器的工作节点和分片表。
答案 0 :(得分:0)
问题有点模糊,我没有完全明白所要问的问题。
我们有2个服务器S1和S2,其中包含2个数据库D1和D2。我们想创建一个包含D1和D2的分布式数据库,我们将有一个第三服务器S0,我们希望将其用作citus协调器。
使用S1(D1)和S2(D2)作为工作程序不是问题。 Citus在协调器节点上创建主表。分别在工人处创建碎片。假设会有名称冲突,则碎片表可以与旧表共存。
但是,您不能盲目使用D1和D2中的现有数据,并希望它们是分片表。数据需要重新分片。
步骤
阅读citus文档,了解如何设置集群,选择分发密钥,加载数据
在S1,S2和S0(协调器)上安装/设置citus扩展
在S0中将S1和S2添加为工作节点
确定表分配。有些表需要位于所有节点上(参考表),其中一些是根据某些键进行分片的。
在协调器节点上创建表,使用create_distributed_table / create_reference_table函数将其分发
加载数据,这可能是一个问题。最简单的方法是将现有数据导出(复制)到外部文件,然后从该文件导入(复制)到citus集群。导入数据时,您将需要使用协调器节点(S0)。
在切换之前使用新集群很好地测试您的应用程序。