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