資料實時同步簡要介紹:
資料同步或資料集成一般選用兩類技識訓工具,即:
1、ETL(Extract-Transform-Load)工具,它是將資料從源系統加載到資料倉庫的程序,用來描述將資料從來源端經過萃取(extract)、轉置(transform)、加載(load)至目的端的程序,
2、CDC工具,全稱Change Data Capture,變更資料捕捉,從資料庫內部捕捉變更資料,將變更資料推送到推送到目的庫中,CDC機制速度極快,資料精準,且與應用程式耦合少,可抽象脫離業務系統,
實時同步場景中因對資料的實時性要求較高,所以一般選用CDC工具,
特殊場景說明:
普通場景下,使用CDC工具決議源庫日志資訊,實時同步源庫資料到目的地,如下圖所示:

但在一些特定業務場景中,為盡量減輕主資料庫業務壓力,一般設定一個備資料庫,定期將主資料庫中超過一定期限的資料遷移到備資料庫中,備份時先將主資料庫中超過一定期限未更新的資料復制到備資料庫中,再將主庫中已復制的資料洗掉,如下圖所示:

類似以上既有主庫也有備庫的情況,若要做資料的實時同步,則主庫和備庫都需要將資料實時同步到目的地,避免因為主庫的備份動作導致目的端資料誤刪、重復等與源端產生不一致,如下圖所示:

這種情景下,主庫、備庫的表名、欄位名完全一致,目的庫需要正確識別同步資料來源于主庫還是備庫,并分類處理,保證目的庫中資料與源端資料一致,以下介紹一種解決此類需求的方式,
主備庫同時進行資料同步時的解決方案:
使用CDC工具進行資料同步時,為了便于目的端處理,需要在原始資料的基礎上添加一些擴展欄位,如原表名、操作型別、時間戳等,如下圖所示:

為了解決上述源庫有主備的情況,可在以上擴展欄位的基礎上再增加一個擴展欄位,如優先級欄位,規定若源庫為主資料庫,優先級欄位值為“100”,若源庫為備資料庫,優先級欄位值為“200”,則目的端在處理來自源端同步過來的資料時,在原處理基礎上增加以下處理邏輯:
- 若同步過來的資料為“插入”操作,檢查目的端中是否存在與待插入資料相同的資料(注:比較不帶擴展欄位的原始部分是否一致),若沒有則正常插入,若有則比較兩條資料中“優先級”擴展欄位,目的端保存“優先級”擴展欄位更大的那一條資料;
- 若同步過來的資料為“洗掉”操作,檢查目的端中是否存在與待洗掉資料相同的資料(注:比較不帶擴展欄位的原始部分是否一致),若沒有則不做任何操作,若有則比較兩條資料中“優先級”擴展欄位:若兩條資料中“優先級”擴展欄位一樣的話則洗掉目的端中資料,若同步過來的資料中“優先級”擴展欄位值小于目的端中相同資料的“優先級”擴展欄位值則不做任何操作,若同步過來的資料中“優先級”擴展欄位值大于目的端中相同資料的“優先級”擴展欄位值則洗掉目的端中資料;

本文由華為云發布,
本文由華為云發布,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/449772.html
標籤:其他
上一篇:SQLMAP簡單使用
下一篇:服務器回傳狀態碼總結
