簡述
TDengine 是一款開源、高性能、云原生的時序數據庫,專為物聯網、車聯網、工業互聯網、金融、IT 運維等場景優化設計。在工業自動化的時代,時序數據庫在電力、軌道交通、智能制造等領域有著廣泛的應用。
MySQL 是全球廣泛使用的開源關系型數據庫,能夠高效處理大量數據和復雜查詢需求,并且具有較強的穩定性和可靠性。
本文主要介紹如何通過 CloudCanal 實現 TDengine 到 MySQL 數據遷移同步。
應用場景
- 數據備份與歸檔:將 TDengine 的數據遷移到 MySQL 作為備份或歸檔,確保數據長期保存和恢復,提升數據的安全性和高可用性。
- 復雜查詢:MySQL 支持復雜 SQL 查詢和事務處理,適合需要對時序數據進行深度分析或關聯查詢的場景。
- 數據集成與共享:企業通常會同時使用多種數據庫,將 TDengine 的數據同步到 MySQL,便于將時序數據與其他業務數據進行關聯分析。
- 數據分析:將 TDengine 的數據同步到 MySQL 后,可再通過 CloudCanal 將數據同步到其他分析型數據庫或數倉,支持更復雜的數據分析和操作,滿足更多業務需求。
技術點
增量數據同步整體流程
CloudCanal 基于 Query Topic 實現 TDengine 到 MySQL 的數據同步,同步流程如下:
- 創建 Topic,通過 Topic 訂閱 TDengine 數據庫的變更事件(無法捕獲 DELETE 事件)。
- 執行增量數據同步。
- 捕獲變更事件,記錄表級 offset 位點。
表級別多位點
CloudCanal 支持 TDengine 源端表級別多位點,即可以在表級別進行多位點的配置,確保每個表能夠消費各自對應的增量同步位點。位點的具體體現為:
[{"db": "us_power","table": "s1","topic": "canalt7g262cm6jy_increment_us_power_s1","offset": 1010,"vgroup": 3,"timestamp": 1715828416114 },{"db": "us_power","table": "s2","topic": "canalt7g262cm6jy_increment_us_power_s2","offset": 2093,"vgroup": 3,"timestamp": 1715828311123},...
]
納秒級時間戳同步
TDengine 最高支持納秒級 Timestamp 類型,而 MySQL 最高支持微秒級 Timestamp 類型。CloudCanal 支持納秒級時間戳同步,將 TDengine 納秒級時間戳轉換為 MySQL BIGINT 類型數據。
操作示例
步驟 1: 安裝 CloudCanal
請參考 全新安裝(Docker Linux/MacOS),下載安裝 CloudCanal 私有部署版本。
步驟 2: 添加數據源
登錄 CloudCanal 控制臺,點擊 數據源管理 > 新增數據源。
步驟 3: 創建任務
-
點擊 同步任務 > 創建任務。
-
配置源和目標數據源。
-
選擇 數據同步 并勾選 全量初始化。
先取消勾選 自動啟動任務,后續仍需要修改個別參數。
-
選擇需要同步的表。
-
選擇表對應的列。
如果是超級表增量同步,可以點擊 操作 > 子表訂閱過濾條件,設置子表訂閱過濾條件,具體可參考 TDengine Query Topic,默認訂閱所有子表。
如果需要進行納秒級時間戳同步,需在對端手動創建表,源端 Timestamp 列要映射到對端 BIGINT 類型列。
-
點擊 確認創建。
任務創建過程將會進行一系列操作,點擊 同步設置 > 異步任務,找到任務的創建記錄并點擊 詳情 即可查看。
TDengine 源端的任務創建會有以下幾個步驟:
- 分配任務執行機器
- 創建任務狀態機
- 完成任務創建
-
進入任務詳情頁,點擊右上角 功能列表 > 修改任務參數,修改以下任務參數:
- 源端參數 srcTimezone:源端時區,默認 UTC,需要與源端時區保持一致。
- 源端參數 supportTimestampToEpochNano:是否開啟 Timestamp-Number 數值轉換,默認 false。
- 對端參數 dstTimezone:對端時區,需要與對端時區保持一致。
-
啟動任務,CloudCanal 會自動進行任務流轉,其中的步驟包括:
- 全量數據遷移: 已存在的存量數據將會完整遷移到對端。
- 增量數據同步: 增量數據將會持續地同步到對端數據庫,并且保持實時(秒級別延遲)。
總結
TDengine 適用于高吞吐的時序數據存儲與查詢,而 MySQL 適用于事務處理和復雜查詢。使用 CloudCanal 進行 TDengine 到 MySQL 數據遷移同步,能夠兼顧時序數據的高效存儲與業務數據的靈活分析,從而實現時序數據價值的最大化。