文档

SelectDB数据源

更新时间:

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。

  1. 通过私网连接:私网连接具有较大的带宽和较稳定的连接,因此推荐使用私网连接。在使用私网连接之前,需要按照网络设置文档,创建一个终端节点。在终端节点创建完成且状态从创建中变为可用,连接状态从连接中变为已连接后,您还需要将终端节点所在的VPC与资源组所在的VPC进行绑定,具体操作可以参考网络连通方案

  2. 通过公网连接:您需要将资源组的EIP地址添加到SelectDB的白名单管理中。获取独享数据集成资源组EIP地址如下:查看独享资源组EIP

数据同步任务开发:SelectDB同步流程指导

创建数据源

在进行数据同步任务开发时,您需要在DataWorks上创建一个对应的数据源,操作流程请参见创建并管理数据源。下面对SelectDB数据源的几个配置项进行说明:

  • MySQL连接地址:请填写JDBC连接串您可以直接从SelectDB控制台的连接方式 > 其他方式中复制JDBC连接串,支持公网IP和私网IP。

  • HTTP连接地址:请填写HTTP协议访问地址。您可以直接从SelectDB控制台的连接方式 > 其他方式中复制HTTP协议访问地址,支持公网IP和私网IP。

  • 用户名:请填写SelectDB数据仓库的用户名。

  • 密码:请填写SelectDB数据仓库对应用户的密码。

IP

单表离线同步任务配置指导

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

目标表需要写入数据的字段,字段之间用英文逗号分隔。例如"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