您可以通過DataWorks中的Data Integration建立資料同步任務,對MaxCompute中的資料進行匯入和匯出操作。

前置條件

在開始資料的匯入和匯出操作前,您需要根據準備阿里雲帳號購買並建立項目中的操作,做好準備工作。

添加MaxCompute資料來源

说明
  • 只有專案系統管理員角色才能夠建立資料來源,其他角色的成員僅能查看資料來源。
  • 若需要添加的資料來源是當前MaxCompute項目,則無需進行此操作。該項目建立成功時,即在Data Integration的資料來源中,預設將該項目添加為資料來源,資料來源名為odps_first。

操作步驟

  1. 以專案系統管理員身份進入DataWorks管理主控台,單擊項目列表下對應項目操作欄中的進入工作區
  2. 單擊頂部功能表列中的Data Integration,導航至資料來源頁面。
  3. 單擊新增資料來源
  4. 在新增資料來源彈出框中填寫相關配置項。
    配置項說明如下:
    • 資料來源名稱: 由英文字母、數字、底線組成且需以字元或底線開頭,長度不超過60個字元。
    • 資料來源描述: 對資料來源進行簡單描述,不得超過80個字元。
    • 資料來源類型: 當前選擇的資料來源類型ODPS。
    • ODPS Endpoint: 預設唯讀。從系統配置中自動讀取。
    • ODPS項目名稱: 對應的MaxCompute Project標識。
    • Access Id: 與MaxCompute Project Owner雲帳號對應的AccessKeyID。
    • Access Key: 與MaxCompute Project Owner雲帳號對應的AccessKeySecret,與AccessKeyID成對使用。
  5. 單擊測試連通性
  6. 若測試連通性成功,單擊儲存即可。
说明 其他的資料來源的配置請參見 資料來源配置

通過Data Integration匯入資料

以將MySQL的資料匯入到MaxCompute中為例,您可以通過嚮導模式指令碼模式兩種方式配置同步任務。

嚮導模式配置同步任務
  1. 建立嚮導模式的同步任務。
  2. 選擇來源。

    選擇MySQL資料來源及源頭表mytest,資料瀏覽預設是收合的,選擇後單擊下一步

  3. 選擇目標。

    目標即MaxCompute(原ODPS),表可以是提前建立,也可以在此處單擊快速建表

    配置項說明:
    • 分區資訊:必須指定到最後一級分區。例如把資料寫入一個三級分區表,必須配置到最後一級分區,例如pt=20150101,type=1,biz=2。非分區表無此項配置。
    • 清理規則
      • 寫入前清理已有資料:導資料之前,清空表或者分區的所有資料,相當於insert overwrite。
      • 寫入前保留已有資料:導資料之前不清理任何資料,每次運行資料都是追加進去的,相當於insert into。
  4. 映射欄位。

    選擇欄位的映射關係。需對欄位對應關係進行配置,左側源頭表欄位和右側目標表欄位為一一對應的關係。

  5. 通道控制。

    單擊下一步,配置作業速率上限和髒資料檢查規則。

    配置項說明如下:
    • 作業速率上限:是指資料同步作業可能達到的最高速率,其最終實際速率受網路環境、資料庫配置等的影響。
    • 作業並發數:從單同步作業來看,作業並發數*單並發的傳輸速率=作業傳輸總速率。
    當作業速率上限已選定的情況下,應該如何選擇作業並發數?
    • 如果您的資料來源是線上的業務庫,建議您不要將並發數設定過大,以防對線上庫造成影響。
    • 如果您對資料同步速率特別在意,建議您選擇最大作業速率上限和較大的作業並發數。
  6. 預覽儲存。

    完成上述配置後,上下滾動滑鼠可查看任務配置,如若無誤,單擊儲存

運行同步任務

直接運行同步任務

只有在同步任務設定了系統變數參數,在運行時才會自動彈出彈框配置參數變數。

同步任務儲存後,直接單擊運行,任務便會立刻運行。您也可以單擊提交,將同步任務提交到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"
      }
    }
  }
}

參考文檔