Stories

Detail Return Return

高效數據移動指南 | 如何快速實現數據庫 SQL Server 到 Dameng 的數據同步? - Stories Detail

在現代企業中,數據無處不在,貫穿於各個業務環節和系統之間。無論是跨系統的數據集成、多地域的數據協同,還是實時應用的數據同步,數據的一致性和及時性都至關重要。在數字化轉型的過程中,如何確保不同系統、地域、設備之間的數據同步,成為了企業面臨的重要挑戰。

本專題將基於實踐經驗,從常見需求入手,為大家介紹熱門數據源與數據目標之間的數據同步(全量/增量)如何實現?瞭解如何快速搭建數據管道,實現數據的高效遷移與無縫同步。

本文教程為:SQL Server → Dameng 的數據同步任務。

在實際應用中,數據同步涉及諸多場景,如容災備份、應用改造/替代、數據庫版本升級/回退、數據庫替代、業務分流等,不同的場景在數據流向、同步需求、數據處理等方面會有不同的需求,需要針對性地選擇遷移工具和方案。

以 SQL Server 到 Dameng(DM) 的數據同步需求為例,和前一個教程類似,這些同步需求的增加,也印證了國產化浪潮下,對擁有自主知識產權的國產數據庫重視程度的升級。DM 數據庫和 SQL Server 結構存在差異,TSQL 語法也存在差異,DM 數據庫對此做了針對性的兼容性適配,但在同步過程中,仍需注意數據類型的差異、索引與約束策略、事務管理機制以及批量數據導入與導出的性能優化。同時,字符集和編碼的兼容性也是關鍵點,尤其是在多語言環境下。此外,在同步複雜數據和高併發場景中,也需根據 DM 的特性進行調整和優化,以確保數據的完整性和系統的高效運行。

一、什麼是 SQL Server?

SQL Server 是由微軟開發的一款企業級關係型數據庫管理系統,廣泛應用於各行業的數據庫管理和數據處理。SQL Server 支持全面的 SQL 標準,並提供豐富的開發接口和編程語言支持,適用於多種應用場景,包括聯機事務處理(OLTP)、聯機分析處理(OLAP)以及混合負載(HTAP)場景。SQL Server 以其強大的可擴展性、穩定的性能和豐富的功能特性,成為全球範圍內最常用的數據庫之一,深受各類企業用户的信賴。

優勢

  • 微軟生態集成:與微軟的操作系統、開發工具(如 Visual Studio)和雲平台(Azure)緊密集成,提供無縫的開發體驗和強大的擴展性。
  • 跨平台支持:最新版本支持跨平台運行,兼容 Windows 和 Linux 操作系統。
  • 高性能與可擴展性:內置了先進的查詢優化器和內存數據庫技術,能夠處理大規模的數據負載和複雜查詢任務。
  • 數據安全與合規性:SQL Server 提供全面的數據加密、審計和備份解決方案,並符合多項國際安全和隱私標準,如 GDPR 和 HIPAA。
  • 豐富的分析與 BI 支持:SQL Server 提供集成的分析服務(SSAS)、報表服務(SSRS)和集成服務(SSIS),支持複雜的數據分析和商業智能(BI)場景。

二、什麼是 Dameng?

Dameng 是新一代大型通用關係型數據庫,全面支持 SQL 標準和主流編程語言接口/開發框架。行列融合存儲技術,在兼顧 OLAP 和 OLTP 的同時,滿足 HTAP 混合應用場景。憑藉其豐富的產品架構、優異的性能表現、絕對的安全保證適應各種應用場景需求得到了眾多客户的信任,不僅在國產數據庫市場中成功佔有一席之地,成為國產化替代的常見選項,也逐漸成為國際競爭中的一股重要力量。

優勢

  • 自主研發: 擁有完全自主知識產權,符合國家信創工程的戰略需求。
  • 跨平台: 支持多種操作系統,如 Windows、Linux 以及國產操作系統。
  • 高性能: 優化了查詢和數據處理能力,適合處理大規模複雜數據。
  • 兼容性強: 兼容主流數據庫,如 Oracle、MySQL,便於數據遷移。
  • 安全性: 已通過公安部安全四級評測,是安全等級最高的商業數據庫之一。

三、方案選擇:如何實現 SQL Server → Dameng 的數據同步?

實現 SQL Server 到 Dameng 的數據同步的常見方式包括,手動構建數據管道或使用自動化工具:

手動構建數據管道

類似方案通常適用於小規模數據或需要高度自定義的場景。開發人員可以編寫自定義腳本,利用 SQL Server 的數據導出工具(如 BCP、SQLCMD)將數據導出為 CSV 或其他通用格式,再通過 Dameng 的導入命令(如 DMLOAD、DMRUL)將數據導入目標數據庫。這種方式需要手動處理數據類型的轉換、索引和約束的遷移,以及語法的調整。

手動構建數據管道雖然靈活,但也存在一些限制。首先,操作複雜且工作量大、耗時久,開發人員需要編寫和維護大量腳本,尤其在面對複雜數據結構時容易出錯。由於缺乏自動化工具的監控和錯誤處理機制,手動方式在出現問題時難以及時發現和恢復。此外,這種方法通常不具備實時同步能力,延遲較高,無法滿足需要快速反映數據變化的場景。同時,手動方案擴展性差,隨着數據規模增加或結構變化,腳本需要頻繁調整,導致維護成本顯著增加。性能方面,單線程操作在處理大規模數據時效率較低,容易形成瓶頸。因此,手動數據管道更適合小規模、定製化的數據同步需求,而不適用於大規模或高實時性場景。

自動化工具

例如選擇使用 TapData 這樣的自動化數據集成平台,只需三步就可以在幾分鐘內開啓所需的數據同步任務:

  • 將 SQL Server 設置為源連接
  • 將 Dameng 設置為目標連接
  • 定義要傳輸的數據以及傳輸頻率

TapData 內置 100+ 數據連接器,提供了友好的用户界面和強大的實時同步功能,無需編寫複雜的代碼即可輕鬆實現數據的遷移和同步。這樣不僅節省了大量的時間和人力成本,還能保障數據同步過程的穩定性和可靠性。對於那些希望快速、高效地完成 SQL Server 到 Dameng 數據同步的企業和開發者來説,這樣的便捷工具無疑是一個理想的選擇。

四、TapData 高效同步完整教程

完成 TapData Agent 部署後,即可跟隨以下教程在 TapData 中添加源與目標的數據連接(支持版本:SQL Server 2005、2008、2008 R2、2012、2014、2016、2017、2019、2022;DM 7.x、8.x),並快速構建數據管道。(*涉及工具版本為 TapData 本地部署版)

版本指路:

點擊登錄 TapData Cloud
申請試用 TapData 本地部署版

① 準備工作(作為源庫)

數據源:SQL Server

  1. 以管理員(例如 sa)身份,登錄到 SQL Server Management Studio 或 sqlcmd。
  2. 啓用 SQL Server 代理服務。
  3. 執行下述命令,啓用變更數據捕獲能力。

    1. 啓用數據庫級別的 CDC,在執行命令時,您需要替換 database_name 為真實的數據庫名。
-- 啓用變更數據捕獲能力
USE database_name
GO
EXEC sys.sp_cdc_enable_db
GO

-- 查看是否啓用變更數據捕獲,is_cdc_enabled 值為 1 即表示已啓用該功能
SELECT [name], database_id, is_cdc_enabled
FROM sys.databases
WHERE [name] = N'database_name'
GO
  1. 啓用表級別的 CDC。
USE database_name
GO
EXEC sys.sp_cdc_enable_table 
@source_schema = N'schema_name', 
@source_name   = N'table_name',
@role_name     = N'role_name',
@supports_net_changes = 1
GO
  • database_name:數據庫名稱。
  • schema_name:架構名稱,例如 dbo
  • table_name:數據表的名稱。
  • role_name:可以訪問更改數據的角色,如不希望使用設置角色,可將其設置為 NULL,如果在啓用增量複製時指定了角色,則需確保數據庫用户具有適當的角色,以便 TapData 可以訪問增量複製表。
  1. 依次執行下述格式的命令,創建用於數據複製/轉換任務的用户。
-- 創建登錄賬户
CREATE LOGIN login_name WITH PASSWORD='passwd', default_database=database_name;

-- 創建數據庫操作用户
CREATE USER login_name FOR LOGIN login_name with default_schema=schema_name;
  • login_name:登錄名,即用户名。
  • passwd:用户密碼。
  • database_name:與登錄關聯的默認數據庫,即要登錄的數據庫名。
  • schema_name:數據庫架構名稱(例如 dbo),它充當對象(例如表、視圖、過程和函數)的命名空間或容器。相關資料,見創建數據庫架構。

下述示例表示創建一個名為 tapdata 的用户,指定登錄的數據庫為 demodata,架構為 dbo

-- 創建登錄賬户
CREATE LOGIN tapdata WITH password='Tap@123456', default_database=demodata;

-- 創建數據庫操作用户
CREATE USER tapdata FOR LOGIN tapdata with default_schema=dbo;
  1. 為剛創建的賬號授予權限,您也可以基於業務需求自定義權限控制。
-- 授予讀取指定架構下所有表的權限
GRANT SELECT ON SCHEMA::schema_name TO tapdata;

-- 授予讀取變更數據捕獲的權限,其架構固定為 cdc
GRANT SELECT ON SCHEMA::cdc TO tapdata;
  • login_name:登錄名,即用户名。
  • schema_name:數據庫架構名稱(例如 dbo),它充當對象(例如表、視圖、過程和函數)的命名空間或容器。

下述示例表示授予 tapdata 用户,擁有 dbo 架構和 cdc 架構下所有表的讀取權限。

GRANT SELECT ON SCHEMA::dbo TO tapdata;
GRANT SELECT ON SCHEMA::cdc TO tapdata;
  1. (可選)如需向從節點讀取增量數據以實現數據同步,您需要為從節點設置上述步驟。

數據目標:Dameng

在連接 DM 之前,還需完成數據庫賬號的授權等準備工作。TapData 同時支持 DM 作為源或目標,當 DM 作為目標庫時,準備工作包括:

  1. 以擁有 DBA 權限的身份登錄達夢數據庫。
  2. 依次執行下述格式的命令,創建用於數據複製/轉換任務的用户。
CREATE USER username IDENTIFIED BY "password" DEFAULT TABLESPACE table_space_name;
  • username:用户名
  • password:密碼
  • table_space_name:表空間名稱
  1. 為剛創建的賬號授予權限,也可以基於業務需求自定義權限控制。
-- 替換下述命令中的 username 為真實的用户名
GRANT CREATE TABLE, DELETE TABLE, INSERT TABLE, SELECT TABLE, UPDATE TABLE, CREATE INDEX TO username;

② 創建 SQL Server 的連接

  1. 進入 TapData 控制枱,在左側導航欄,單擊連接管理
  2. 單擊頁面右側的創建,在彈框中,搜索並選擇 SQL Server。
  3. 在跳轉到的頁面,根據下述説明填寫 SQL Server 連接信息:

  • 連接信息設置

    • 連接名稱:填寫具有業務意義的獨有名稱。
    • 連接類型:支持將 SQL Server 作為源或目標庫。
    • 數據庫地址:數據庫連接地址。
    • 端口:數據庫的服務端口。
    • 數據庫名稱:數據庫名稱,即一個連接對應一個數據庫,如有多個數據庫則需創建多個數據連接。
    • 賬號:數據庫的賬號。
    • 密碼:數據庫賬號對應的密碼。
    • Schema:Schema 名稱。
  • 高級設置

    • 其他連接串參數:額外的連接參數,默認為空。
    • 時間類型的時區:默認為數據庫所用的時區,您也可以根據業務需求手動指定。
    • 使用 SSL/TLS:選擇是否開啓 SSL 連接數據源,可進一步提升數據安全性,開啓該功能後還需要上傳 CA 證書、證書密碼和服務器主機名信息,相關文件已在開啓 SSL 連接中獲取。
    • 共享挖掘:挖掘源庫的增量日誌,可為多個任務共享源庫的增量日誌,避免重複讀取,從而最大程度上減輕增量同步對源庫的壓力,開啓該功能後還需要選擇一個外存用來存儲增量日誌信息。
    • 包含表:默認為全部,您也可以選擇自定義並填寫包含的表,多個表之間用英文逗號(,)分隔。
    • 排除表:打開該開關後,可以設定要排除的表,多個表之間用英文逗號(,)分隔。
    • Agent 設置:默認為平台自動分配,您也可以手動指定 Agent。
    • 模型加載頻率:數據源中模型數量大於 1 萬時,TapData 將按照設置的時間定期刷新模型。
  1. 單擊連接測試,測試通過後單擊保存

*提示:如提示連接測試失敗,請根據頁面提示進行修復。

③ 創建 Dameng 的連接

  1. 參照 SQL Server 連接創建流程,完成 DM 連接配置信息填寫,添加數據目標:

  1. 測試 DM 的連接:

④ 創建數據複製/開發任務

  1. 左側導航欄點擊數據複製,並點擊右側創建:

  1. 進入 DAG 頁面,構建數據複製任務,通過拖拉拽的方式添加源與目標節點,並連接源與目標

  1. 單擊源與目標節點,即可按需對二者進行設置:

  1. 保存任務

⑤ 任務啓動與監控

  1. 啓動任務,任務全量同步正常運行:

  1. 增量同步開啓

以上,便是藉助 TapData 快速實現數據庫 SQL Server 到 Dameng 的全、增量同步的模擬教程。

後續,我們還將持續輸出本專題內容,歡迎關注 TapData 官方公眾號,瞭解更多。

推薦閲讀

  • TapData 信創數據源 | 國產信創數據庫達夢(Dameng)數據遷移指南,加速國產化進程,推進自主創新建設
  • ETL vs. ELT:數據集成的最佳實踐是什麼?
  • 統一的實時數據平台終極指南
  • 加速數字化轉型,信創自主可控:TapData 為銀行業數據管理能力建設提供新思路
  • 流式處理 vs 批處理,新數據時代的數據處理技術該如何選擇?

Add a new Comments

Some HTML is okay.