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