OTSReader自己定义切分主键

本文介绍OTS数据存储中自定义切分配置的应用场景及配置方法。主要针对OTSReader自动切分策略失效的情况,通过用户自定义切分规则来解决数据热点问题。文章详细展示了如何配置切分点以实现更高效的数据抽取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该配置项属于高级配置项,是用户自己定义切分配置信息,普通情况下不建议用户使用。

适用场景通常在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": {}
               }
           }
       ]
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值