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