優刻得推出了數據傳輸 (UCloud Data Transmission Service) UDTS服務,支持多種同構和異構數據源之間進行全量或增量數據傳輸、支持多庫或全庫的遷移、支持ETL數據過濾等,從而幫助用戶降低數據遷移的風險、提高數據傳輸的實時可靠性,方便其靈活調整數據架構、實時同步數據并分析等。
數據庫作為核心數據的重要存儲,很多時候都會面臨數據遷移的需求,例如:業務從本地遷移上云、數據中心故障需要切換至災備中心、混合云或多云部署下的數據同步、流量突增導致數據庫性能瓶頸需要拆分……
而傳統的開源數據庫遷移工具SSMA、imp/exp等為了保證遷移數據的一致性,國內服務器,必須要在遷移之前停止服務,容易造成業務中斷。對于有些用戶,遷移數據量非常大可能達TB級別,即便有了這些開源工具還需要規劃磁盤空間大小、傳輸的網絡帶寬、CPU資源等等。另外由于這些開源工具的參數配置也相對比較復雜,對用戶而言這部分學習成本也較高。
優刻得UDTS一鍵啟動遷移服
傳統的數據庫遷移步驟包括系統環境的配置、工具的安裝編譯、數據備份、恢復測試等,整套流程不僅復雜且傳輸過程易出錯,還可能面臨數據丟失風險。
而優刻得UDTS從產品功能上實現了服務化,幫助用戶簡化了這些復雜的操作。用戶無須關心所需的底層物理資源,也不需要關注工具的復雜參數配置, 只需要在控制臺一鍵點擊創建遷移任務, 選擇增量/全量任務類型,填寫數據源信息即可啟動遷移服務。
相比傳統的遷移工具,優刻得UDTS更加靈活彈性,對于正在遷移的任務,用戶如果不想遷移了可隨時停止,如果任務信息填錯等需要修改的時候,用戶也可以隨時進行修改重啟。優刻得UDTS還能提供完善的運行信息,例如遷移任務的起始時間、剩余時間、數據量等。在安全可靠性方面,優刻得UDTS在公有云平臺上進行數據遷移不僅支持外網的遷移,還提供優刻得內網的數據遷移。
支持豐富的遷移類型
如上圖所示,目前優刻得UDTS支持主流數據庫MySQL、TiDB、PgSQL、SQLServer、MongoDB、Redis的同構數據源之間的遷移,以及異構數據源的遷移MySQL->TiDB。還支持一些其他類型的遷移,例如從CSV->UDW(UCloud數據倉庫)、CSV->MySQL。
了解到很多UFile用戶有數據遷移的需求,因此UDTS新增了UFile之間的數據遷移,包括支持全bucket遷移、按prefix遷移、斷點續傳,同時可以與優刻得工作流服務StepFlow結合實現增量同步。
優刻得UDTS的三次重要升級
1、遷移維度從表到庫
經過調研我們發現有些用戶的表比較少且集中,有些用戶一個表有上百G的數據,如果按庫遷移的話,一個庫里面上TB的數據遷移在導出階段一旦出問題就得從頭再來,因此UDTS最初是從表的維度開始遷移,一次只能遷移一個庫里面的一張表。
后來又調研到有用戶的一個MySQL實例有十幾個庫,每個庫有二十幾張表,如果按表遷移可能要創建幾百個任務,對于該用戶來說按表遷移的顯然任務量巨大。于是我們很快開發支持了按庫進行遷移,將這個用戶庫里面所有表一次全部遷移過去。另外UDTS還支持多庫及全庫的遷移,可以將一個實例下除系統庫(mysql, information_schema, performance_schema, test, sys)以外的所有庫一次性遷移過去。
2、支持ETL數據過濾
有些用戶會面臨這樣的需求:在數據遷移的時候不希望或者不需要將所有數據完整的遷移到目標庫,因此UDTS開發了按條件(行)選擇及按列選擇功能。
還有一些數據整合的場景,用戶原來的數據分散在不同的數據庫中,現在希望整合到同一個高性能數據庫中。但有時會遇到數據庫名重復沖突導致無法整合。于是UDTS提供了遷移時重命名的功能,可以針對數據庫也可以針對表,這樣就幫助這類用戶解決了數據整合的難題。同時我們還提供了列級的映射,讓用戶有更靈活的遷移服務。
使用過MySQL的用戶可能經常會遇到這種情況,如果業務量大,從庫老是追不上主庫。我們遇到有用戶在做完全量遷移后,做增量遷移的時候發現老是追不上主庫,經過分析發現該用戶有一個批量計算在里面,有一張表有幾千萬條數據,每隔一段時間做一次批量計算,將那張表拷貝一份在里面做大量的運算,用完了之后再刪掉,不斷的重復做這件事情。但由于這些表都是臨時生成的只知道前綴不知道名字,于是UDTS增加了一個數據過濾功能,支持按特定的前綴來排除特定的表,這樣運行出來速度就很快,任務一旦啟動就從來沒有掉過隊,一直是實時保持同步的。
3、從單地域到多地域