使用通道服務、DataWorks或者DataX將Tablestore資料表中的資料同步到另一個資料表。
前提條件
已建立目標資料表,目標資料表的列必須與來源資料表中待遷移的列一一對應。具體操作,請參見建立資料表。
使用通道服務遷移同步
建立來源資料表的通道後,使用SDK進行遷移同步。遷移過程中可以自訂業務處理邏輯對資料進行處理。
- 使用Table Store控制台或SDK建立來源資料表的通道並記錄通道ID,具體操作請分別參見快速入門或使用SDK。
- 使用SDK遷移資料。
範例程式碼如下:
public class TunnelTest { public static void main(String[] args){ TunnelClient tunnelClient = new TunnelClient("endpoint", "accessKeyId","accessKeySecret","instanceName"); TunnelWorkerConfig config = new TunnelWorkerConfig(new SimpleProcessor()); //tunnelId可以在Table Store控制台通道管理頁面查看或者調用describeTunnelRequest查詢。 TunnelWorker worker = new TunnelWorker("tunnelId", tunnelClient, config); try { worker.connectAndWorking(); } catch (Exception e) { e.printStackTrace(); worker.shutdown(); tunnelClient.shutdown(); } } public static class SimpleProcessor implements IChannelProcessor{ //目標tablestore連線物件。 TunnelClient tunnelClient = new TunnelClient("endpoint", "accessKeyId","accessKeySecret","instanceName"); @Override public void process(ProcessRecordsInput processRecordsInput) { //ProcessRecordsInput中返回了增量或全量資料。 List<StreamRecord> list = processRecordsInput.getRecords(); for(StreamRecord streamRecord : list){ switch (streamRecord.getRecordType()){ case PUT: //自訂業務處理邏輯。 //putRow break; case UPDATE: //updateRow break; case DELETE: //deleteRow break; } System.out.println(streamRecord.toString()); } } @Override public void shutdown() { } } }
使用DataWorks或者DataX遷移同步
通過DataWorks或者DataX實現Tablestore資料的遷移同步,此處以DataWorks為例介紹遷移操作。
- 新增Table Store資料來源。
分別以來源資料表和目標資料表所在執行個體新增Table Store資料來源。具體操作,請參見步驟三:建立同步任務。
- 建立同步任務節點。
- 以專案系統管理員身份登入DataWorks控制台。
说明 僅專案系統管理員角色可以新增資料來源,其他角色的成員僅可查看資料來源。
- 在左側導覽列,單擊工作空間列表後,選擇地區。
- 在工作空間列表頁面,單擊目標工作空間操作欄中的資料開發。
- 在DataStudio控制台的資料開發頁面,單擊商務程序節點下的目標商務程序。
如果需要建立商務程序,請參見步驟二:建立商務程序。
- 在Data Integration節點上右鍵選擇 。
- 在建立節點對話方塊,輸入名稱,單擊提交。
- 以專案系統管理員身份登入DataWorks控制台。
- 配置資料來源。
- 在Data Integration節點下,雙擊同步任務節點。
- 在同步任務節點的編輯頁面的選擇資料來源地區,配置資料來源和資料去向。
選擇資料來源和資料去向的資料來源為OTS並分別設定為來源資料表和目標資料表對應的資料來源,然後單擊表徵圖或者單擊點擊轉換為指令碼,進行指令碼配置。重要 Table Store僅支援指令碼模式配置。
- 配置Tablestore(OTS) Reader
Tablestore(OTS) Reader外掛程式實現了從Tablestore讀取資料,通過您指定的抽取資料範圍,可以方便地實現資料增量抽取的需求。具體操作,請參見配置Tablestore(OTS) Reader。
- 配置Tablestore(OTS) Writer
Tablestore(OTS) Writer通過Tablestore官方Java SDK串連到Tablestore服務端,並通過SDK寫入Tablestore服務端 。Tablestore Writer本身對於寫入過程進行了諸多最佳化,包括寫入逾時重試、異常寫入重試、批量提交等功能。具體操作,請參見配置Tablestore(OTS) Writer。
- 配置Tablestore(OTS) Reader
- 單擊表徵圖,儲存資料來源配置。
- 運行同步任務。
- 單擊表徵圖。
- 在參數對話方塊,選擇調度的資源群組。
- 單擊確定,開始運行任務。
運行結束後,在作業記錄頁簽中可以查看任務是否成功和匯出的資料行數。
- (可選)定時執行同步任務。具體操作,請參見步驟四:設定周期和依賴。