您可以通過DataWorks中的Data Integration建立資料同步任務,對MaxCompute中的資料進行匯入和匯出操作。
前置條件
添加MaxCompute資料來源
说明
- 只有專案系統管理員角色才能夠建立資料來源,其他角色的成員僅能查看資料來源。
- 若需要添加的資料來源是當前MaxCompute項目,則無需進行此操作。該項目建立成功時,即在Data Integration的資料來源中,預設將該項目添加為資料來源,資料來源名為odps_first。
操作步驟
- 以專案系統管理員身份進入DataWorks管理主控台,單擊項目列表下對應項目操作欄中的進入工作區。
- 單擊頂部功能表列中的Data Integration,導航至資料來源頁面。
- 單擊新增資料來源。
- 在新增資料來源彈出框中填寫相關配置項。
配置項說明如下:
- 資料來源名稱: 由英文字母、數字、底線組成且需以字元或底線開頭,長度不超過60個字元。
- 資料來源描述: 對資料來源進行簡單描述,不得超過80個字元。
- 資料來源類型: 當前選擇的資料來源類型ODPS。
- ODPS Endpoint: 預設唯讀。從系統配置中自動讀取。
- ODPS項目名稱: 對應的MaxCompute Project標識。
- Access Id: 與MaxCompute Project Owner雲帳號對應的AccessKeyID。
- Access Key: 與MaxCompute Project Owner雲帳號對應的AccessKeySecret,與AccessKeyID成對使用。
- 單擊測試連通性。
- 若測試連通性成功,單擊儲存即可。
说明 其他的資料來源的配置請參見
資料來源配置。
通過Data Integration匯入資料
以將MySQL的資料匯入到MaxCompute中為例,您可以通過嚮導模式和指令碼模式兩種方式配置同步任務。
嚮導模式配置同步任務
- 建立嚮導模式的同步任務。
- 選擇來源。
選擇MySQL資料來源及源頭表mytest,資料瀏覽預設是收合的,選擇後單擊下一步。
- 選擇目標。
目標即MaxCompute(原ODPS),表可以是提前建立,也可以在此處單擊快速建表。
配置項說明:- 分區資訊:必須指定到最後一級分區。例如把資料寫入一個三級分區表,必須配置到最後一級分區,例如pt=20150101,type=1,biz=2。非分區表無此項配置。
- 清理規則:
- 寫入前清理已有資料:導資料之前,清空表或者分區的所有資料,相當於insert overwrite。
- 寫入前保留已有資料:導資料之前不清理任何資料,每次運行資料都是追加進去的,相當於insert into。
- 映射欄位。
選擇欄位的映射關係。需對欄位對應關係進行配置,左側源頭表欄位和右側目標表欄位為一一對應的關係。
- 通道控制。
單擊下一步,配置作業速率上限和髒資料檢查規則。
配置項說明如下:- 作業速率上限:是指資料同步作業可能達到的最高速率,其最終實際速率受網路環境、資料庫配置等的影響。
- 作業並發數:從單同步作業來看,作業並發數*單並發的傳輸速率=作業傳輸總速率。
當作業速率上限已選定的情況下,應該如何選擇作業並發數?- 如果您的資料來源是線上的業務庫,建議您不要將並發數設定過大,以防對線上庫造成影響。
- 如果您對資料同步速率特別在意,建議您選擇最大作業速率上限和較大的作業並發數。
- 預覽儲存。
完成上述配置後,上下滾動滑鼠可查看任務配置,如若無誤,單擊儲存。
運行同步任務
直接運行同步任務
只有在同步任務設定了系統變數參數,在運行時才會自動彈出彈框配置參數變數。
同步任務儲存後,直接單擊運行,任務便會立刻運行。您也可以單擊提交,將同步任務提交到DataWorks的調度系統中,調度系統會按照配置屬性在從第二天開始自動定時執行,相關調度的配置請參見調度配置介紹。
指令碼模式配置同步任務
您可參考以下指令碼進行配置同步任務操作,其他配置與任務運行同
嚮導模式方式。
{
"type": "job",
"version": "1.0",
"configuration": {
"reader": {
"plugin": "mysql",
"parameter": {
"datasource": "mysql",
"where": "",
"splitPk": "id",
"connection": [
{
"table": [
"person"
],
"datasource": "mysql"
}
],
"connectionTable": "person",
"column": [
"id",
"name"
]
}
},
"writer": {
"plugin": "odps",
"parameter": {
"datasource": "odps_first",
"table": "a1",
"truncate": true,
"partition": "pt=${bdp.system.bizdate}",
"column": [
"id",
"col1"
]
}
},
"setting": {
"speed": {
"mbps": "1",
"concurrent": "1"
}
}
}
}