[英]Does PostgreSQL support replicating only a subset of the publishing columns?
我一直在阅读 PostgreSQL 中的逻辑复制,这似乎是在多个数据库之间共享少量表的一个很好的解决方案。 我的情况更简单,因为我的订阅者只会以只读方式使用源表。
我知道我可以向订阅节点中的订阅表添加额外的列,但是如果我只想导入源表的整个列集的一个子集怎么办? 是否可能或会抛出错误?
例如,我的源表product
有很多列,其中许多与我的订阅者数据库无关。 在每个订阅者处创建仅包含真正需要的列的product
副本是否可行?
内置的发布/订阅方法不支持此功能。 但是逻辑复制框架还支持您可以编写(或让其他人编写)和安装的任何其他解码插件,因此您可以通过这种方式实现这一点。 看起来pglogical已经支持此功能(“发布者端表列的选择性复制”,但我自己从未尝试过使用此功能)。
从 v15 开始,PostgreSQL 支持部分发布表,指示必须从整个列列表中复制哪些列。
现在可以完成这样的案例:
CREATE PUBLICATION users_filtered FOR TABLE users (user_id, firstname);
参见https://www.postgresql.org/docs/15/sql-createpublication.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.