本文為您介紹如何使用數據傳輸遷移云原生多模數據庫 Lindorm 的數據至 OBKV。
如果數據遷移任務長期處于非活躍狀態(任務狀態為 失敗、已暫停 或 已完成),受增量日志保留時長等影響,任務可能無法恢復。數據傳輸將主動釋放處于非活躍狀態超過 3 天的數據遷移任務,以回收相關資源,建議您為任務配置告警并及時處理任務相關異常。
背景信息
在云數據庫 OceanBase 版控制臺創建從 Lindorm 數據庫遷移數據至 OBKV 的數據遷移任務,您可以通過結構遷移、全量遷移和增量同步,無縫遷移源端數據庫中的存量業務數據和增量數據至 OBKV。
Lindorm 是面向物聯網、互聯網、車聯網等設計和優化的云原生多模超融合數據庫,數據傳輸目前僅支持 Lindorm 寬表引擎,詳情請參見 引擎簡介。
OBKV 是云數據庫 OceanBase 標準版支持的標準版(Key-Value)系列,是在 OceanBase 關系型數據庫(關系型+ SQL)的基礎上發展而來,完全復用 OceanBase 數據庫的 Shared-Nothing 架構。詳情請參見 產品系列。
前提條件
數據傳輸已具備云資源訪問權限。詳情請參見 數據傳輸遷移角色授權。
已為源端 Lindorm 數據庫創建專用于數據遷移的數據庫用戶,并賦予其相關權限。詳情請參見 Lindorm 數據源。
已為目標端 OBKV 創建專用于數據遷移的數據庫用戶,并賦予其相關權限。詳情請參見 創建 OBKV 實例用戶及授權。
使用限制
目前數據傳輸支持 Lindorm 寬表引擎版本 V2.x,OBKV V4.2.1 和 V4.2.4。
數據傳輸僅支持遷移 Lindorm 數據庫中
tablename
和columnfamily
由 0-9、a-z、A-Z 和下劃線(_)組成的數據至 OBKV。遷移 Lindorm 數據庫的數據至 OBKV 時,僅支持 HBase 模型的表對象,選擇其他類型表對象可能導致數據質量問題。
增量同步配置中的 Kafka 分區數建議設置為 1。
注意事項
不建議將 Lindorm 數據庫至 OBKV 的數據遷移任務作為長期同步的方式,僅作為數據遷移使用。如果存在下述兩種情況,增量同步階段可能導致數據質量問題,并在全量校驗階段被檢測到。
如果使用指定版本(時間戳)的方式更新值,數據傳輸將無法識別。
如果存在 put 某個行鍵(rowkey)的字段數據為空字符串('')的操作,增量同步階段可能判斷為將該值刪除。
遷移 Lindorm 數據庫的數據至 OBKV 時,全量校驗僅支持使用 IN 模式拉取數據,無法校驗目標端存在源端沒有的數據的場景,并且校驗性能會有一定程度降級。
如果源端或目標端存在僅大小寫不同的表對象,可能會因為源端或目標端大小寫不敏感導致數據遷移的結果不符合預期。
節點之間的時鐘不同步,或者電腦終端和服務器之間的時鐘不同步,均可能導致延遲時間(增量同步/反向增量)不準確。
例如,如果時鐘早于標準時間,可能導致延遲時間為負數。如果時鐘晚于標準時間,可能導致延遲。
如果 Lindorm 數據庫和 OBKV 的 TTL(Time to Live) 配置不一致,可能導致源端和目標端的數據不一致。
操作步驟
登錄 OceanBase 管理控制臺,購買數據遷移任務。
詳情請參見 購買數據遷移任務。
在 數據傳輸 > 數據遷移 頁面,單擊新購買的數據遷移任務后的 配置。
如果您需要引用已有的任務配置信息,可以單擊 引用配置。詳情請參見 引用數據遷移任務配置。
在 選擇源和目標 頁面,配置各項參數。
參數
描述
遷移任務名稱
建議使用中文、數字和字母的組合。名稱中不能包含空格,長度不能超過 64 個字符。
源端
如果您已新建 Lindorm 數據源,請從下拉列表中進行選擇。如果未新建,請單擊下拉列表中的 新建數據源,在右側對話框進行新建。參數詳情請參見 新建 Lindorm 數據源。
目標端
如果您已新建 OBKV 數據源,請從下拉列表中進行選擇。如果未新建,請單擊下拉列表中的 新建數據源,在右側對話框進行新建。參數詳情請參見 新建 OceanBase 數據源。
標簽
單擊文本框,在下拉列表中選擇目標標簽。您也可以單擊 管理標簽,進行新建、修改和刪除。詳情請參見 通過標簽管理數據遷移任務。
單擊 下一步,在 選擇遷移類型 頁面,選擇當前數據遷移任務的遷移類型。
遷移類型 包括 結構遷移、全量遷移、增量同步、全量校驗 和 反向增量。
遷移類型
描述
結構遷移
結構遷移任務開始后,數據傳輸會源庫中的數據對象定義(表、列族等)遷移到目標數據庫中,并自動過濾臨時表。
全量遷移
全量遷移任務開始后,數據傳輸會將源端庫表的存量數據遷移至目標端數據庫對應的表中。
增量同步
增量同步任務開始后,數據傳輸會同步源端數據庫發生變化的數據(新增、修改或刪除)至目標端數據庫對應的表中。
增量同步 支持 DML 同步,您可以根據需求進行自定義配置。詳情請參見 自定義配置 DDL/DML。
說明如果您在創建 Lindorm 數據源時,未綁定 Kafka 數據源,則無法選擇 增量同步。
當您選擇 增量同步 > DML 同步 時,請聯系阿里云技術支持,確認投遞到 Kafka 的數據具備有序性,否則可能出現數據不一致的風險。Lindorm 投遞到 Kafka 的配置詳情請參見《實時數據訂閱概述》中的 使用限制。
全量校驗
在全量遷移完成、增量數據同步至目標端并與源端基本追平后,數據傳輸會自動發起一輪針對源端數據庫配置的數據表和目標表的全量數據校驗任務。
反向增量
反向增量任務開始后,可以實時將業務切換后在目標端數據庫產生的變更數據回流至源端數據庫。
通常反向增量會復用增量同步的配置,您也可以根據實際需求進行自定義配置。
(可選)單擊 下一步。在 數據源補充信息 對話框,選擇 Kafka 數據源及對應的 Topic,單擊 測試連通性。測試成功后,單擊 保存。
說明您在新建 Lindorm 數據源時,未勾選 增量同步選項設置,而在 選擇遷移類型 步驟,選擇了 增量同步,才會在創建任務時彈出 數據源補充信息 對話框,提醒您補充對應的增量同步選項設置。參數詳情請參見 新建 Lindorm 數據源。
單擊 下一步。在 選擇遷移對象 頁面,選擇當前數據遷移任務的遷移對象。
在左側選中需要遷移的對象,單擊 >,將其添加至右側列表中。
數據傳輸支持通過文本導入對象,并支持對目標端對象進行重命名、設置分區,以及移除單個或全部遷移對象等操作。
操作
步驟
導入對象
在選擇區域的右側列表中,單擊右上角的 導入對象。
在對話框中,單擊 確定。
重要導入會覆蓋之前的操作選擇,請謹慎操作。
在 導入遷移對象 對話框中,導入需要遷移的對象。
您可以通過導入 CSV 文件的方式進行庫表重命名、設置行過濾條件等操作。詳情請參見 下載和導入遷移對象配置。
單擊 檢驗合法性。
完成遷移對象導入后,請先檢驗合法性。
通過檢驗后,單擊 確定。
重命名
數據傳輸支持重命名遷移對象的名稱,對象名稱的格式為
tablename$columnfamily
。詳情請參見 數據庫的庫表重命名。重要遷移 Lindorm 數據庫的數據至 OBKV 時,僅支持遷移 default namespace 中的對象至 OBKV default 數據庫,且不支持對庫名 default 進行重命名。
設置
僅選擇 結構遷移 時,數據傳輸才支持分區設置,詳情請參見OBKV-HBase 數據模式設計。
在 分區設置 對話框中,分區方式 目前僅支持 key 分區,您可以進行以下設置。
分區鍵
默認為 K,且不支持修改。
分區數
支持您自行輸入,最小值為 1,最大值為 1024。
使用結合虛擬列分區
默認不勾選,表示使用 K 分區,不添加虛擬列。
勾選該項后,您需要輸入 虛擬列定義,僅支持 substring 語法虛擬列。例如,
substring(K,1,4)
。
移除/全部移除
數據傳輸支持在數據映射時,對暫時選中到目標端的單個或多個對象進行移除操作。
移除單個遷移對象
在選擇區域的右側列表中,鼠標懸停至目標對象,單擊顯示的 移除,即可移除該遷移對象。
移除全部遷移對象
在選擇區域的右側列表中,單擊右上角的 全部移除。在對話框中,單擊 確定,即可移除全部遷移對象。
單擊 下一步。在 遷移選項 頁面,配置各項參數。
全量遷移
在 選擇遷移類型 頁面,選中 全量遷移,才會顯示下述參數。
參數
描述
讀取并發配置
該參數用于配置全量遷移階段從源端讀取數據的并發數,最大限制為 512.并發數過高可能會造成源端壓力過大,影響業務。
寫入并發配置
該參數用于配置全量遷移階段往目標端寫入數據的并發數,最大限制為 512。并發數過高可能會造成目標端壓力過大,影響業務。
全量遷移速率限制
您可以根據實際需求決定是否開啟全量遷移速率限制。如果開啟,請設置 RPS(全量遷移階段每秒最多可以遷移至目標端的數據行數的最大值限制)和 BPS(全量遷移階段每秒最多可以遷移至目標端的數據量的最大值限制)。
說明此處設置的 RPS 和 BPS 僅作為限速限流能力,全量遷移實際可以達到的性能受限于源端、目標端、實例規格配置等因素的影響。
目標端表對象存在記錄時處理策略
在 選擇遷移類型 頁面,選中 全量遷移,才會顯示該參數。處理策略包括 覆蓋 和 停止遷移:
選擇 覆蓋:可能導致目標端已存在數據被源端數據覆蓋。例如,目標端存在與源端 key、timestamp 相同的數據,目標端的值將被更新為源端的值。
選擇默認值 停止遷移:當目標端表對象存在數據時,全量遷移會報錯不允許遷移,請處理好目標端數據后再繼續遷移。
重要如果出錯后單擊恢復,數據傳輸將忽略該配置選項,繼續遷移表數據,請謹慎操作。
遷移數據版本
Lindorm 支持多版本存儲,通過 timestamp 標記數據行版本。如果選擇 遷移數據版本 為 全部版本,全量遷移將遷移數據行的所有版本。如果選擇 遷移數據版本 為 最新版本,全量遷移僅遷移最新 timestamp 數據行的版本。
增量同步
在 選擇遷移類型 頁面,選中 增量同步,才會顯示下述參數。
參數
描述
寫入并發配置
該參數用于配置增量同步階段往目標端寫入數據的并發數,最大限制為 512。并發數過高可能會造成目標端壓力過大,影響業務。
增量同步速率限制
您可以根據實際需求決定是否開啟增量同步速率限制。如果開啟,請設置 RPS(增量同步階段每秒最多可以同步至目標端的數據行數的最大值限制)和 BPS(增量同步階段每秒最多可以同步至目標端的數據量的最大值限制)。
說明此處設置的 RPS 和 BPS 僅作為限速限流能力,增量同步實際可以達到的性能受限于源端、目標端、實例規格配置等因素的影響。
增量同步起始位點
如果選擇遷移類型時已選擇 全量遷移,則不顯示該參數。
如果選擇遷移類型時未選擇 全量遷移,但選擇了 增量同步,請在此處指定遷移某個時間節點之后的數據,默認為當前系統時間。詳情請參見 設置增量同步位點。
反向增量
在 選擇遷移類型 頁面,選中 反向增量,才會顯示該區域的參數。反向增量的配置參數默認 復用增量同步配置。
您也可以取消復用增量同步配置,根據實際需求進行配置。
參數
描述
寫入并發配置
該參數用于配置反向增量階段往源端寫入數據的并發數,最大限制為 512。并發數過高可能會造成源端壓力過大,影響業務。
反向增量速率限制
您可以根據實際需求決定是否開啟反向增量速率限制。如果開啟,請設置 RPS(反向增量同步階段每秒最多可以同步至源端的數據行數的最大值限制)和 BPS(反向增量同步階段每秒最多可以同步至源端的數據量的最大值限制)。
說明此處設置的 RPS 和 BPS 僅作為限速限流能力,反向增量同步實際可以達到的性能受限于源端、目標端、實例規格配置等因素的影響。
增量同步起始位點
如果選擇遷移類型時已選擇 全量遷移,則不顯示該參數。
如果選擇遷移類型時未選擇 全量遷移,但選擇了 增量同步,則默認以正向切換(如有)為準,不支持修改。
全量校驗
在 選擇遷移類型 頁面,選中 全量校驗,才會顯示該區域的參數。
Lindorm 支持多版本存儲,通過 timestamp 標記數據行版本。如果選擇 校驗數據版本 為 全部版本,全量校驗將校驗數據行的所有版本。如果選擇 校驗數據版本 為 最新版本,全量校驗僅校驗最新 timestamp 數據行的版本。
單擊 預檢查,系統對數據遷移任務進行預檢查。
在 預檢查 環節,數據傳輸會檢查數據庫用戶的讀寫權限、數據庫的網絡連接等是否符合要求。全部檢查任務均通過后才能啟動數據遷移任務。如果預檢查報錯:
您可以在排查并處理問題后,重新執行預檢查,直至預檢查成功。
您也可以單擊錯誤預檢查項操作列中的 跳過,會彈出對話框提示您跳過本操作的具體影響,確認可以跳過后,請單擊對話框中的 確定。
預檢查成功后,單擊 啟動任務。
如果您暫時無需啟動任務,請單擊 保存。后續您只能在 遷移任務列表 頁面手動啟動任務或通過批量操作啟動任務。批量操作的詳情請參見 批量操作數據遷移任務。數據遷移任務啟動后,會根據選擇的遷移類型依次執行,詳情請參見 查看遷移詳情。
數據傳輸支持在數據遷移任務運行過程中減少遷移對象,詳情請參見 減少遷移對象。
重要Lindorm 數據庫至 OBKV 的數據遷移任務運行過程中不支持增加遷移對象。