本文为您介绍Gbase8a Reader支持的数据类型、字段映射和数据源等参数及配置示例。
背景信息
Gbase8a是一款基于列存储的新型分析型数据库,Gbase8a Reader插件实现了从Gbase8a读取数据的功能。
重要 目前Gbase8a Reader仅支持使用新增和使用独享数据集成资源组,不支持使用默认资源组和自定义资源组。
Gbase8a Reader通过JDBC连接器连接至远程的Gbase8a数据库,根据您配置的信息生成查询SQL语句,发送至远程Gbase8a数据库,执行该SQL并返回结果。然后使用数据同步自定义的数据类型拼装返回的结果为抽象的数据集,传递给下游Writer处理。
- 对于您配置的table、column和where等信息,Gbase8a Reader将其拼接为SQL语句发送至Gbase8a数据库。
- 对于您配置的querySql信息,Gbase8a直接将其发送至Gbase8a数据库。
参数说明
参数 | 描述 | 是否必选 | 默认值 |
---|---|---|---|
datasource | 如果您使用的DataWorks版本支持添加Gbase8a数据源,即可在此处根据数据源名称引用您添加的Gbase8a数据源。 | 否 | 无 |
table | 选取的需要同步的表。使用JSON的数组进行描述,支持同时读取多张表。
当配置为多张表时,您需要保证多张表的schema结构一致,Gbase8a Reader不检查表的逻辑是否统一。
说明 table必须包含在connection配置单元中。
|
是 | 无 |
column | 所配置的表中需要同步的列名集合,使用JSON的数组描述字段信息 。默认使用所有列配置,例如[ * ]。
|
是 | 无 |
splitPk | Gbase8a Reader进行数据抽取时,如果指定splitPk,表示您希望使用splitPk代表的字段进行数据分片,数据同步因此会启动并发任务进行数据同步,提高数据同步的效能。
|
否 | 空 |
where | 筛选条件,Gbase8a Reader根据指定的column、table、where条件拼接SQL,并根据该SQL进行数据抽取。
例如,在进行测试时,可以指定where条件为limit 10。在实际业务场景中,通常会选择当天的数据进行同步,指定where条件为
gmt_create>$bizdate 。
|
否 | 无 |
querySql | 在部分业务场景中,where配置项不足以描述所筛选的条件,您可以通过该配置型来自定义筛选SQL。配置该项后,数据同步系统会忽略tables、columns和splitPk配置项,直接使用该项配置的内容对数据进行筛选。
当您配置querySql时,Gbase8a Reader直接忽略table、column、where和splitPk条件的配置。 |
否 | 无 |
fetchSize | 该配置项定义了插件和数据库服务器端每次批量数据获取条数,该值决定了数据集成和服务器端的网络交互次数,能够较大地提升数据抽取性能。
说明 fetchSize值过大(>2048)可能造成数据同步进程OOM。
|
否 | 1,024 |
脚本开发介绍
配置一个从Gbase8a读取数据的作业,使用脚本开发的详情请参见通过脚本模式配置离线同步任务。
{
"type": "job",
"steps": [
{
"stepType": "gbase8a", //插件名。
"parameter": {
"datasource": "", //数据源名。
"username": "",
"password": "",
"where": "",
"column": [ //字段。
"id",
"name"
],
"splitPk": "id",
"connection": [
{
"table": [ //表名。
"table"
],
"datasource":""
}
]
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "stream",
"parameter": {
"print": false,
"fieldDelimiter": ","
},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": "0" //错误记录数。
},
"speed": {
"throttle": true, //当throttle值为false时,mbps参数不生效,表示不限流;当throttle值为true时,表示限流。
"concurrent": 1, //作业并发数。
"mbps":"12"//限流
}
}
}