繁体   English   中英

PostgreSQL 是否支持只复制发布列的一个子集?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM