GBase8S 数据源为您提供可视化读取和脚本模式(DSL)读取、写入 GBase8S 数据库的能力,实现和不同数据源进行数据传输。
本文为您介绍 DataSail 的 GBase8S 数据同步的能力支持情况。
目前仅支持 GBase 8s V8.8(兼容 openGauss、PostgreSQL、MySQL)以及 GBase 8s V8.8(兼容 Oracle)两个版本。
DSL 模式写入 GBase8S 时,仅支持 directlyInsert 模式。
类型分类 | 子类型 | 数据类型 | 备注 |
---|---|---|---|
整数类型 | 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 处理 |
类型分类 | 子类型 | 数据类型 | 备注 |
---|---|---|---|
整数类型 | 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 处理 |
新建数据源操作详见配置数据源,下面为您介绍用连接串方式配置 GBase8s 数据源信息:
参数 | 说明 |
---|---|
基本配置 | |
数据源类型 | GBase8s |
接入方式 | 连接串 |
数据源名称 | 数据源的名称,可自行设置,仅支持中文,英文,数字,“_”,100个字符以内。 |
参数配置 | |
JDBC URL | 填写连接 GBase8s 数据库的 JDBC 地址信息,不同模式填写示例如下:
|
用户名 | 有权限访问数据库的用户名信息。 |
密码 | 输入用户名对应的密码信息。 |
GBase8s 数据源测试连通性成功后,进入到数据开发界面,开始新建 GBase8s 相关通道任务。
新建任务方式详见离线数据同步。
任务创建成功后,您可根据实际场景,配置 GBase8s 离线读或 GBase8s 离线写等通道任务。
数据来源选择 GBase8s,并完成以下相关参数配置:
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
参数 | 说明 |
---|---|
*数据源类型 | 下拉选择 GBase8s 数据源类型。 |
*数据源名称 | 已在数据源管理中注册成功的 GBase8s 数据源,下拉可选。 |
*Schema 目录 | 数据库下已有的 Schema 目录信息,下拉可选。 |
*数据表 | 下拉选择需要采集的数据表或视图名称信息。 |
数据过滤 | 支持您将需要同步的数据进行筛选条件设置,只同步符合过滤条件的数据,可直接填写关键词 where 后的过滤 SQL 语句,例如:create_time > '${date}',表示只同步 create_time 大于等于 ${date} 的数据,不需要填写 where 关键字。 说明 该过滤语句通常用作增量同步,暂时不支持 limit 关键字过滤,其 SQL 语法需要和选择的数据源类型对应。 |
切分建 | 根据配置的字段进行数据分片,建议使用主键或有索引的列作为切分键:
说明 目前仅支持类型为整型或字符串的字段作为切分建。 |
目前暂不支持可视化配置离线数据写入 GBase8s,敬请期待。
数据来源和目标端配置完成后,需要指定来源和目标端的字段映射关系,根据字段映射关系,数据集成任务将源端字段中的数据,写入到目标端对应字段中。
您可通过以下三种方式操作字段映射关系:
自动添加:单击自动添加按钮,根据两端数据表信息,可以自动填充来源和目标的字段信息。
手动添加:单击手动添加按钮,可以手动编辑来源和目标的字段信息,可以逐个添加。
移动\删除字段:您也可以根据需要移动字段映射顺序或删除字段。
GBase8s 数据源支持使用脚本模式(DSL)的方式进行配置。
在某些复杂场景下,或当数据源类型暂不支持可视化配置时,您可通过任务脚本的方式,按照统一的 Json 格式,编写 GBase8s Reader 和 GBase8s Writer 参数脚本代码,来运行数据集成任务。
进入 DSL 模式操作流程,可详见 MySQL 数据源-4.4.1 进入DSL 模式。
进入 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,可以在项目控制台 > 数据源管理界面中查找。
|
*class | gbase8s reader connector type, 默认固定值com.bytedance.dts.batch.jdbc.GBase8sInputFormat |
*connections | jdbc 类型数据源通用配置:
|
*user_name | 有权限访问数据库的用户名信息。 |
*password | 用户名对应的密码信息。 |
*columns | 所配置的表中,需要同步的列名集合,使用 JSON 的数组描述字段信息。 |
*db_name | 填写需读取的数据库名称。 |
*table_schema | 填写需读取的 Hana 数据库中 Schema 名称。 |
*table_name | 输入需同步的数据表或者视图名字信息。 |
filter | 同步数据的过滤条件,同步数据时只会同步符合过滤条件的数据。 |
根据实际情况替换 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 |
*datasource_id | 填写注册的 GBase8S 数据源ID,可以在项目控制台 > 数据源管理界面中查找。
|
*class | gbase8s reader connector type, 默认固定值com.bytedance.dts.batch.jdbc.GBase8sOutputFormat |
*connections | jdbc 类型数据源通用配置:
|
*user_name | 有权限访问数据库的用户名信息。 |
*password | 用户名对应的密码信息。 |
*columns | 所配置的表中,需要同步的列名集合,使用 JSON 的数组描述字段信息。 |
*db_name | 填写需读取的数据库名称。 |
*table_schema | 填写需读取的 Hana 数据库中 Schema 名称。 |
*table_name | 输入需同步的数据表或者视图名字信息。 |
write_mode | 仅支持 directlyInsert。 |