您好,登錄后才能下訂單哦!
這篇文章主要介紹POSTGRESQL邏輯復制與CDC捕捉如何構建實時數據分析平臺,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
大部分數據庫都提供CDC 的功能, change data capture, DB的同學可能要問,為什么要這個功能, ORACLE 有DG 數據復制, SQL SERVER 有replication , MYSQL 有 binlog 復制, PG 邏輯,物理復制都有,CDC是不是多余的.
答案是NO , CDC 是跟蹤數據庫操作的一種方式,也是不少類似獲取數據庫變化時的一種方式, 更多的是對于某些數據獲取后,可以進行一些后續性的觸發性或判斷性的操作.
更重要的是CDC 對于系統的更改會比較少,并且不會太大影響數據庫的性能.
實際上也有其他的方式來進行數據同步,例如有些數據庫的binlog 和 trigger 都可以對數據庫的數據進行捕捉和記錄.
這里選擇的方法是POSTGRESQL 的邏輯復制+ 2nd 的audit-trigger的方式.
PostgreSQL 本身支持物理復制,同時也支持邏輯復制,這里通過邏輯復制的方式來講表的DML 操作進行一個可視化的操作和可提取的操作.
首先需要對需要進行CDC 的POSTGRESQL 的配置進行相關的設置
1 需要打開POSTGRESQL 的邏輯復制
2 在修改后我們需要對服務器進行重新啟動
針對要復制的表創建 publication
create publication cdc for table test1;
同時需要創建具有讀取test1 表權限的賬號,并且也具有replication 的權限,當然如果你想偷懶 SUPERUSER 可以作為測試時的一個選擇.
然后需要在接受數據的"從庫",創建和主庫對應的庫和表結構
CREATE SUBSCRIPTION cdc CONNECTION 'dbname=test host=192.168.198.100 user=admin password=1234.com port=5432' PUBLICATION cdc;
創建相關的subscription 在接收信息的數據庫中.
可以看到數據已經從數據publication 到了 subscription
這里需要注意publication 和 subscription 的表的結構必須是一致的,否則會出現問題.
后面需要安裝 2ndQuadrant audit 組件, 下載這個組件并將其安裝在數據接收端.
在安裝中可能會出現問題,下圖是未安裝 hstore,所以安裝audit.sql出現問題
在執行完 \i /home/postgres/audit.sql 后
安裝完畢后,直接在主庫刪除一條數據
那么在從庫直接查看相關的audit.logged_actions 中是否有這條記錄
基本上可以通過這樣的數據記錄配合其他程序來獲取PG某張表的數據變動的情況,輔助自研的程序去捕捉這張表中的數據對需要同步數據到其他數據庫,提供了一種方式.
實際上這里主要應用的是PG 的邏輯復制,邏輯復制相對于PG的物理復制要靈活,例如數據的聚合
實際上這個方式稍加利用就可以成為一個以PG數據庫為基礎的整體的數據匯聚和數據分發的平臺.
首先通過PG 本身的邏輯復制,將需要在多個數據庫系統(一般是不同業務系統的數據庫)將這些需要數據分析的表進行邏輯復制到PG 匯聚的機器上,然后產生CDC的數據,通過程序二次開發的方式將這些數據任意存儲到其他的數據庫或大數據平臺,這樣的好處也是顯而易見,由于現在ETL抽取數據時,大部分的ETL支持軟件(實時數據)的軟件并不是太多并且基本沒有免費的,這樣做基本上就可以支持一個業務實時數據分析的需求. 相對于其他數據庫來說, 整體利用PG來搭建和完成這項工作要簡單,省錢的多. 并且整體的架構也不是很復雜.
以上是“POSTGRESQL邏輯復制與CDC捕捉如何構建實時數據分析平臺”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。