由於不同業務的數據存儲和應用需求不同,企業通常會將不同業務產生的數據分別存儲在獨立的數據庫中。
隨着業務架構的不斷調整,以及受開發過程的影響,原先分開存儲的數據庫逐漸暴露出一些問題:
1、數據分散在不同的數據庫實例上,形成獨立的數據孤島,難以實現數據的聚合分析。傳統的通過MySQL主從關係同步數據的方式,在MySQL5.7版本之前無法建立多對一的增量同步關係。MySQL5.7版本雖然推出了多源複製功能,但功能單一,無法進行不同庫表間的映射,且配置過程複雜,當源數量較多時容易出錯。
2、數據庫分庫分表之後存在多個數據庫實例,難以再合併到統一的庫表中。傳統的數據庫遷移工具無法處理合並過程中產生的數據衝突問題。
3、數據量越來越大,在不影響業務的前提下很難調整數據庫架構。在線修改字段類型或者字段名,要麼受限於數據庫功能,要麼可能給業務帶來較大影響而難以調整。
爲此,UDTS在數據傳輸的基礎上,增加了數據集成服務,可實現多個數據源合併,打通數據孤島以獲得數據的統一視圖,方便業務進行數據分析決策; 助力企業靈活調整業務架構,優化現有的數據庫服務; 快速實現分庫分表合併、自定義衝突處理策略、方便業務構建數據看板。
針對數據庫分散,難以聚合的問題。UDTS推出數據集成服務,可輕鬆幫助用戶完成多源聚合。單個任務可支持多達 10 個數據源聚合,同時可支持不同類型網絡環境下的數據源,包括外網、內網以及專線。
舉例: 假設現在有兩個數據源,分別是 10.10.10.100:3306 和 10.10.10.120:3306 ,聚合模式如下圖所示 :
考慮到大多數據源都承載着在線業務,爲了避免多源聚合對線上業務的影響,UDTS數據集成服務還支持針對每個數據源獨立限速。
數據庫實例分散;
數據可能存在衝突;
對不同的數據庫需要不同的數據衝突解決方法。
針對以上這些問題,UDTS數據集成服務在多源聚合的基礎上,提供以下方式解決:
在創建任務時可對每個數據源獨立定義數據衝突解決策略,在數據集成時,可根據自己的數據衝突解決策略來處理衝突數據。當前提供“保留”與“替換”兩種策略。
當使用保留規則時,導入數據使用 INSERT IGNORE INTO , 比如 INSERT IGNORE INTO table VALUES(1, "name", 18) ,當有重複數據時,保留原有的數據,新插入的數據會被忽略。
當使用替換規則時,導入數據使用 REPLACE INTO ,比如 REPLACE INTO table VALUES(1, "name", 18) ,老的數據將會被新數據覆蓋,集成任務中有多個子任務(多個源往同一個目標數據庫同步)時,需要注意順序。
在開發的過程中,難免會遇到數據庫改名、表變更等問題,但等到數據庫架構要調整的時候,才發現累積了一堆“陳年舊債”。通過UDTS數據集成服務的全量+增量,不僅可以將全量數據按映射規則遷移到目標庫中,還可動態實現增量數據的庫表名稱的映射。
避免用戶對數據源鎖庫鎖表的擔憂,UDTS數據集成服務還提供了No Lock模式,在此模式下數據集成服務運行的過程中不會對源庫表進行任何的鎖操作。
1、數據脫敏
某教育企業,使用UDTS數據集成服務,將數據脫敏處理後,再交由內部其它部⻔進行數據分析,提取數據的有效價值。既避免了敏感數據泄漏風險,又幫助企業更快、更精準的決策。
2、數據合併
某金融企業使用UDTS數據集成服務,將前期拆分後的數據庫合併,方便進行後續的業務開發和分析。
某交友軟件爲了適應新的架構,通過UDTS數據集成服務對數據庫 db 和 table 進行了重新調整,適應了新的環境。
架構的調整不僅僅是對現有數據庫的改名,還依賴於存量數據的變更、增量數據的同步、業務的回滾等。
總的來說,UDTS數據集成服務帶給企業的價值主要體現在以下三個方面:
UDTS數據集成服務目前正在免費公測期,歡迎前往控制檯開啓體驗~
本文分享自微信公衆號 - 老葉茶館(iMySQL_WX)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。