全部產品
Search
文件中心

DataWorks:AnalyticDB for MySQL 2.0資料來源

更新時間:Jun 19, 2024

AnalyticDB for MySQL 2.0資料來源為您提供讀取和寫入AnalyticDB for MySQL 2.0的雙向通道,本文為您介紹DataWorks的AnalyticDB for MySQL 2.0資料同步的能力支援情況。

使用限制

  • 離線同步支援閱讀檢視(VIEW)表。

  • AnalyticDB for MySQL 2.0 Reader不支援multivalue,否則同步任務會直接異常退出。

支援的欄位類型

離線讀

AnalyticDB for MySQL 2.0 Reader針對AnalyticDB for MySQL 2.0類型的轉換列表,如下所示。

AnalyticDB for MySQL 2.0類型

DataX類型

MaxCompute類型

BIGINT

LONG

BIGINT

TINYINT

LONG

INT

TIMESTAMP

DATE

DATETIME

VARCHAR

STRING

STRING

SMALLINT

LONG

INT

INT

LONG

INT

FLOAT

STRING

DOUBLE

DOUBLE

STRING

DOUBLE

DATE

DATE

DATETIME

TIME

DATE

DATETIME

離線寫

AnalyticDB for MySQL 2.0 Writer針對AnalyticDB for MySQL 2.0類型的轉換列表,如下所示。

類型

AnalyticDB for MySQL 2.0資料類型

整數類

INT、TINYINT、SMALLINT、BIGINT

浮點類

FLOAT和DOUBLE

字串類

VARCHAR

日期時間類

DATE和TIMESTAMP

布爾類

BOOLEAN

資料同步任務開發

AnalyticDB for MySQL 2.0資料同步任務的配置入口和通用配置流程指導可參見下文的配置指導,詳細的配置參數解釋可在配置介面查看對應參數的文案提示。

建立資料來源

在進行資料同步任務開發時,您需要在DataWorks上建立一個對應的資料來源,操作流程請參見建立並管理資料來源

單表離線同步任務配置指導

整庫離線讀同步配置指導

操作流程請參見Data Integration側同步任務配置

附錄:指令碼Demo與參數說明

附錄:離線任務指令碼配置方式

如果您配置離線任務時使用指令碼模式的方式進行配置,您需要在任務指令碼中按照指令碼的統一格式要求編寫指令碼中的reader參數和writer參數,指令碼模式的統一要求請參見通過指令碼模式配置離線同步任務,以下為您介紹指令碼模式下的資料來源的Reader參數和Writer參數的指導詳情。

Reader指令碼Demo

{
    "type": "job",
  "steps": [
    {
            "stepType": "ads",
      "parameter": {
        "datasource": "ads_demo",
        "table": "th_test",
        "column": [
          "id",
          "testtinyint",
          "testbigint",
          "testdate",
          "testtime",
          "testtimestamp",
          "testvarchar",
          "testdouble",
          "testfloat"
        ],
        "odps": {
          "accessId": "<yourAccessKeyId>",
          "accessKey": "<yourAccessKeySecret>",
          "account": "*********@aliyun.com",
          "odpsServer": " http://service.cn-shanghai-vpc.maxcompute.aliyun-inc.com/api",
          "tunnelServer": "http://dt.cn-shanghai-vpc.maxcompute.aliyun-inc.com",
          "accountType": "aliyun",
          "project": "odps_test"
        },
        "mode": "ODPS"
      },
      "name": "Reader",
      "category": "reader"
    },
    {
      "stepType": "stream",
      "parameter": {},
      "name": "Writer",
      "category": "writer"
    }
  ],
  "version": "2.0",
  "order": {
    "hops": [
      {
        "from": "Reader",
        "to": "Writer"
      }
    ]
  },
  "setting": {
    "errorLimit": {
      "record": ""
    },
    "speed": {
      "concurrent": 2,
      "throttle": true,//當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
                  "mbps":"12"//限流,此處1mbps = 1MB/s。
    }
  }
}

Reader指令碼參數

參數

描述

是否必選

預設值

table

需要匯出的表的名稱。

column

列名,如果沒有,則為全部。

*

limit

限制匯出的記錄數。

where

where條件,方便添加篩選條件,此處的String會被直接作為SQL條件添加到查詢語句中,例如where id < 100

mode

目前支援Select和ODPS2種匯入類型。

  • Select:使用limit分頁。

  • ODPS:使用ODPS DUMP來匯出資料,需要有ODPS的存取權限。

Select

odps.accessKey

當mode=ODPS時必填,AnalyticDB for MySQL 2.0訪問ODPS使用的雲帳號AccessKey,需要有Describe、Create、Select、Alter、Update和Drop許可權。

odps.accessId

當mode=ODPS時必填,AnalyticDB for MySQL 2.0訪問ODPS使用的雲帳號AccessID,需要有Describe、Create、Select、Alter、Update和Drop許可權。

odps.odpsServer

當mode=ODPS時必填,ODPS API地址。

odps.tunnelServer

當mode=ODPS時必填,ODPS Tunnel地址。

odps.project

當mode=ODPS時必填,ODPS Project名稱。

odps.accountType

當mode=ODPS時生效,ODPS訪問帳號類型。

aliyun

Writer指令碼Demo

{
    "type":"job",
    "version":"2.0",
    "steps":[ 
        {
            "stepType":"stream",
            "parameter":{
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"ads",//外掛程式名。
            "parameter":{
                "partition":"",//目標表的分區名稱。
                "datasource":"",//資料來源。
                "column":[//欄位。
                     "id"
                ],
                "writeMode":"insert",//寫入模式。
                "batchSize":"256",//一次性批量提交的記錄數大小。
                "table":"",//表名。
                "overWrite":"true"//AnalyticDB for MySQL 2.0寫入是否覆蓋當前寫入的表,true為覆蓋寫入,false為不覆蓋。(追加)寫入。當 writeMode 為 Load 時,該值才會生效。
                "options.ignoreEmptySource":true//忽略源頭資料空檔案報錯資訊,任務不報錯,預設true,不配置預設是true,設定為false讀不到源頭資料任務會報錯
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"//錯誤記錄數。
        },
        "speed":{
            "throttle":true,//當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
            "concurrent":1, //作業並發數。
            "mbps":"12"//限流,此處1mbps = 1MB/s。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Writer指令碼參數

參數

描述

必選

預設值

串連url

AnalyticDB for MySQL 2.0串連資訊,格式為Address:Port

資料庫

AnalyticDB for MySQL 2.0的資料庫名稱。

Access Id

AnalyticDB for MySQL 2.0對應的AccessKey Id

Access Key

AnalyticDB for MySQL 2.0對應的AccessKey Secret

datasource

資料來源名稱,指令碼模式支援添加資料來源,此配置項填寫的內容必須與添加的資料來源名稱保持一致。

table

目標表的表名稱。

partition

目標表的分區名稱,當目標表為普通表,需要指定該欄位。

writeMode

AnalyticDB for MySQL 2.0 Writer實現了兩種模式向AnalyticDB for MySQL 2.0匯入資料。

  • Insert模式,在主鍵衝突情況下新的記錄會覆蓋舊的記錄。

  • Load模式,資料通過第三方系統中轉落地匯入方式。

column

目的表欄位列表,可以為["*"],或者具體的欄位列表,例如["a", "b", "c"]

suffix

AnalyticDB for MySQL 2.0 url配置項的格式為ip:port,此部分為您定製的串連串,是選擇性參數。實際在AnalyticDB for MySQL 2.0資料庫訪問時,會變成JDBC資料庫連接串。例如配置suffix為autoReconnect=true&failOverReadOnly=false&maxReconnects=10

batchSize

AnalyticDB for MySQL 2.0提交資料寫的批量條數,當writeMode為insert時,該值才會生效。

writeMode為insert時,為必選。

bufferSize

DataX資料收集緩衝區大小,緩衝區的目的是積累一個較大的Buffer,源頭的資料首先進入到此Buffer中進行排序,排序完成後再提交至AnalyticDB for MySQL 2.0。排序是根據AnalyticDB for MySQL 2.0的分區列模式進行的,排序的目的是資料順序對AnalyticDB for MySQL 2.0服務端更友好(出於效能考慮)。

BufferSize緩衝區中的資料會經過batchSize批量提交至AnalyticDB for MySQL 2.0,通常需要設定bufferSize為batchSize數量的多倍。當writeMode為insert時,該值才會生效。

writeMode為insert時,為必選。

預設不配置不開啟此功能。