该配置项属于高级配置项,是用户自己定义切分配置信息,普通情况下不建议用户使用。
适用场景通常在OTS数据存储发生热点,使用OTSReader自动切分的策略不能生效情况下,使用用户自定义的切分规则。split指定是的在Begin、End区间内的切分点,且只能是partitionKey的切分点信息,即在split仅配置partitionKey,而不需要指定全部的PrimaryKey。
例如对一张主键为id01、id02的OTS进行抽取任务,主键是数据0~90可以配置为:
{
"job": {
"setting": {
"speed": {
"byte": 1048576
},
"errorLimit": {
"record": 0,
"percentage": 0.02
}
},
"content": [
{
"reader": {
"name": "otsreader-internal",
"parameter": {
"mode": "multiVersion",
"endpoint": "http://datax-internal.cn-hangzhou.ots.aliyuncs.com/",
"accessId": "xxxxxxxxxxxxxxxx",
"accessKey": "yyyyyyyyyyyyyy",
"instanceName": "datax-internal",
"table": "datax_ots_reader_internal_test_table",
"range": {
"begin": [
{
"type": "INF_MIN",//主键id01最小值
"value": ""
},
{
"type": "INF_MIN",//主键id02最小值
"value": ""
}
],
"end": [
{
"type": "INF_MAX",//指定 id01 抽取最大值
"value": ""
},
{
"type": "INF_MIN",//指定 id02 抽取最大值
"value": ""
}
],
"split": [
// 用户指定的切分点,如果指定了切分点,Job 将按照 begin、end 和 split 进行 Task 的切分,
// 切分的列只能是 Partition Key(ParimaryKey 的第一列)
// 支持 INF_MIN, INF_MAX, STRING, INT
{
"type": "int",
"value": "30"
},
{
"type": "int",
"value": "60"
},
{
"type": "int",
"value": "90"
}
]
},
"column": [
{
"name": "name"
},
{
"name": "mobile"
},
{
"name": "age"
},
{
"name": "salary"
},
{
"name": "marry"
}
]
}
},
"writer": {
"name": "txtfilewriter",
"parameter": {}
}
}
]
}
}