云數據庫 SelectDB 版支持使用DataWorks的數據集成功能,通過SelectDB Writer導入表數據。本文以MySQL數據源為例,介紹如何通過DataWorks同步數據至云數據庫 SelectDB 版。
使用限制
DataWorks的數據集成功能僅支持離線寫入云數據庫 SelectDB 版。
不支持寫入BITMAP、HLL(HyperLogLog)和QUANTILE_STATE類型的字段。
數據同步任務開發
新增數據源
在進行數據同步任務開發時,您需要在DataWorks上分別創建MySQL和SelectDB數據源。
創建MySQL數據源,詳情請參見MySQL數據源。
創建SelectDB數據源,詳情請參見創建并管理數據源。SelectDB數據源的部分配置參數如下所示:
參數
說明
數據源名稱
數據源的名稱。
MySQL連接地址
請填寫JDBC連接串
jdbc:mysql://<ip>:<port>/<dbname>
。您可以從云數據庫 SelectDB 版控制臺的實例詳情 > 網絡信息中獲取VPC地址(或公網地址)和MySQL協議端口。
示例:
jdbc:mysql://selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:9030/test_db
說明當MySQL實例和云數據庫 SelectDB 版實例屬于同一VPC時,使用VPC地址;不屬于同一個VPC時,使用公網地址。
HTTP連接地址
請填寫HTTP協議訪問地址
<ip>:<port>
。您可以從云數據庫 SelectDB 版控制臺的實例詳情 > 網絡信息中獲取VPC地址(或公網地址)和HTTP協議端口。
示例:
selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:8080
說明當MySQL實例和云數據庫 SelectDB 版實例屬于同一VPC時,使用VPC地址;不屬于同一個VPC時,使用公網地址。
用戶名
請填寫云數據庫 SelectDB 版實例的用戶名。
密碼
請填寫云數據庫 SelectDB 版實例對應用戶的密碼。
重要為了保證添加數據源成功,需要將DataWorks資源組的IP添加到SelectDB等數據源的白名單,具體操作流程請參考添加白名單。添加白名單時需要區分獨享數據集成資源組和公共數據集成資源組。
配置單表離線同步任務
您可以選擇向導模式或者腳本模式配置離線同步任務,操作流程請參見:
通過腳本模式配置離線任務時,全量參數和腳本示例請參見腳本模式示例與參數說明。
腳本模式示例與參數說明
離線任務腳本配置方式
使用腳本模式配置離線任務時,需要按照統一的腳本格式要求編寫腳本。腳本格式要求請參見通過腳本模式配置離線同步任務。
MySQL Reader與SelectDB Writer腳本示例
{
"type":"job",
"version":"2.0",
"steps":[
{
"stepType":"mysql",
"parameter":{
"column":[
"<id>",
"<table_id>",
"<table_no>",
"<table_name>",
"<table_status>"
],
"connection":[
{
"datasource":"<mysql_datasource>",
"table":[
"<mysql_table_name>"
]
}
],
"where":"",
"splitPk":"",
"encoding":"UTF-8"
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"selectdb",
"parameter":{
"postSql":[
],
"preSql":[
],
"username": "<selectdb_username>",
"password": "<selectdb_password>",
"loadUrl":[
"<ip:port>"
],
"column":[
"<id>",
"<table_id>",
"<table_no>",
"<table_name>",
"<table_status>"
],
"connection":[
{
"datasource":"<selectdb_datasource>",
"table":[
"<selectdb_table_name>"
]
}
],
"maxBatchRows":1000000,
"loadProps":{
"format":"csv",
"column_separator": "\\x01",
"line_delimiter": "\\x02"
}
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"
},
"speed":{
"throttle":false,
"concurrent":1
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
腳本參數
參數 | 描述 |
datasource | 數據源名稱。必選參數。腳本模式支持添加數據源,此配置項填寫的內容必須與新增的數據源名稱保持一致。 |
table | 需要同步的表名稱。必選參數。 |
column | 目標表需要寫入數據的字段,字段之間用英文逗號分隔。必選參數。例如 |
loadUrl | SelectDB的連接地址。必選參數。格式為 |
username | 訪問SelectDB數據庫的用戶名。必選參數。 |
password | 訪問SelectDB數據庫的密碼。必選參數。 |
preSql | 執行數據同步任務之前率先執行的SQL語句。目前向導模式僅允許執行一條SQL語句,腳本模式可以支持多條SQL語句,例如,執行前清空表中的舊數據。 |
postSql | 執行數據同步任務之后執行的SQL語句。目前向導模式僅允許執行一條SQL語句,腳本模式可以支持多條SQL語句,例如,加上某一個時間戳。 |
maxBatchRows | 每批次導入數據的最大行數。默認為500000。 |
loadProps | COPY INTO的請求參數,主要用于配置導入的數據格式。默認JSON格式導入。如果loadProps沒有配置,或者配置為
如果您需要指定為CSV格式導入,則可以按照如下方式指定為CSV格式,并配置行、列分隔符。如果您沒有指定行、列分隔符,則默認傳入的數據均會被轉為字符串,并以
|
支持的字段類型
云數據庫 SelectDB 版支持的字段類型如下表所示:
SelectDB字段類型 | 離線寫入(SelectDB Writer) |
INT | 支持 |
BIGINT | 支持 |
LARGEINT | 支持 |
SMALLINT | 支持 |
TINYINT | 支持 |
BOOLEAN | 支持 |
DECIMAL | 支持 |
DOUBLE | 支持 |
FLOAT | 支持 |
CHAR | 支持 |
VARCHAR | 支持 |
STRING | 支持 |
DATE | 支持 |
DATEV2 | 支持 |
DATETIME | 支持 |
DATETIMEV2 | 支持 |
ARRAY | 支持 |
JSONB | 支持 |
BITMAP | 不支持 |
HLL(HyperLogLog) | 不支持 |
QUANTILE_STATE | 不支持 |