全部產品
Search
文件中心

DataWorks:SelectDB資料來源

更新時間:Aug 12, 2025

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。

  1. 通過私網串連:私網串連具有較大的頻寬和較穩定的串連,因此推薦使用私網串連。在使用私網串連之前,需要按照網路設定文檔,建立一個終端節點。在終端節點建立完成且狀態從建立中變為可用,串連狀態從串連中變為已串連後,您還需要將終端節點所在的VPC與資源群組所在的VPC進行綁定,具體操作可以參考網路連通方案

  2. 通過公網串連:您需要將資源群組的EIP地址添加到SelectDB的白名單管理中。具體配置請參見添加白名單

建立資料來源

在進行資料同步任務開發時,您需要在DataWorks上建立一個對應的資料來源,操作流程請參見建立並管理資料來源詳細的配置參數解釋可在配置介面查看對應參數的文案提示

下面對SelectDB資料來源的幾個配置項進行說明:

  • MySQL串連地址:請填寫JDBC串連串您可以直接從SelectDB控制台的串連方式 > 其他方式中複製JDBC串連串,支援公網IP和私網IP。

  • HTTP串連地址:請填寫HTTP協議訪問地址。您可以直接從SelectDB控制台的串連方式 > 其他方式中複製HTTP協議訪問地址,支援公網IP和私網IP。

  • 使用者名稱:請填寫SelectDB資料倉儲的使用者名稱。

  • 密碼:請填寫SelectDB資料倉儲對應使用者的密碼。

資料同步任務開發

資料同步任務的配置入口和通用配置流程可參見下文的配置指導。

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

附錄: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

目標表需要寫入資料的欄位,欄位之間用英文逗號分隔。例如"column":["id","name","age"]。如果要依次寫入全部列,使用(*)表示,例如"column":["*"]

preSql

執行資料同步任務之前,需率先執行的SQL語句。目前嚮導模式僅允許執行一條SQL語句,指令碼模式可以支援多條SQL語句,例如,執行前清空表中的舊資料。

postSql

執行資料同步任務之後執行的SQL語句。目前嚮導模式僅允許執行一條SQL語句,指令碼模式可以支援多條SQL語句,例如,加上某個時間戳記。

maxBatchRows

每批次匯入資料的最大行數和batchSize共同控制每批次的匯入數量。每批次資料達到兩個閾值之一,即開始匯入這一批次的資料。

500000

batchSize

每批次匯入資料的最巨量資料量和maxBatchRows共同控制每批次的匯入數量。每批次資料達到兩個閾值之一,即開始匯入這一批次的資料。

94371840

maxRetries

每批次匯入資料失敗後的重試次數。

3

labelPrefix

每批次上傳檔案的label首碼。最終的label將由labelPrefix + UUID組成全域唯一的label,確保資料不會重複匯入。

datax_selectdb_writer_

loadProps

COPY INOT的請求參數,主要用於配置匯入的資料格式。預設採用JSON格式匯入。如果loadProps沒有配置,或者配置為"loadProps":{},都採用預設的JSON格式,配置如下所示。(目前,SelectDB僅支援strip_outer_array=true)。

"loadProps": {
    "format": "json",
    "strip_outer_array":true
}

如果您需要指定為csv格式匯入,則可以按照如下方式指定為csv格式,並配置行、資料行分隔符號。如果您沒有指定行、資料行分隔符號,則預設傳入的資料均會被轉為字串,並以\t作為資料行分隔符號,\n作為行分隔字元,組成csv檔案進行SelectDB匯入操作。

"loadProps": {
    "format":"csv",
    "column_separator": "\\x01",
    "line_delimiter": "\\x02"
}

clusterName

SelectDB Cloud叢集名稱,您可以在SelectDB控制台查看。

flushInterval

資料寫入批次的時間間隔(單位:ms),如果maxBatchRowsbatchSize參數設定得很大,則可能還未達到設定的資料量大小,系統就會根據寫入的時間間隔執行資料匯入。

30000