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

Does PostgreSQL support replicating only a subset of the publishing columns?

我一直在阅读 PostgreSQL 中的逻辑复制,这似乎是在多个数据库之间共享少量 table 的非常好的解决方案。我的情况更简单,因为我的订阅者只会以只读方式使用源 tables。

我知道我可以向订阅节点中的订阅 table 添加额外的列,但是如果我只想 导入 整个集合的一个子集怎么办源的列数 table?是否可能或会抛出错误?

例如,我的来源 table product 有很多列,其中许多与我的订阅者数据库无关。在每个订阅者处仅使用真正需要的列来创建 product 的副本是否可行?

内置的publication/subscription方法不支持这个。但是逻辑复制框架还支持您可以编写(或让其他人编写)和安装的任何其他解码插件,因此您可以通过这种方式实现这一点。看起来 pglogical 已经支持此功能(“在发布者端选择性复制 table 列”,但我自己从未尝试过使用此功能)。