隨著國家對自主可控的日益重視,目前在各個行業和區域中面臨越來越多的國產化,採用有自主智慧財產權的國產資料庫正在成為主流。長期以來,作為擁有純國產自研背景的 TapData,自是非常重視對於更多國產信創資料庫的資料聯結器支援,旗下產品已陸續與阿里雲、華為雲、麒麟軟體、優炫資料庫、Apache Doris、人大金倉、OceanBase 等國產資料庫及作業系統完成產品生態整合認證或產品相容互認證。
本專題將以 TapData 正在支援的各國產信創資料來源為原點,提供詳細的資料庫同步、遷移教程,為有需求的使用者提供更靈活的工具選擇。本文將介紹的 TapData 資料來源為——達夢資料庫管理系統(Dameng,DM)。
國產化浪潮之下,基礎軟體自主可控迫在眉睫,越來越多的國內企業開始從 Oracle、MySQL 這一類海外資料庫向國產資料庫遷移,TapData 的能力恰好滿足企業快速、無痛實現遷移的需求,有效推動信創行業國產化建設更進一步。信創領域和基礎軟體設施的自主可控作為國家重點關注領域,全面國產化替代的程序仍在全速前進中。
同為國產基礎軟硬體生態的積極建設者,TapData 一直以來都在堅持擴充並持續深化與更多國產信創資料庫的生態與戰略伙伴關係,以期推動更多行業資料管理解決方案及創新應用的落地,提供更加廣泛的基礎設施選擇及技術服務保障,從而為加速國產軟硬體產品的應用普及與協同發展貢獻力量。純國產自研的背景更是為 TapData 的這一發展目標添翼。目前,TapData 已成功實現對主流國產資料庫的廣泛支援,以達夢資料庫管理系統(Dameng,DM)為例:
DM 是新一代大型通用關係型資料庫,全面支援 SQL 標準和主流程式語言介面/開發框架。行列融合儲存技術,在兼顧 OLAP 和 OLTP 的同時,滿足 HTAP 混合應用場景。憑藉其豐富的產品架構、優異的效能表現、絕對的安全保證適應各種應用場景需求得到了眾多客戶的信任,不僅在國產資料庫市場中成功佔有一席之地,成為國產化替代的常見選項,也逐漸成為國際競爭中的一股重要力量。
在這樣的背景下,如何高效地將現有資料遷移到達夢資料庫也成了許多企業關注的重點。
一、達夢遷移流程
更多詳情,參見《達夢技術文件-DM 資料移植》:https://eco.dameng.com/document/dm/zh-cn/start/
① 需求確認
移植會涉及諸多場景,如容災備份、應用改造/替代、資料庫版本升級/回退、資料庫替代、業務分流等,不同的場景在資料流向、停機視窗、同步需求、資料處理等方面會有不同的需求,需要針對性地選擇遷移工具和方案。
② 資料庫調研
考慮遷移工具版本、驅動版本、基礎環境、操作方式、物件個數、物件大小、資料量等均會影響遷移工作的開展,需要對源端和目的端資料庫及伺服器、業務系統進行調研,確保在滿足相關需求的前提下穩定完成遷移。
確認遷移需求後,源端資料庫需提前調研如下資訊:
- 環境資訊。提前瞭解作業系統層面,確定工具能否使用視覺化介面,或者埠號開放情況,可以方便在後期部署安裝過程中,及時避開處理問題時的一些干擾項。主要包括對伺服器、記憶體、CPU、網路、埠、安全策略、是否具備視覺化介面等資訊的調研。
- 業務系統資訊。提前瞭解應用系統層面資訊,結合應用系統特性,為後面制定遷移策略、遷移時間評估等提供參考。主要包括對業務型別、業務執行時段、停機視窗、資料量、資料增量、併發訪問量等資訊的調研。
- 資料庫資訊。提前瞭解遷移資料量、字元編碼、歸檔保留、資料庫物件、表空間等資訊,為後續遷移做好規劃和相關準備工作。
③ 遷移評估
- 瞭解資料來源特徵
資料來源分析是資料遷移的基礎,幫助您評估資料同步所需的資源,制定精細化的任務配置策略,包括:
- 測試環境驗證
透過在測試環境中進行細緻的上線前測試,可以大大降低生產環境中遇到問題的風險,確保資料同步過程的平穩和高效,通常流程包括:
- 模擬真實環境:在測試環境中儘可能地模擬生產環境,包括資料量、資料型別和業務操作。
- 驗證資料同步邏輯:確保所有同步邏輯按預期工作,包括資料轉換、過濾和錯誤處理。
- 效能測試:檢驗資料同步對系統效能的影響,包括同步速度和系統資源消耗。
- 異常和錯誤處理:測試資料同步在面對網路中斷、資料格式錯誤等異常情況時的表現。
- 恢復和回滾計劃:確保有應對失敗情況的恢復和回滾計劃。
④ 移植工具選擇
達夢在官方文件中提供了三種移植工具,分別是:資料遷移工具 DTS、資料複製軟體 DMDRS 和資料整合軟體 DMDIS,以滿足不同移植場景的使用需求。除此之外,實時資料同步工具 TapData,也是非常常見的工具選擇。他們各自的功能屬性如下:
- 資料遷移工具 DTS
DTS 是一款免費的資料遷移工具,在資料庫安裝時自帶有圖形化的版本,同時也可以部署 DEM (達夢企業管理器),以 WEB 客戶端方式提供。此工具主要適用於靜態資料遷移場景。DTS 基於成熟的關係資料模型和標準介面,跨越多種主流大型資料庫,能以極少的系統開銷實現資料遷移工作。DM DTS 的技術原理圖如下圖所示:
DM 資料遷移工具提供了主流大型資料庫遷移到 DM、DM 遷移到主流大型資料庫、DM 到 DM、檔案遷移到 DM 以及 DM 遷移到檔案的功能,DM 資料遷移工具採用嚮導方式引導使用者透過簡單的步驟完成需要的操作,資料遷移粒度靈活,DTS 客戶端部署簡單,對移植環境要求較低。
-
產品特性
- 支援檢視、儲存過程/函式、包、類、同義詞、觸發器等物件遷移
- 支援資料型別的自動對映,編碼轉換
- 支援根據條件自定義遷移部分資料
- 嚮導式遷移步驟,上手簡單
- 支援 Web 端操作、監控
- 支援遷移評估
-
典型場景
- 支援全量靜態資料遷移,無法實現資料增量遷移方式;
- 為保障遷移全量資料的一致性,需要充足的業務系統停機視窗;
- 遷移過程中,源端資料庫不能有資料變更以及物件變更。
- 資料複製軟體 DMDRS
DMDRS 是支援異構環境的高效能、高可靠和高可擴充套件的資料庫實時同步系統。透過秒級資料實時同步有效避免傳統備份系統導致的無法完全滿足企業對於資訊系統不中斷服務的問題;透過變化日誌捕捉可以有效降低傳統 ETL 工具因建立觸發器、影子表等對業務系統帶來的效能影響;透過實時的資料同步,構建“雙活”的主備系統,解決傳統基於資料庫自身的主備系統中備機只讀而無法對外提供寫服務的問題。該產品可廣泛應用於應急系統、容災備份、負載均衡、資料移植、聯機維護、訂閱分發和多業務中心等業務領域。其基礎實現原理如下圖所示:
-
產品特性
- 部署形態支援單鏈路、檔案轉換、跨網閘、檔案擺渡、主備、一對多同步、多對一同步、雙向同步、級聯同步、環狀同步等
- 支援資料清洗轉換 CVT 功能,比如:列名轉換、欄位對映、表合併、表拆分等
- 支援 Web 端操作、監控
- 支援 DMDRS 主備功能
- 支援目標端為 Kafka、Redis、HDFS( Hadoop 分散式檔案系統)等
-
典型場景
DMDRS 移植場景下,源端資料庫需要開啟歸檔和邏輯附加日誌。- 主要場景是停機視窗較短的業務系統,使用增量同步資料的方式縮短停機視窗,適用於平滑遷移或升級。
- 支援資料全量和增量實時同步,非介入式捕獲增量對源端資料庫幾乎無影響。
- 可實現資料級災備、業務分流,支援遠距離異地容災。
- 資料整合軟體 DMDIS
DMDIS 實現了對資料抽取、傳輸、整合、以及裝載的一站式支援,是構建資料中心、資料倉儲、資料交換和資料同步等資料整合類應用的理想平臺。其體系結構如下圖所示:
-
產品特性
- 支援 TXT、CSV、Excel、XML 檔案、訊息伺服器、WebService、Restful
- 支援全量抽取、增量抽取,雙向同步、檔案同步、批次檔案讀取
- 支援對於簡繁體、漢字拼音、亂碼處理、字符集轉換、中文數字的中國特有的問題提供內建的轉換規則進行處理
- 支援中英文日期時間格式自動轉換
- 支援 Web 端操作、監控
- 支援二次開發介面,比如資料來源的抽取裝載介面、資料轉換介面、後設資料存取介面等
-
典型場景
- 週期性地從資料來源中抽取變化資料載入到目的資料庫中。
- 資料種類豐富,來源多樣且資料質量參差不齊,需要資料清洗。
- 資料持續整合,不同型別資料整合周期可能不同,需要功能強大的作業排程與監控功能。
- 跨部門、跨地域的資料共享和業務協同,不同系統間需要同步共享的資料,而系統中的資料可能是異構的,結構和型別都不相同,無法使用常規手段。
- 實時資料平臺型工具 TapData
作為一款開源的現代化資料平臺型工具,TapData 支援將企業核心資料實時集中到中央化資料平臺,並透過 API 或反向同步方式,為下游的互動式應用、微服務或互動式分析提供新鮮實時的資料。典型用例包括資料庫到資料庫的複製、將資料引入資料倉儲或資料湖,以及通用 ETL 處理。TapData 專注於為企業提供高效、低延遲的資料管理方案,旨在以更加創新的方式解決長期存在的資料整合問題:
- 使用基於 CDC(Change Data Capture,變更資料捕獲)的實時資料管道,相較於傳統的批處理 ETL,CDC 技術能夠顯著減少資料延遲,使得資料在生成後立即被處理和傳輸,提高資料同步和更新的效率。
- 在點對點架構之外,還支援集中式資料中心架構,簡化了資料流動路徑,減少了點對點資料管道的數量,提高了系統的可管理性和擴充套件性。
其工作流程如下圖所示:
(1) 使用內建聯結器連線到現有資料庫(需要準備好資料庫的網路訪問和憑證,同時可能需要對資料庫進行一些配置)。
(2) TapData 將監控資料庫日誌檔案(redo log、binlog 等),並捕捉變更(插入/更新/刪除)。
(3) TapData 會將變更事件轉化為一個以完整記錄為負載的事件流。
(4) 使用者可以將記錄傳送到 Kafka、另一個資料庫或資料倉儲。此外,還可以將資料儲存在 TapData 平臺中,以便呼叫 API 查詢資料
-
產品特性
- 內建 100+ CDC 資料聯結器,支援 TXT、CSV、Excel、XML 檔案、訊息伺服器、WebService、Restful
- 支援全量抽取、增量、全增量一體抽取
- 無需編寫程式碼,支援視覺化的拖拉拽操作
- 資料管道支援 JavaScript 和 Python 使用者自定義函式(UDF)
- 集中式快取:減少管道數量,最佳化效能和資源利用
- 異構資料庫支撐,打破 SQL 與 NoSQL 間的資料型別限制
- 多表連線 / 構建物化檢視(beta)
- 支援 Web 端操作、監控
-
典型場景
除去週期性的靜態資料遷移場景,TapData 還適用於低延遲資料傳輸需求至關重要的用例。例如:- 將資料匯入資料倉儲
- 將資料從 RDBMS 同步到 MongoDB、Redis、Elastic 以加速查詢
- 為 Kafka 生成事件流
- 異構資料庫複製
- 構建集中式資料平臺
⑤ 制定移植計劃
根據需求分析和資料庫調研,結合每個應用系統的具體要求,選擇合適的遷移工具,基於資料遷移的基本原則和遷移工具評估結果,制定合理的移植計劃避免任何可能遺漏的步驟,保障遷移工作的穩定實施。
⑥ 移植實施
對於異構資料庫移植到 DM,在正式遷移前,需要根據源端資料庫的相關調研資訊,對目標庫的例項引數、表空間、使用者等進行配置,提高 DM 對於 MySQL 資料庫的相容性,保障後續移植工作穩定進行。
同時,以上遷移工具均具有自動轉換功能。大多數情況下,可透過相關遷移工具進行物件和資料移植,但由於異構資料庫間語法並非 100% 相容,少量資料則需要進行手動移植。
⑦ 移植結果校驗
在進行正式環境的資料移植時,每一條資料都是真實的,有效的且完整的,在遷移完成後,必須源端資料庫的所有物件都準確無誤地遷移到目的端,一旦出現缺少物件、缺少資料和資料內容不正確的情況,可能會導致歷史記錄缺少,甚至某些功能模組失效等嚴重後果。因此在遷移完成後,需要確認是否存在遷移後的資料量、資料內容和物件個數與源庫不一致的問題,如果不一致應進行對應的維護。
⑧ 移植後收尾工作
移植後的收尾工作包括:索引補錄、更新統計資訊、備份、整理物件指令碼等內容,保障移植工作的完整性。
⑨ 應用移植與最佳化
一般情況下,源端資料庫遷移完成後,直接修改應用連線到 DM。為了驗證系統移植的完整性,還需要進行應用的相關功能和效能測試,確保改造後的應用系統和資料庫處於一個最佳狀態。
此外,在對應用系統進行全面測試後,排除移植過程中錯誤的地方,還應對資料庫中的慢 SQL 進行最佳化,保證移植後的系統高效執行。
二、TapData 高效遷移教程:以 MySQL → Dameng 為例
更多詳情,參見《TapData 幫助文件-連線資料來源-自建資料庫 Dameng》:https://docs.tapdata.net/prerequisites/on-prem-databases/dameng
完成 TapData Agent 部署後,即可跟隨以下教程在 TapData 中新增 DM 資料來源(支援版本:DM 7.x、8.x),後續可將其作為源或目標庫來構建資料管道。這裡我們將以 MySQL 為資料來源,DM 為資料目標進行模擬演示。(*涉及工具版本為 Tapdata 本地部署版)
版本指路:
點選登入 Tapdata Cloud
申請試用 Tapdata 本地部署版
① 準備工作
在連線 DM 之前,還需完成資料庫賬號的授權等準備工作。TapData 同時支援 DM 作為源或目標,當 DM 作為目標庫時,準備工作包括:
-
以擁有 DBA 許可權的身份登入達夢資料庫。
-
依次執行下述格式的命令,建立用於資料複製/轉換任務的使用者。
CREATE USER username IDENTIFIED BY "password" DEFAULT TABLESPACE table_space_name;
- username:使用者名稱
- password:密碼
- table_space_name:表空間名稱
- 為剛建立的賬號授予許可權,也可以基於業務需求自定義許可權控制。
-- 替換下述命令中的 username 為真實的使用者名稱 GRANT CREATE TABLE, DELETE TABLE, INSERT TABLE, SELECT TABLE, UPDATE TABLE, CREATE INDEX TO username;
② 建立 DM 的連線
- 進入 TapData 控制檯,在左側導航欄,單擊連線管理。
- 單擊頁面右側的建立,在彈框中,搜尋並選擇 Dameng。
- 在跳轉到的頁面,根據下述說明填寫 DM 連線資訊:
- 連線資訊設定
- 連線名稱:填寫具有業務意義的獨有名稱
- 連線型別:支援將達夢資料庫作為源或目標庫
- 地址:資料庫連線地址
- 埠:資料庫的服務埠
- 資料庫:填寫資料庫名稱
- Schema:Schema 名稱,建立資料庫使用者時,達夢資料庫會為自動建立一個與使用者名稱相同的 Schema(全大寫),如需連線多個 Schema 則需建立多個資料連線
- 賬號:資料庫的賬號
- 密碼:資料庫賬號對應的密碼
- 連線引數:額外的連線引數,預設為空
- 時區:預設為資料庫所用的時區,也可以根據業務需求手動指定
- 高階設定
- 包含表:預設為全部,您也可以選擇自定義並填寫包含的表,多個表之間用英文逗號(,)分隔
- 排除表:開啟該開關後,可以設定要排除的表,多個表之間用英文逗號(,)分隔
- Agent 設定:預設為平臺自動分配,也可以手動指定 Agent
- 模型載入頻率:資料來源中模型數量大於 1 萬時,TapData 將按照設定的時間定期重新整理模型。
- 開啟心跳錶:當連線型別選擇為源頭和目標、源頭時,支援開啟該開關,由 TapData 在源庫中建立一個名為 _tapdata_heartbeat_table 的心跳錶並每隔 10 秒更新一次其中的資料(資料庫賬號需具備相關許可權),用於資料來源連線與任務的健康度監測。
*提示:資料來源需在資料複製/開發任務引用並啟動後,心跳任務任務才會啟動,此時您可以再次進入該資料來源的編輯頁面,即可單擊檢視心跳任務。
- 單擊連線測試,測試透過後單擊儲存:
*提示:如提示連線測試失敗,請根據頁面提示進行修復。
③ 建立 MySQL 的連線
- 參照 DM 連線建立流程,完成 MySQL 連線配置資訊填寫,新增資料來源 MySQL:
- 測試 MySQL 連線:
④ 建立資料複製/開發任務
- 左側導航欄點選資料複製,並點選右側建立:
- 進入 DAG 頁面,構建資料複製任務,透過拖拉拽的方式新增源與目標節點,並連線源與目標:
- 單擊源與目標節點,即可按需對二者進行設定:
- 儲存任務:
⑤ 任務啟動與監控
- 啟動任務,任務全量同步正常執行:
- 增量事件正常同步:
以上,便是藉助 TapData 快速實現 MySQL 到 DM 的全、增量同步的模擬教程。
後續,我們還將陸續輸出 GaussDB、人大金倉Kingbase、Oceanbase、神州通用、南大通用、OpenGauss、瀚高、 TDengine、TDSQL、VastBase、TiDB 等熱門國產資料來源的連線教程,歡迎關注 TapData 官方公眾號,瞭解更多。
【推薦閱讀】
- 如何高效整合分散資料,構建統一的實時資料平臺?
- 流式處理 vs 批處理,新資料時代的資料處理技術該如何選擇?
- TapData 醫療美容行業數字化白皮書上線
- 戰略資訊 | TapData 牽手思想科技,開啟資料管理新篇章!