Citus:将现有数据库作为citus的工作节点

时间:2019-03-27 05:21:40

标签: postgresql citus

我已经有一个Web应用程序使用的服务器上的一个数据库。可以说 D1

我想在其他与 D1 相关的服务器上使用新数据库 D2 创建一个新的Web应用。

我想创建 citus 数据服务器,并将 D1 D2 添加为分片表,并将其工作节点添加为各自的服务器。 / p>

我在 citus 文档中发现的是,碎片数据库表是在 citus 服务器上创建的,并自动分发到可用的工作节点。

如何将现有数据库用作新的 citus服务器的工作节点和分片表。

1 个答案:

答案 0 :(得分:0)

问题有点模糊,我没有完全明白所要问的问题。

我们有2个服务器S1和S2,其中包含2个数据库D1和D2。我们想创建一个包含D1和D2的分布式数据库,我们将有一个第三服务器S0,我们希望将其用作citus协调器。

使用S1(D1)和S2(D2)作为工作程序不是问题。 Citus在协调器节点上创建主表。分别在工人处创建碎片。假设会有名称冲突,则碎片表可以与旧表共存。

但是,您不能盲目使用D1和D2中的现有数据,并希望它们是分片表。数据需要重新分片。

步骤

  1. 阅读citus文档,了解如何设置集群,选择分发密钥,加载数据

  2. 在S1,S2和S0(协调器)上安装/设置citus扩展

  3. 在S0中将S1和S2添加为工作节点

  4. 确定表分配。有些表需要位于所有节点上(参考表),其中一些是根据某些键进行分片的。

  5. 在协调器节点上创建表,使用create_distributed_table / create_reference_table函数将其分发

  6. 加载数据,这可能是一个问题。最简单的方法是将现有数据导出(复制)到外部文件,然后从该文件导入(复制)到citus集群。导入数据时,您将需要使用协调器节点(S0)。

  7. 在切换之前使用新集群很好地测试您的应用程序。