簡體   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