DataWorksData Integration支援使用SelectDB Writer匯入表資料至SelectDB。本文為您介紹DataWorks的SelectDB資料同步能力支援情況。
支援的SelectDB版本
SelectDB Writer使用的驅動版本是MySQL Driver5.1.47,驅動能力詳情請參見MySQL Connectors。該驅動支援情況如下:
標準SelectDB版本為:2.2.31、2.2.22。
阿里雲SelectDB版本為:2.4、3.0、4.0。
使用限制
Data Integration僅支援離線寫入SelectDB。
不支援寫入BITMAP,HLL(HyperLogLog)、QUANTILE_STATE類型的欄位。
支援的欄位類型
各版本SelectDB的全量欄位類型請參見SelectDB官方文檔。下面以SelectDB 2.2.22為例,為您介紹SelectDB支援的欄位類型。
SelectDB欄位類型 | 離線寫入(SelectDB Writer) |
INT | 支援 |
BIGINT | 支援 |
LARGEINT | 支援 |
SMALLINT | 支援 |
TINYINT | 支援 |
BOOLEAN | 支援 |
DECIMAL | 支援 |
DOUBLE | 支援 |
FLOAT | 支援 |
CHAR | 支援 |
VARCHAR | 支援 |
STRING | 支援 |
DATE | 支援 |
DATEV2 | 支援 |
DATETIME | 支援 |
DATETIMEV2 | 支援 |
ARRAY | 支援 |
JSONB | 支援 |
BITMATP | 不支援 |
HLL(HyperLogLog) | 不支援 |
QUANTILE_STATE | 不支援 |
資料同步前準備
在DataWorks上進行資料同步前,您需要參考本文提前在SelectDB側進行資料同步環境準備,以便在DataWorks上進行SelectDB資料同步任務配置與執行時服務正常。以下為您介紹SelectDB同步前的相關環境準備。
準備工作1:確認SelectDB的版本
Data Integration對SelectDB版本有要求,詳情請參見支援的SelectDB版本,您可以在SelectDB控制台查看當前待同步的SelectDB是否符合版本要求。
準備工作2:建立帳號,並配置帳號許可權
建議您提前規劃並建立一個專用於DataWorks訪問資料來源的SelectDB帳號,如果您需要使用SelectDB資料倉儲預設的admin使用者進行登入,那麼您需要為admin使用者佈建密碼。
準備工作3:配置SelectDB的網路連接
SelectDB具有私網串連和公網串連兩種模式,Data Integration允許您通過私網或公網串連到SelectDB。
建立資料來源
在進行資料同步任務開發時,您需要在DataWorks上建立一個對應的資料來源,操作流程請參見建立並管理資料來源,詳細的配置參數解釋可在配置介面查看對應參數的文案提示。
下面對SelectDB資料來源的幾個配置項進行說明:
MySQL串連地址:請填寫JDBC串連串您可以直接從SelectDB控制台的中複製JDBC串連串,支援公網IP和私網IP。
HTTP串連地址:請填寫HTTP協議訪問地址。您可以直接從SelectDB控制台的中複製HTTP協議訪問地址,支援公網IP和私網IP。
使用者名稱:請填寫SelectDB資料倉儲的使用者名稱。
密碼:請填寫SelectDB資料倉儲對應使用者的密碼。
資料同步任務開發
資料同步任務的配置入口和通用配置流程可參見下文的配置指導。
單表離線同步任務配置指導
操作流程請參見通過嚮導模式配置離線同步任務、通過指令碼模式配置離線同步任務。
指令碼模式配置的全量參數和指令碼Demo請參見下文的附錄:SelectDB指令碼Demo與參數說明。
附錄:SelectDB指令碼Demo與參數說明
離線任務指令碼配置方式
如果您配置離線任務時使用指令碼模式的方式進行配置,您需要按照統一的指令碼格式要求,在任務指令碼中編寫相應的參數,詳情請參見通過指令碼模式配置離線同步任務,以下為您介紹指令碼模式下資料來源的參數配置詳情。
Writer指令碼Demo
{
"stepType": "selectdb",//外掛程式名。
"parameter":
{
"postSql"://執行資料同步任務之後率先執行的SQL語句。
[],
"preSql":
[],//執行資料同步任務之前率先執行的SQL語句。
"datasource":"selectdb_datasource",//資料來源名。
"table": "selectdb_table_name",//表名。
"column":
[
"id",
"table_id",
"table_no",
"table_name",
"table_status"
],
"loadProps":{
"format":"csv",//指定為csv格式
"column_separator": "\\x01",//指定資料行分隔符號
"line_delimiter": "\\x02"//指定行分隔字元
}
},
"name": "Writer",
"category": "writer"
}Writer指令碼參數
參數 | 描述 | 是否必選 | 預設值 |
datasource | 資料來源名稱,指令碼模式支援添加資料來源,此配置項填寫的內容必須與添加的資料來源名稱保持一致。 | 是 | 無 |
table | 選取的需要同步的表名稱。 | 是 | 無 |
column | 目標表需要寫入資料的欄位,欄位之間用英文逗號分隔。例如 | 是 | 無 |
preSql | 執行資料同步任務之前,需率先執行的SQL語句。目前嚮導模式僅允許執行一條SQL語句,指令碼模式可以支援多條SQL語句,例如,執行前清空表中的舊資料。 | 否 | 無 |
postSql | 執行資料同步任務之後執行的SQL語句。目前嚮導模式僅允許執行一條SQL語句,指令碼模式可以支援多條SQL語句,例如,加上某個時間戳記。 | 否 | 無 |
maxBatchRows | 每批次匯入資料的最大行數和batchSize共同控制每批次的匯入數量。每批次資料達到兩個閾值之一,即開始匯入這一批次的資料。 | 否 | 500000 |
batchSize | 每批次匯入資料的最巨量資料量和maxBatchRows共同控制每批次的匯入數量。每批次資料達到兩個閾值之一,即開始匯入這一批次的資料。 | 否 | 94371840 |
maxRetries | 每批次匯入資料失敗後的重試次數。 | 否 | 3 |
labelPrefix | 每批次上傳檔案的label首碼。最終的label將由 | 否 | datax_selectdb_writer_ |
loadProps | COPY INOT的請求參數,主要用於配置匯入的資料格式。預設採用JSON格式匯入。如果loadProps沒有配置,或者配置為 如果您需要指定為csv格式匯入,則可以按照如下方式指定為csv格式,並配置行、資料行分隔符號。如果您沒有指定行、資料行分隔符號,則預設傳入的資料均會被轉為字串,並以 | 否 | 無 |
clusterName | SelectDB Cloud叢集名稱,您可以在SelectDB控制台查看。 | 否 | 無 |
flushInterval | 資料寫入批次的時間間隔(單位:ms),如果maxBatchRows和batchSize參數設定得很大,則可能還未達到設定的資料量大小,系統就會根據寫入的時間間隔執行資料匯入。 | 否 | 30000 |