任务配置¶
一个采集任务就是一个 JSON 格式配置文件,该配置文件的模板如下:
{
"job": {
"settings": {},
"content": {
"reader": {},
"writer": {},
"transformer": []
}
}
}
任务配置由 key 为 job
的字典组成,其字典元素由三部分组成:
settings
: 用来定义本次任务的一些控制参数,比如指定多少线程,最大错误率,最大错误记录条数等,这是可选配置。reader
: 用来配置数据读取所需要的相关信息,这是必填内容writer
: 用来配置写入数据所需要的相关信息,这是必填内容transformer
: 数据转换规则,如果需要对读取的数据在写入之前做一些变换,可以配置该项,否则可以不配置
reader 配置项¶
reader
配置项依据不同的 reader 插件而有些微不同,但大部分的配置大同小异,特别是针对关系型数据库而言,其基本配置如下:
{
"name": "mysqlreader",
"parameter": {
"username": "",
"password": "",
"column": [],
"connection": [
{
"jdbcUrl": [],
"table": []
}
],
"where": ""
}
}
其中 name
是插件的名称,每个插件的名称都是唯一的,每个插件更详细的配置可以参考读取插件章节的各插件内容
writer 配置项¶
writer
配置项和 reader
配置项差不多,其基本模板如下:
{
"name": "mysqlwriter",
"parameter": {
"username": "",
"password": "",
"writeMode": "",
"column": [],
"session": [],
"preSql": [],
"connection": [
{
"jdbcUrl": "",
"table": []
}
]
}
}
同样的,这里的 name
也是唯一的,每个插件更详细的配置可以参考写入插件章节的各插件内容
settings 配置项¶
settings
可配置的内容如下:
{
"setting": {
"speed": {
"byte": -1,
"record": 100,
"channel": 1
},
"errorLimit": {
"record": 0,
"percentage": 0.02
}
}
}
解释如下:
speed
¶
顾名思义,这里是用来做流控的配置项,可以从网络传输速度,每秒的记录数以及线程数上做控制,分别描述如下:
speed.byte
¶
设置每秒可获取的字节数(Bps),一般是为了防止执行任务时将整个带宽跑满,从而影响到其他服务。如果不做限制,可设置为 -1
speed.record
¶
设置记录每秒可获取的最大记录条数,该参数需要和 speed.byte
配合使用
speed.channel
¶
设置通道数,该通道路确定了每个任务的线程数,目前一个channel对应5个线程,比如设置 channel
为 3, 则有 3 * 5 + 1 = 16
个线程,其中一个线程为统计线程。
errorLimit
¶
errorLimit
用来配置在数据写入报错时的行为,具体如下
errorLimit.record
¶
允许错误的记录条数,如果超过这个数,则认为本次任务失败,否则认为成功
errorLimit.percentage
¶
允许错误记录的比率,超过这个比率,则认为本次任务失败,否则认为成功
注意,上述参数在 conf/core.json
配置文件均有默认配置,用来控制全局的设置。