DataWorks数据集成支持使用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。
使用限制
数据集成仅支持离线写入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 | 不支持 |
数据同步前准备:SelectDB环境准备
在DataWorks上进行数据同步前,您需要参考本文提前在SelectDB侧进行数据同步环境准备,以便在DataWorks上进行SelectDB数据同步任务配置与执行时服务正常。以下为您介绍SelectDB同步前的相关环境准备。
准备工作1:确认SelectDB的版本
数据集成对SelectDB版本有要求,详情请参见支持的SelectDB版本,您可以在SelectDB控制台查看当前待同步的SelectDB是否符合版本要求。
截图仅为参考,请以SelectDB最新界面为准。
准备工作2:创建账号,并配置账号权限
建议您提前规划并创建一个专用于DataWorks访问数据源的SelectDB账号,如果您需要使用SelectDB数据仓库默认的admin用户进行登录,那么您需要为admin用户设置密码,如下图所示。
准备工作3:配置SelectDB的网络连接
SelectDB具有私网连接和公网连接两种模式,数据集成允许您通过私网或公网连接到SelectDB。
数据同步任务开发:SelectDB同步流程指导
创建数据源
在进行数据同步任务开发时,您需要在DataWorks上创建一个对应的数据源,操作流程请参见创建并管理数据源。下面对SelectDB数据源的几个配置项进行说明:
MySQL连接地址:请填写JDBC连接串您可以直接从SelectDB控制台的
中复制JDBC连接串,支持公网IP和私网IP。HTTP连接地址:请填写HTTP协议访问地址。您可以直接从SelectDB控制台的
中复制HTTP协议访问地址,支持公网IP和私网IP。用户名:请填写SelectDB数据仓库的用户名。
密码:请填写SelectDB数据仓库对应用户的密码。
单表离线同步任务配置指导
操作流程请参见通过向导模式配置离线同步任务、通过脚本模式配置离线同步任务。
脚本模式配置的全量参数和脚本Demo请参见下文的附录:SelectDB脚本Demo与参数说明。
附录:SelectDB脚本Demo与参数说明
附录:离线任务脚本配置方式
如果您配置离线任务时使用脚本模式的方式进行配置,您需要在任务脚本中按照脚本的统一格式要求编写脚本中的writer参数,脚本模式的统一要求请参见通过脚本模式配置离线同步任务,以下为您介绍脚本模式下的数据源Writer参数的指导详情。
SelectDB 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"
}
SelectDB 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 |