You need to enable JavaScript to run this app.
导航

配置 GBase8S 数据源

最近更新时间2023.10.24 10:38:36

首次发布时间2023.10.24 10:38:36

GBase8S 数据源为您提供可视化读取脚本模式(DSL)读取、写入 GBase8S 数据库的能力,实现和不同数据源进行数据传输。
本文为您介绍 DataSail 的 GBase8S 数据同步的能力支持情况。

1 使用限制

  1. 目前仅支持 GBase 8s V8.8(兼容 openGauss、PostgreSQL、MySQL)以及 GBase 8s V8.8(兼容 Oracle)两个版本。

  2. DSL 模式写入 GBase8S 时,仅支持 directlyInsert 模式。

2 支持的字段类型

2.1 GBase 8s V8.8(兼容 openGauss、PostgreSQL、MySQL)

类型分类子类型数据类型备注

整数类型

SHORT(2-bytes)

tinyint、smallint、smallserial

INT(4-bytes)binary_integer、serial、int4
LONG(8-bytes)bigserial、bigint
BIGINT(同Java BigInteger)int16、largeserial
字符串类型--char、nchar、character、varchar、character varying、varchar2、nvarchar、nvarchar2、text、clob、name、reltime
浮点类型FLOAT(单精度)REAL、FLOAT4
DOUBLE(双精度)FLOAT、FLOAT8、double precision、binary_double
DECIMAL(同Java BigDeciaml)INTEGER[( p[,s])]、numeric、number、dec、money、decimal
布尔类型--BOOLEAN
日期时间类型--DATE,timestamp,time,smalldatetime
二进制类型--blob、raw、bytea
其他--point、lseg、box、path、inet、cidr、bit、bit varying、oid、cid、xid、tid、cstring、xml、hash16、hash32会转为 string 处理

2.2 GBase 8s V8.8(兼容 Oracle)

类型分类子类型数据类型备注
整数类型SHORT(2-bytes)SMALLINT、
INT(4-bytes)INT、integer、serial
LONG(8-bytes)bigserial、bigint、int8、serial8
字符串类型--char、character、character varying、nchar、nvarchar、text、varchar、varchar2、binary18、binaryvar、clob、lvarchar、xmltype
浮点类型FLOAT(单精度)real、smallfloat、
DOUBLE(双精度)double precision、float
DECIMAL(同Java BigDeciaml)decimal、dec、money、numeric
布尔类型--BOOLEAN
日期时间类型--DATE,timestamp
二进制类型--byte、blob
其他--list、distinct、lld_locator、lld_lob_data、multiset、opeque、node、set、row、st_linestring、st_multilinestring、st_point、st_polygon、st_multipoint、st_multipolygon、timeseries会转为 string 处理

3 数据同步任务开发

3.1 数据源注册

新建数据源操作详见配置数据源,下面为您介绍用连接串方式配置 GBase8s 数据源信息:

参数说明
基本配置
数据源类型GBase8s
接入方式连接串
数据源名称数据源的名称,可自行设置,仅支持中文,英文,数字,“_”,100个字符以内。
参数配置

JDBC URL

填写连接 GBase8s 数据库的 JDBC 地址信息,不同模式填写示例如下:

  • Oracle 兼容模式:

    jdbc:gbasedbt-sqli://xxx.xxx.xx.xx:9091/databases:GBASEDBTSERVER=test;DB_LOCALE=zh_CN.utf8;CLIENT_LOCALE=zh_CN.utf8;NEWCODESET=UTF8,utf8,57372;

  • openGauss、PostgreSQL、MySQL 兼容模式:

    jdbc:opengauss://xxx.xxx.xx.xx:54321/school

用户名有权限访问数据库的用户名信息。
密码输入用户名对应的密码信息。

3.2 新建离线任务

GBase8s 数据源测试连通性成功后,进入到数据开发界面,开始新建 GBase8s 相关通道任务。
新建任务方式详见离线数据同步

3.3 可视化配置说明

任务创建成功后,您可根据实际场景,配置 GBase8s 离线读GBase8s 离线写等通道任务。

3.3.1 GBase8s 离线

数据来源选择 GBase8s,并完成以下相关参数配置:
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。

参数
说明
*数据源类型下拉选择 GBase8s 数据源类型。

*数据源名称

已在数据源管理中注册成功的 GBase8s 数据源,下拉可选。
若还未建立相应数据源,可单击数据源管理按钮,前往创建 GBase8s 数据源。

*Schema 目录数据库下已有的 Schema 目录信息,下拉可选。
*数据表下拉选择需要采集的数据表或视图名称信息。

数据过滤

支持您将需要同步的数据进行筛选条件设置,只同步符合过滤条件的数据,可直接填写关键词 where 后的过滤 SQL 语句,例如:create_time > '${date}',表示只同步 create_time 大于等于 ${date} 的数据,不需要填写 where 关键字。
语句填写完成后,您可单击右侧的校验按钮,进行过滤语句校验。

说明

该过滤语句通常用作增量同步,暂时不支持 limit 关键字过滤,其 SQL 语法需要和选择的数据源类型对应。
如果不配置,默认会同步全量数据。

切分建

根据配置的字段进行数据分片,建议使用主键或有索引的列作为切分键:

  • 如果表没有主键或者索引列,可以不配置该字段,同步任务不会进行分片,并以单并发的方式同步所有的数据;

  • 建议使用主键或有索引的列作为切分键,切分键配置没有索引的列同步任务会比较慢;

说明

目前仅支持类型为整型或字符串的字段作为切分建。

3.3.2 GBase8s 离线写

目前暂不支持可视化配置离线数据写入 GBase8s,敬请期待。

3.3.3 字段映射

数据来源和目标端配置完成后,需要指定来源和目标端的字段映射关系,根据字段映射关系,数据集成任务将源端字段中的数据,写入到目标端对应字段中。
您可通过以下三种方式操作字段映射关系:

  • 自动添加:单击自动添加按钮,根据两端数据表信息,可以自动填充来源和目标的字段信息。

  • 手动添加:单击手动添加按钮,可以手动编辑来源和目标的字段信息,可以逐个添加。

  • 移动\删除字段:您也可以根据需要移动字段映射顺序或删除字段。

3.4 DSL 配置说明

GBase8s 数据源支持使用脚本模式(DSL)的方式进行配置。
在某些复杂场景下,或当数据源类型暂不支持可视化配置时,您可通过任务脚本的方式,按照统一的 Json 格式,编写 GBase8s Reader 和 GBase8s Writer 参数脚本代码,来运行数据集成任务。

3.4.1 进入 DSL 模式

进入 DSL 模式操作流程,可详见 MySQL 数据源-4.4.1 进入DSL 模式

3.4.2 GBase8s Reader

进入 DSL 模式编辑界面后,您可根据实际情况替换相应参数,GBase8s 离线读脚本示例如下:

{
  "job": {
    "common": {
      ...
    },
    "reader": {
      "type": "gbase8s",
      "datasource_id": null,
      "class": "com.bytedance.dts.batch.jdbc.GBase8sInputFormat",
      "connections": [
        {
          "slaves": [
            {
              "host": "*.*.*.*",
              "db_url": "jdbc:gbasedbt-sqli://host:port/dts_test:GBASEDBTSERVER=dtstest;DB_LOCALE=zh_CN.utf8;CLIENT_LOCALE=zh_CN.utf8;NEWCODESET=UTF8,utf8,57372;",
              "port": 9091
            }
          ],
          "shardNumber": 0
        }
      ],
      "user_name": "username",
      "password": "password",
      "db_name":"dts_test",
      "table_name": "foo",
      "split_pk":"cc",
      "columns" :[
        {
          "name":"cc",
          "type":"char"
        },
        {
          "name":"nc",
          "type":"nchar"
        }
      ]
    },
    "writer": {
      ...
    }
  }
}

Reader 参数说明,其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数:

参数名称参数含义
*type数据源类型,输入 GBase8S 类型的 Reader type,默认固定值填写:gbase8s

*datasource_id

填写注册的 GBase8S 数据源ID,可以在项目控制台 > 数据源管理界面中查找。

  • 目前 DSL 模式默认推荐不填写数据源 ID,这里请填写 null。

  • 若通过数据源 ID 方式配置,下方的 class、connections、user_name、password 参数可不输入。

*classgbase8s reader connector type, 默认固定值com.bytedance.dts.batch.jdbc.GBase8sInputFormat

*connections

jdbc 类型数据源通用配置:

  • host:连接 GBase8S 数据库的 IP 地址。

  • db_url:需访问的数据库连接地址信息,不同模式连接信息不同,详见上方“3.1 数据源配置 - JDBC URL 参数说明”。

    以 Oracle 兼容模式为例 jdbc:gbasedbt-sqli://host:port/dts_test:GBASEDBTSERVER=dtstest;DB_LOCALE=zh_CN.utf8;CLIENT_LOCALE=zh_CN.utf8;NEWCODESET=UTF8,utf8,57372;

  • port:对应连接的端口号。

*user_name有权限访问数据库的用户名信息。
*password用户名对应的密码信息。
*columns所配置的表中,需要同步的列名集合,使用 JSON 的数组描述字段信息。
*db_name填写需读取的数据库名称。
*table_schema填写需读取的 Hana 数据库中 Schema 名称。
*table_name输入需同步的数据表或者视图名字信息。
filter同步数据的过滤条件,同步数据时只会同步符合过滤条件的数据。

3.4.4 GBase8S Writer

根据实际情况替换 GBase8S Writer 相应参数,GBase8S Writer 脚本示例如下:

{
  "job": {
    "common": {
      ...
    },
    "reader": {
      ...
    },
    "writer": {
      "type": "gbase8s",
      "datasource_id": null,
      "class": "com.bytedance.dts.batch.jdbc.GBase8sOutputFormat",
      "write_mode": "directlyInsert",
      "user_name": "username",
      "password": "pdw",
      "db_name":"dts_test",
      "table_name": "foo",
      "connections": [
        {
          "host": "*.*.*.*",
          "db_url": "jdbc:gbasedbt-sqli://ip:port/dts_test:GBASEDBTSERVER=dtstest;DB_LOCALE=zh_CN.utf8;CLIENT_LOCALE=zh_CN.utf8;NEWCODESET=UTF8,utf8,57372;user=gbasedbt;password=123qweABC",
          "port": 9091
        }
      ],
      "columns" :[
        {
          "name":"cc",
          "type":"char"
        },
        {
          "name":"nc",
          "type":"nchar"
        }
      ]
    }
  }
}

Writer 参数说明,其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数:

参数名称
参数含义

*type

Reader type, 默认固定值 gbase8s
数据源类型,输入 GBase8S 类型的 Writer type,默认固定值填写:gbase8s

*datasource_id

填写注册的 GBase8S 数据源ID,可以在项目控制台 > 数据源管理界面中查找。

  • 目前 DSL 模式默认推荐不填写数据源 ID,这里请填写 null。

  • 若通过数据源 ID 方式配置,下方的 class、connections、user_name、password 参数可不输入。

*classgbase8s reader connector type, 默认固定值com.bytedance.dts.batch.jdbc.GBase8sOutputFormat

*connections

jdbc 类型数据源通用配置:

  • host:连接 GBase8S 数据库的 IP 地址。

  • db_url:需访问的数据库连接地址信息,不同模式连接信息不同,详见上方“3.1 数据源配置 - JDBC URL 参数说明”。

    以 Oracle 兼容模式为例 jdbc:gbasedbt-sqli://host:port/dts_test:GBASEDBTSERVER=dtstest;DB_LOCALE=zh_CN.utf8;CLIENT_LOCALE=zh_CN.utf8;NEWCODESET=UTF8,utf8,57372;

  • port:对应连接的端口号。

*user_name有权限访问数据库的用户名信息。
*password用户名对应的密码信息。
*columns所配置的表中,需要同步的列名集合,使用 JSON 的数组描述字段信息。
*db_name填写需读取的数据库名称。
*table_schema填写需读取的 Hana 数据库中 Schema 名称。
*table_name输入需同步的数据表或者视图名字信息。
write_mode仅支持 directlyInsert。