您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“POSTGRESQL CDC怎么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“POSTGRESQL CDC怎么用”這篇文章吧。
首先 POSTGRESQL 本身的復制方式有流式復制和邏輯復制兩種,今天要說的就是邏輯復制中的CDC功能。而實施CDC POSTGRESQL 要具備兩個功能,1 獲取數庫的變更日志(WAL) 和 獲取變更日志前的數據一致性快照,最后要保存消費者的偏移量。而提到邏輯復制,是從PG10開始的新功能。
1 先通過一個實踐來看看什么叫PG的 CDC (以忽略部分數據庫基礎設置)
首先我們先要創建一個邏輯復制槽,并且使用系統給定的一個test_decoding的解碼插件。
創建完復制槽后,我們開始一些相關的數據庫操作,從下圖可以看出想的DDL 操作并沒有解析,僅僅是記錄了begin commit
我們來在做做 DML操作,明顯相關的記錄可以被解碼并且可以看出數據庫剛才在操作了什么。
當然具體的使用我們還需要使用 pg_recvlogical 來進行數據的捕捉和更多的應用,如果直接將這些輸出output 到動態的文件中,那一個數據庫的CDC的記錄就有了。以后在發現數據庫哪個表里面的記錄不對,就可用這樣的方法早做日志進行記錄。
同時我們也可以更換邏輯復制槽中的解碼工具,我們看一下,在PG中輸入的數據,經過邏輯復制槽后,直接解碼為為 JSON 的數據
當然如果我們使用了其他的解析插件的情況下,還可以將語句直接翻譯過來,如果保留這些語句,可以自己做一個類似于UNDO 的東西,將已經執行的語句,進行回滾,從中也更加理解了 data pipleline 中為什么對傳統數據庫要設置主鍵,這樣可能方便捕獲的數據進行一個更新或者判斷插入或更新等等的操作。
通過上圖,其實我們就可以建立一個自己簡易的CDC 系統,通過記錄如果表的設計上在完整一些,CDC 的一個日志系統將會為POSTGRESQL 數據庫的數據任意時間點的數據 UNDO ,作為一個強有力的支持。
以上是“POSTGRESQL CDC怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。