SelectDB數(shù)據(jù)源
DataWorks數(shù)據(jù)集成支持使用SelectDB Writer導(dǎo)入表數(shù)據(jù)至SelectDB。本文為您介紹DataWorks的SelectDB數(shù)據(jù)同步能力支持情況。
支持的SelectDB版本
SelectDB Writer使用的驅(qū)動版本是MySQL Driver5.1.47,驅(qū)動能力詳情請參見MySQL Connectors。該驅(qū)動支持情況如下:
標準SelectDB版本為:2.2.31、2.2.22。
阿里云SelectDB版本為:2.4和3.0。
使用限制
數(shù)據(jù)集成僅支持離線寫入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 | 不支持 |
數(shù)據(jù)同步前準備
在DataWorks上進行數(shù)據(jù)同步前,您需要參考本文提前在SelectDB側(cè)進行數(shù)據(jù)同步環(huán)境準備,以便在DataWorks上進行SelectDB數(shù)據(jù)同步任務(wù)配置與執(zhí)行時服務(wù)正常。以下為您介紹SelectDB同步前的相關(guān)環(huán)境準備。
準備工作1:確認SelectDB的版本
數(shù)據(jù)集成對SelectDB版本有要求,詳情請參見支持的SelectDB版本,您可以在SelectDB控制臺查看當前待同步的SelectDB是否符合版本要求。
截圖僅為參考,請以SelectDB最新界面為準。
準備工作2:創(chuàng)建賬號,并配置賬號權(quán)限
建議您提前規(guī)劃并創(chuàng)建一個專用于DataWorks訪問數(shù)據(jù)源的SelectDB賬號,如果您需要使用SelectDB數(shù)據(jù)倉庫默認的admin用戶進行登錄,那么您需要為admin用戶設(shè)置密碼,如下圖所示。
準備工作3:配置SelectDB的網(wǎng)絡(luò)連接
SelectDB具有私網(wǎng)連接和公網(wǎng)連接兩種模式,數(shù)據(jù)集成允許您通過私網(wǎng)或公網(wǎng)連接到SelectDB。
通過私網(wǎng)連接:私網(wǎng)連接具有較大的帶寬和較穩(wěn)定的連接,因此推薦使用私網(wǎng)連接。在使用私網(wǎng)連接之前,需要按照網(wǎng)絡(luò)設(shè)置文檔,創(chuàng)建一個終端節(jié)點。在終端節(jié)點創(chuàng)建完成且狀態(tài)從創(chuàng)建中變?yōu)?b data-tag="uicontrol" id="uicontrol-kck-zza-o4g" class="uicontrol">可用,連接狀態(tài)從連接中變?yōu)?b data-tag="uicontrol" id="uicontrol-fi7-0dd-klq" class="uicontrol">已連接后,您還需要將終端節(jié)點所在的VPC與資源組所在的VPC進行綁定,具體操作可以參考網(wǎng)絡(luò)連通方案。
通過公網(wǎng)連接:您需要將資源組的EIP地址添加到SelectDB的白名單管理中。具體配置請參見添加白名單。
創(chuàng)建數(shù)據(jù)源
在進行數(shù)據(jù)同步任務(wù)開發(fā)時,您需要在DataWorks上創(chuàng)建一個對應(yīng)的數(shù)據(jù)源,操作流程請參見創(chuàng)建并管理數(shù)據(jù)源,詳細的配置參數(shù)解釋可在配置界面查看對應(yīng)參數(shù)的文案提示。
下面對SelectDB數(shù)據(jù)源的幾個配置項進行說明:
MySQL連接地址:請?zhí)顚慗DBC連接串您可以直接從SelectDB控制臺的
中復(fù)制JDBC連接串,支持公網(wǎng)IP和私網(wǎng)IP。HTTP連接地址:請?zhí)顚慔TTP協(xié)議訪問地址。您可以直接從SelectDB控制臺的
中復(fù)制HTTP協(xié)議訪問地址,支持公網(wǎng)IP和私網(wǎng)IP。用戶名:請?zhí)顚慡electDB數(shù)據(jù)倉庫的用戶名。
密碼:請?zhí)顚慡electDB數(shù)據(jù)倉庫對應(yīng)用戶的密碼。
數(shù)據(jù)同步任務(wù)開發(fā)
數(shù)據(jù)同步任務(wù)的配置入口和通用配置流程可參見下文的配置指導(dǎo)。
單表離線同步任務(wù)配置指導(dǎo)
腳本模式配置的全量參數(shù)和腳本Demo請參見下文的附錄:SelectDB腳本Demo與參數(shù)說明。
附錄:SelectDB腳本Demo與參數(shù)說明
離線任務(wù)腳本配置方式
如果您配置離線任務(wù)時使用腳本模式的方式進行配置,您需要按照統(tǒng)一的腳本格式要求,在任務(wù)腳本中編寫相應(yīng)的參數(shù),詳情請參見通過腳本模式配置離線同步任務(wù),以下為您介紹腳本模式下數(shù)據(jù)源的參數(shù)配置詳情。
Writer腳本Demo
{
"stepType": "selectdb",//插件名。
"parameter":
{
"postSql"://執(zhí)行數(shù)據(jù)同步任務(wù)之后率先執(zhí)行的SQL語句。
[],
"preSql":
[],//執(zhí)行數(shù)據(jù)同步任務(wù)之前率先執(zhí)行的SQL語句。
"datasource":"selectdb_datasource",//數(shù)據(jù)源名。
"table": "selectdb_table_name",//表名。
"column":
[
"id",
"table_id",
"table_no",
"table_name",
"table_status"
],
"loadProps":{
"format":"csv",//指定為csv格式
"column_separator": "\\x01",//指定列分隔符
"line_delimiter": "\\x02"http://指定行分隔符
}
},
"name": "Writer",
"category": "writer"
}
Writer腳本參數(shù)
參數(shù) | 描述 | 是否必選 | 默認值 |
datasource | 數(shù)據(jù)源名稱,腳本模式支持添加數(shù)據(jù)源,此配置項填寫的內(nèi)容必須與添加的數(shù)據(jù)源名稱保持一致。 | 是 | 無 |
table | 選取的需要同步的表名稱。 | 是 | 無 |
column | 目標表需要寫入數(shù)據(jù)的字段,字段之間用英文逗號分隔。例如 | 是 | 無 |
preSql | 執(zhí)行數(shù)據(jù)同步任務(wù)之前率先執(zhí)行的SQL語句。目前向?qū)J絻H允許執(zhí)行一條SQL語句,腳本模式可以支持多條SQL語句,例如,執(zhí)行前清空表中的舊數(shù)據(jù)。 | 否 | 無 |
postSql | 執(zhí)行數(shù)據(jù)同步任務(wù)之后執(zhí)行的SQL語句。目前向?qū)J絻H允許執(zhí)行一條SQL語句,腳本模式可以支持多條SQL語句,例如,加上某一個時間戳。 | 否 | 無 |
maxBatchRows | 每批次導(dǎo)入數(shù)據(jù)的最大行數(shù)。和batchSize共同控制每批次的導(dǎo)入數(shù)量。每批次數(shù)據(jù)達到兩個閾值之一,即開始導(dǎo)入這一批次的數(shù)據(jù)。 | 否 | 500000 |
batchSize | 每批次導(dǎo)入數(shù)據(jù)的最大數(shù)據(jù)量。和maxBatchRows共同控制每批次的導(dǎo)入數(shù)量。每批次數(shù)據(jù)達到兩個閾值之一,即開始導(dǎo)入這一批次的數(shù)據(jù)。 | 否 | 94371840 |
maxRetries | 每批次導(dǎo)入數(shù)據(jù)失敗后的重試次數(shù)。 | 否 | 3 |
labelPrefix | 每批次上傳文件的label前綴。最終的label將由 | 否 | datax_selectdb_writer_ |
loadProps | COPY INOT的請求參數(shù),主要用于配置導(dǎo)入的數(shù)據(jù)格式。默認JSON格式導(dǎo)入。如果loadProps沒有配置,或者配置為
如果您需要指定為csv格式導(dǎo)入,則可以按照如下方式指定為csv格式,并配置行、列分隔符。如果您沒有指定行、列分隔符,則默認傳入的數(shù)據(jù)均會被轉(zhuǎn)為字符串,并以
| 否 | 無 |
clusterName | SelectDB Cloud集群名稱,您可以在SelectDB控制臺查看。 | 否 | 無 |
flushInterval | 數(shù)據(jù)寫入批次的時間間隔(單位:ms),如果maxBatchRows和batchSize參數(shù)設(shè)置的很大,則可能還未達到設(shè)置的數(shù)據(jù)量大小,系統(tǒng)就會根據(jù)寫入的時間間隔執(zhí)行數(shù)據(jù)導(dǎo)入。 | 否 | 30000 |