通過DataWorks控制台將Tablestore中的全量資料同步到OSS中。同步到OSS中的檔案可自由下載,也可作為Tablestore資料的備份存於OSS中。
步驟一:新增Tablestore資料來源
將Tablestore添加為資料來源,具體操作步驟如下:
- 進入Data Integration。
- 以專案系統管理員身份登入DataWorks控制台。说明 僅專案系統管理員角色可以新增資料來源,其他角色的成員僅可查看資料來源。
- 在左側導覽列,單擊工作空間列表後,選擇地區。
- 在工作空間列表頁面,單擊目標工作空間操作列的Data Integration。
- 以專案系統管理員身份登入DataWorks控制台。
- 新增資料來源。
- 在Data Integration控制台,單擊資料來源。
- 在資料來源管理頁面,單擊新增資料來源。
- 在新增資料來源對話方塊的NoSQL地區,選擇資料來源類型為OTS。
- 在新增OTS資料來源對話方塊,配置參數。
參數 說明 資料來源名稱 資料來源的名稱。 資料來源描述 資料來源的描述資訊。 Endpoint 填寫目標Tablestore執行個體的服務地址。 - 如果Tablestore執行個體和OSS在同一個地區,填寫經典網地址。
- 如果Tablestore執行個體和OSS不在同一個地區,填寫公網地址。
- 不能填寫VPC地址。
Tablestore執行個體名稱 Tablestore執行個體的名稱。 AccessKey ID 登入賬戶的AccessKey ID和AccessKey Secret,擷取方式請參見建立AccessKey。 AccessKey Secret - 單擊測試連通性,測試資料來源的連通狀態。
- 單擊完成。在資料來源管理頁面,會顯示該資料來源資訊。
步驟二:新增OSS資料來源
操作與步驟一類似,只需在半結構化儲存地區,選擇資料來源類型為OSS。
说明 配置OSS資料來源的參數時,請注意Endpoint中不包括Bucket的名稱。
本樣本中,該資料來源名稱使用OTS2OSS,如下圖所示。
步驟三:建立同步任務
建立並配置Tablestore到OSS的同步任務,具體操作步驟如下:
- 進入資料開發。
- 以專案系統管理員身份登入DataWorks控制台。
- 在左側導覽列,單擊工作空間列表後,選擇地區。
- 在工作空間列表頁面,單擊目標工作空間操作列的資料開發。
- 在DataStudio控制台的資料開發頁面,單擊商務程序節點下的目標商務程序。
如果需要建立商務程序,請參見步驟二:建立商務程序。
- 建立同步任務節點。每個同步任務都需建立一個相應的節點。
- 在Data Integration節點上右鍵選擇建立 > 離線同步。您也可以將滑鼠移至上方在表徵圖,選擇Data Integration > 離線同步來建立節點。
- 在建立節點對話方塊,輸入節點名稱,選擇一個路徑。
- 單擊確認。
- 在Data Integration節點上右鍵選擇建立 > 離線同步。
- 配置資料來源。
- 在Data Integration節點下,雙擊同步任務節點。
- 在同步任務節點的編輯頁面的選擇資料來源地區,配置資料來源和資料去向。
- 配置資料來源。
選擇資料來源的資料來源為OTS。
- 配置資料去向。
選擇資料去向的資料來源為OSS,並配置資料來源。
- 配置資料來源。
- 單擊表徵圖或者點擊轉換為指令碼,進行指令碼配置。
Tablestore僅支援指令碼模式配置,使用過程中涉及Tablestore(OTS) Reader和OSS Writer外掛程式的配置。具體操作,請參見配置Tablestore(OTS) Reader和配置OSS Writer。
在指令碼配置頁面,請根據如下樣本完成配置。
{ "type": "job", # 不能修改。 "version": "1.0", # 不能修改。 "configuration": { "setting": { "errorLimit": { "record": "0" # 當錯誤個數超過record個數時,匯入任務會失敗。 }, "speed": { "mbps": "1", # 匯入速率,單位是MB/s。 "concurrent": "1" # 並發度。 } }, "reader": { "plugin": "ots", # 不能修改。 "parameter": { "datasource": "", # Data Integration中的資料來源名稱,需要提前配置完成,此處可選擇配置Tablestore的資料來源或者填寫明文的AccessKeyID等鑒權資訊,建議使用資料來源。 "table": "", # Tablestore中的資料表名稱。 "column": [ # 需要匯出到OSS的列名,不能設定為空白。 { "name": "column1" # Tablestore中列名,此列需要匯入到OSS。 }, { "name": "column2" # Tablestore中列名,此列需要匯入到OSS。 } ], "range": { "begin": [ { "type": "INF_MIN" # Tablestore中第一列主鍵的起始位置。如果需要匯出全量,此處請配置為INF_MIN;如果只需匯出部分,則按需要配置。當資料表存在多個主鍵列時,此處begin中需要配置對應主鍵列資訊。 } ], "end": [ { "type": "INF_MAX" # Tablestore中第一列主鍵的結束位置。如果需要匯出全量,此處請配置為INF_MAX;如果只需匯出部分,則按需要配置。當資料表存在多個主鍵列時,此處end中需要配置對應主鍵列資訊。 } ], "split": [ # 用於配置Tablestore的資料表的分區資訊,可以加速匯出,下一個版本會自動處理。 ] } } }, "writer": { "plugin": "oss", "parameter": { "datasource": "", # 配置OSS的資料來源。 "object": "", # Object的首碼,無需包括Bucket名稱,例如tablestore/20171111/。如果是定時匯出,則此處需要使用變數,例如tablestore/${date},然後在配置調度參數時配置${date}的值。 "writeMode": "truncate", # 當同名檔案存在時系統進行的操作,全量匯出時請使用truncate,可選值包括truncate、append和nonConflict,truncate表示會清理已存在的同名檔案,append表示會加到已存在的同名檔案內容後面,nonConflict表示當同名檔案存在時會報錯。 "fileFormat": "csv", # 檔案類型,可選值包括csv、txt和parquet格式。 "encoding": "UTF-8", # 編碼類別型。 "nullFormat": "null", # 定義null值的字串標識符方式,可以是Null 字元串。 "dateFormat": "yyyy-MM-dd HH:mm:ss", # 時間格式。 "fieldDelimiter": "," # 每一列的分隔字元。 } } } }
- 在同步任務節點的編輯頁面的右側單擊Data Integration資源群組配置,選擇獨享Data Integration資源群組。如果未建立獨享Data Integration資源群組,請單擊建立獨享Data Integration資源群組進行建立。
- 單擊表徵圖,儲存資料來源配置。
说明- 由於全量匯出一般是一次性的,所以無需配置自動調度參數。如果需要配置調度參數,請參見增量同步處理中的調度參數配置。
- 如果在指令碼配置中存在變數,例如存在${date},則需要在運行同步任務時設定變數的具體值。
- 運行同步任務。
- 單擊表徵圖。
- 在參數對話方塊,選擇調度的資源群組。
- 單擊確定,開始運行任務。運行結束後,在作業記錄頁簽中可以查看任務是否成功和匯出的資料行數。
步驟四:查看匯出到OSS中的資料
- 登入OSS管理主控台。
- 選擇相應Bucket和檔案名稱,下載後可查看內容是否符合預期。