DataWorksData Integration支援通過單表離線或整庫離線功能將資料寫入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。
使用限制
不支援寫入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。
-
通過私網串連:私網串連具有較大的頻寬和較穩定的串連,因此推薦使用私網串連。在使用私網串連之前,需要按照網路設定文檔,建立一個終端節點。在終端節點建立完成且狀態從創建中變為可用,串連狀態從串連中變為已串連後,您還需要將終端節點所在的VPC與資源群組所在的VPC進行綁定,具體操作可以參考網路連通方案。
-
通過公網串連:您需要將資源群組的EIP地址添加到SelectDB的白名單管理中。具體配置請參見通用配置:添加白名單。
建立資料來源
在進行資料同步任務開發時,您需要在DataWorks上建立一個對應的資料來源,操作流程請參見資料來源管理,詳細的配置參數解釋可在配置介面查看對應參數的文案提示。
下面對SelectDB資料來源的幾個配置項進行說明:
-
MySQL串連地址:請填寫JDBC串連串您可以直接從SelectDB控制台的中複製JDBC串連串,支援公網IP和私網IP。
-
HTTP串連地址:請填寫HTTP協議訪問地址。您可以直接從SelectDB控制台的中複製HTTP協議訪問地址,支援公網IP和私網IP。
-
用戶名:請填寫SelectDB資料倉儲的使用者名稱。
-
密碼:請填寫SelectDB資料倉儲對應使用者的密碼。
資料同步任務開發
資料同步任務的配置入口和通用配置流程可參見下文的配置指導。
單表離線同步任務配置指導
-
指令碼模式配置的全量參數和指令碼Demo請參見下文的附錄:SelectDB指令碼Demo與參數說明。
整庫離線同步任務配置指導
-
支援資料來源:MySQL、PostgreSQL。
-
操作流程請參見整庫離線同步任務配置。
附錄: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 INTO的請求參數,主要用於配置匯入的資料格式。預設採用JSON格式匯入。如果loadProps沒有配置,或者配置為
如果您需要指定為csv格式匯入,則可以按照如下方式指定為csv格式,並配置行、資料行分隔符號。如果您沒有指定行、資料行分隔符號,則預設傳入的資料均會被轉為字串,並以
|
否 |
無 |
|
clusterName |
SelectDB Cloud叢集名稱,您可以在SelectDB控制台查看。 |
否 |
無 |
|
flushInterval |
資料寫入批次的時間間隔(單位:ms),如果maxBatchRows和batchSize參數設定得很大,則可能還未達到設定的資料量大小,系統就會根據寫入的時間間隔執行資料匯入。 |
否 |
30000 |