AnalyticDB for MySQL 3.0數據源為您提供讀取和寫入AnalyticDB for MySQL 3.0雙向通道的功能,本文為您介紹DataWorks的AnalyticDB for MySQL 3.0數據同步的能力支持情況。
使用限制
ADB湖倉版數據源不支持在公共資源組配置以及運行同步任務。
如果ADB數據源配置的實例從數倉版切換到了湖倉版,使用該數據源運行在公共資源組上的同步任務將會失敗,建議切換前,確認是否有運行在公共資源組上的同步任務,并且將其切換到Serverless資源組(推薦)或獨享數據集成資源組運行。
離線同步支持讀取視圖(VIEW)表。
支持的字段類型
離線讀
AnalyticDB for MySQL 3.0 Reader針對AnalyticDB for MySQL 3.0類型的轉換列表,如下表所示。
類型分類 | AnalyticDB for MySQL 3.0類型 |
整數類 | INT、INTEGER、TINYINT、SMALLINT和BIGINT |
浮點類 | FLOAT、DOUBLE和DECIMAL |
字符串類 | VARCHAR |
日期時間類 | DATE、DATETIME、TIMESTAMP和TIME |
布爾類 | BOOLEAN |
離線寫
AnalyticDB for MySQL 3.0 Writer針對AnalyticDB for MySQL 3.0類型的轉換列表,如下所示。
類型 | AnalyticDB for MySQL 3.0數據類型 |
整數類 | INT、INTEGER、TINYINT、SMALLINT和BIGINT |
浮點類 | FLOAT、DOUBLE和DECIMAL |
字符串類 | VARCHAR |
日期時間類 | DATE、DATETIME、TIMESTAMP和TIME |
布爾類 | BOOLEAN |
創建數據源
在進行數據同步任務開發時,您需要在DataWorks上創建一個對應的數據源,操作流程請參見創建并管理數據源,詳細的配置參數解釋可在配置界面查看對應參數的文案提示。
數據同步任務開發
數據同步任務的配置入口和通用配置流程可參見下文的配置指導。
單表離線同步任務配置指導
操作流程請參見通過向導模式配置離線同步任務、通過腳本模式配置離線同步任務。
腳本模式配置的全量參數和腳本Demo請參見下文的附錄:腳本Demo與參數說明。
單表及整庫實時同步任務配置指導
操作流程請參見DataStudio側實時同步任務配置。
整庫離線讀、單表或整庫全增量實時寫等整庫級別同步配置指導
操作流程請參見數據集成側同步任務配置。
附錄:腳本Demo與參數說明
離線任務腳本配置方式
如果您配置離線任務時使用腳本模式的方式進行配置,您需要按照統一的腳本格式要求,在任務腳本中編寫相應的參數,詳情請參見通過腳本模式配置離線同步任務,以下為您介紹腳本模式下數據源的參數配置詳情。
Reader腳本Demo
{
"type": "job",
"steps": [
{
"stepType": "analyticdb_for_mysql", //插件名。
"parameter": {
"column": [ //列名。
"id",
"value",
"table"
],
"connection": [
{
"datasource": "xxx", //數據源。
"table": [ //表名。
"xxx"
]
}
],
"where": "", //過濾條件。
"splitPk": "", //切分鍵。
"encoding": "UTF-8" //編碼格式。
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "stream",
"parameter": {},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": "0" //同步過程中的錯誤記錄限制數。
},
"speed": {
"throttle":true,//當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
"concurrent":1 //作業并發數。
"mbps":"12"http://限流,此處1mbps = 1MB/s。
}
}
}
Reader腳本參數
參數 | 描述 | 是否必選 | 默認值 |
datasource | 數據源名稱,腳本模式支持添加數據源,此配置項填寫的內容必須要與添加的數據源名稱保持一致。 | 是 | 無 |
table | 所選取的需要同步的表。 | 是 | 無 |
column | 所配置的表中需要同步的列名集合,使用JSON的數組描述字段信息,默認使用所有列配置,例如[ * ]。
| 是 | 無 |
splitPk | AnalyticDB for MySQL 3.0 Reader進行數據抽取時,如果指定splitPk,表示您希望使用splitPk代表的字段進行數據分片,數據同步因此會啟動并發任務進行數據同步,提高數據同步的效能。
| 否 | 無 |
where | 篩選條件,在實際業務場景中,往往會選擇當天的數據進行同步,將where條件指定為
| 否 | 無 |
Writer腳本Demo
{
"type": "job",
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "analyticdb_for_mysql", //插件名。
"parameter": {
"postSql": [], //導入后的準備語句。
"tableType": null, //保留字段,默認空。
"datasource": "hangzhou_ads", //數據源名稱。
"column": [ //同步字段。
"id",
"value"
],
"guid": null,
"writeMode": "insert", //寫入模式,請參見writeMode參數說明。
"batchSize": 2048, //批量寫入的大小,請參見batchSize參數說明。
"encoding": "UTF-8", //編碼格式。
"table": "t5", //寫入的表名。
"preSql": [] //導入前的準備語句。
},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0", //配置文件格式的版本號。
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": "0" //錯誤記錄數。
},
"speed": {
"throttle":true,//當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
"concurrent":2, //作業并發數。
"mbps":"12"http://限流,此處1mbps = 1MB/s。
}
}
}
Writer腳本參數
參數 | 描述 | 是否必選 | 默認值 |
datasource | 數據源名稱,腳本模式支持添加數據源,此配置項填寫的內容必須與添加的數據源名稱保持一致。 | 是 | 無 |
table | 選取的需要同步的表名稱。 | 是 | 無 |
writeMode | 寫入數據的方式,可選擇insert 、replace和update三種方式。
| 否 | insert |
column | 目標表需要寫入數據的字段,字段之間用英文所逗號分隔,例如 說明 如果字段名中包含select,請在字段名前后加上反引號。例如,item_select_no需要寫為`item_select_no`。 | 是 | 無 |
preSql | 執行數據同步任務之前率先執行的SQL語句。目前向導模式僅允許執行一條SQL語句,腳本模式可以支持多條SQL語句,例如清除舊數據。 說明 當有多條SQL語句時,不支持事務。 | 否 | 無 |
postSql | 執行數據同步任務之后執行的SQL語句,目前向導模式僅允許執行一條SQL語句,腳本模式可以支持多條SQL語句,例如加上某一個時間戳。 說明 當有多條SQL語句時,不支持事務。 | 否 | 無 |
batchSize | 一次性批量提交的記錄數大小,該值可以極大減少數據同步系統與MySQL的網絡交互次數,并提升整體吞吐量。如果該值設置過大,會導致數據同步運行進程OOM異常。 | 否 | 1,024 |