# 任务配置
一个采集任务就是一个 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 配置文件均有默认配置,用来控制全局的设置。