雲小課|聊一聊DRS的數據過濾特性


【本期推薦專題】在DevOps市場中,華為雲DevCloud拔得頭籌,看它如何助力企業面對商業環境瞬息萬變快速響應。

【摘要】 目前,DRS已支持其他雲、本地IDC、ECS自建MySQL、SQL Server、MongoDB(數據庫種類)、PostgreSQL等多種數據庫引擎,支持通過公網網絡、華為VPN、華為雲VPC網絡環境下等多種網絡場景的數據實時遷移和實時同步。同時,DRS還提供了豐富的數據輔助功能,今天,我們就來聊聊在您進行數據同步過程中的“小助手”---數據過濾。

本文分享自華為雲社區《【雲小課】【第15課】聊一聊DRS的數據過濾特性》,原文作者:數據庫的小雲妹。

眾所周知,數據復制服務(Data Replication Service,簡稱DRS)是一種易用、穩定、高效、用於數據庫在線遷移和數據庫實時同步的雲服務。

目前,DRS已支持其他雲、本地IDC、ECS自建MySQL、SQL Server、MongoDB(數據庫種類)、PostgreSQL等多種數據庫引擎,支持通過公網網絡、華為VPN、華為雲VPC網絡環境下等多種網絡場景的數據實時遷移和實時同步。同時,DRS還提供了豐富的數據輔助功能,今天,我們就來聊聊在您進行數據同步過程中的“小助手”---數據過濾。

首先,我們來了解一下數據過濾特性的業務場景----數據同步。

1、數據同步介紹

功能介紹

數據同步是DRS的重要功能之一。即在不同的系統之間,將數據通過同步技術從一個數據源拷貝到其他數據庫,並保持一致,實現關鍵業務的數據實時流動。

常用場景

實時分析,報表系統,數倉環境。

功能特點

數據同步功能聚焦於表和數據,並滿足多種靈活性的需求,例如多對一(如下圖所示)、一對多,動態增減同步表,不同表名之間同步數據等。

1.png

對於數據同步有了初步的了解之后,我們可以知道,數據同步不同於遷移,遷移是以整體數據庫搬遷為目的,而數據同步是維持不同業務之間的數據持續性流動。

那么,在數據的定期同步、拆分匯總數據表等多種應用場景中,我們時常想要實時獲取各個表中的某一部分數據來做匯總分析,這個時候,如果能夠設定一些同步的規則,來幫助我們更准確、更高效的同步數據,就變得尤為重要。

DRS的數據過濾特性,就是解決這種場景的必備“良葯”,通過對同步的對象進行加工,為選擇的對象添加規則,方便您自己設定想要同步的數據條件。下面,我們就來了解一下今天的主角----數據過濾。

2、數據過濾

原理

基於以數據一致性為首要目標的原則,我們通過一個例子,來看看數據過濾規則添加后,在源庫執行更新操作會遇到的幾種場景:

假設,源庫中的id為1、2、3、5、6。我們設置數據過濾條件為id between 1 and 5,那么數據同步后目標庫的id為1、2、3、5。如下圖所示:

2.png

首先,我們來看幾種常見的更新場景:

■  如果在源庫中插入id=1.5,此id符合過濾條件(id between 1 and 5),則目標庫會執行相同的更新操作。如下圖所示:

3.png

■  如果在源庫中刪除id=2,此id符合過濾條件(id between 1 and 5),則目標庫會執行相同的刪除動作。如下圖所示:

4.png

■  如果在源庫中將id=3更新為id=3.5,更新后的id仍符合過濾條件(id between 1 and 5),則目標庫會執行相同的更新操作。如下圖所示:

5.png

以上,是我們在進行數據同步時,常常遇到的幾種場景。當然,有時我們也會遇到如下幾種較為特殊的更新場景:

■  如果我們執行更新操作,將源庫中的id=2更新為id=7,即更新前源庫中的id=2符合過濾條件(id between 1 and 5),更新后id=7不符合過濾條件,繼續同步時,目標庫會執行相同的更新操作,同步后目標庫的id為1、3、5、7。如下圖所示:

6.png

■  如果我們執行更新操作,將源庫的id=6更新為id=4,即更新前源庫中的id=6不符合過濾條件(id between 1 and 5),更新后id=4符合過濾條件,繼續同步時,目標庫執行相同的更新操作,但是此時目標庫並沒有id=6,無法匹配數據。

這時,我們會根據當前同步任務選定的沖突處理策略來處理:

    ●  沖突處理策略為“覆蓋”,則id=4變成新數據在目標數據庫插入,源庫和目標庫的結果仍然一致。如下圖所示:

7.png

    ●  沖突處理策略為“忽略”,則會忽略該更新動作,即源庫有id=4,而目標庫沒有,這種情況目標庫數據將少於源庫。如下圖所示:

8.png

    ●  沖突處理策略為“報錯”,則任務將會失敗並立即中止。

9.png

操作步驟

1.  登錄管理控制台。

2.  單擊管理控制台左上角的圖標,選擇區域和項目。數據復制服務目前也支持通過使用專屬計算集群服務購買的物理機資源,創建所需的實例,實現數據遷移和數據同步。您可以選擇自己的專屬計算集群。

3.  在“所有服務”或“服務列表”中,選擇“數據庫 > 數據復制服務”,進入數據復制服務信息頁面。

4.  在“數據同步管理”頁面,單擊“創建同步任務”。

5.  在“場景選擇”頁面,分別選擇“源數據庫來源”和“目標數據庫來源”后,單擊“下一步”進入“同步實例”頁面。

6.  在“同步實例”頁面,填選任務名稱、通知收件人信息、描述、同步實例信息,單擊“下一步”。

7.  同步實例創建成功后,在“源庫及目標庫”頁面,填選源庫信息和目標庫信息后,單擊“源庫和目標庫”處的“測試連接”,分別測試並確定與源庫和目標庫連通后,勾選協議,單擊“下一步”。

8. 在“設置同步”頁面,選擇數據沖突策略和同步對象,單擊“下一步”。

圖1 同步模式

11.png

    表1 同步模式和對象

9.  在“數據加工”頁面,“加工類型”選擇“數據過濾”

圖2 數據加工

13.png

10.   在“對象選擇”區域選擇需要加工的表對象。

11.   在過濾條件區域,填寫過濾條件(只需填寫SQL語句的WHERE之后部分,例如id=1)后,單擊“校驗”。

說明:

●   每張表僅支持添加一個校驗規則。

●   Oracle為源庫的數據過濾每次最多支持20000張表,MySQL為源庫的數據過濾每次最多支持10000張表。

●   過濾條件不支持使用某種數據庫引擎特有的packege、函數、變量、常量等寫法,須使用通用SQL標准。

12.   校驗通過后,單擊“生成加工規則”,即可在加工規則表格中看到該規則。

13.   檢查無誤后,單擊“下一步”,進入下一步操作。

DRS提供在線遷移、備份遷移、數據同步、數據訂閱和多活災備等多種功能,以各自獨有的特點適用不同的數據流通場景,為您提供安心且省心的數據復制體驗。欲了解詳情請戳這里。

 

點擊關注,第一時間了解華為雲新鮮技術~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM