ETL异构数据源Datax_限速设置_06 末蓝、 2022-10-09 03:05 257阅读 0赞 ### 文章目录 ### * * * * * 一、提升job内Channel并发有几种配置方式 * 二、配置简述 * 三、案例 * * 3.1. 第一种 * 3.2. 第二种 * 3.3. 第三种 * 3.4. 第四种 * 3.5. 案例实战 * 3.6. 总结 > 前言: > 在DataX内部对每个Channel会有严格的速度控制,分两种,一种 > 是控制每秒同步的记录数,另外一种是每秒同步的字节数,可以根 > 据具体硬件情况设置这个byte速度或者record速度,一般设置byte > 速度,比如:我们可以把单个Channel的速度上限配置为5MB。 > 优化:提升DataX Job内Channel并发数 并发数=taskGroup的数 > 量每一个TaskGroup并发执行的Task数 (默认单个任务组的并发数 > 量为5)。 ##### 一、提升job内Channel并发有几种配置方式 ##### * 1.配置全局Byte限速以及单Channel Byte限速,Channel个数 = 全局Byte限速 / 单Channel Byte限速. * 2.配置全局Record限速以及单Channel Record限速,Channel个数 = 全局Record限速 / 单Channel Record限速. * 3.只配置Channel个数. * 4.配置Channel个数和Channel的速度. ##### 二、配置简述 ##### 全局配置: job.setting.speed.channel : 全局配置channel并发数 job.setting.speed.record : 全局配置channel的record限速 job.setting.speed.byte:全局配置channel的byte限速 单channel配置: core.transport.channel.speed.record:单channel的record限速 core.transport.channel.speed.byte:单channel的byte限速 ##### 三、案例 ##### ###### 3.1. 第一种 ###### 方式举例如下: core.transport.channel.speed.byte=1048576, job.setting.speed.byte=5242880,所以Channel个数 = 全局Byte 限速 / 单Channel Byte限速=5242880/1048576=5个, { "core":{ "transport":{ "channel":{ "speed":{ "byte":1048576 } } } }, "job":{ "setting":{ "speed":{ "byte":5242880 } }, ... } } ###### 3.2. 第二种 ###### 方式举例如下: core.transport.channel.speed.record=100, job.setting.speed.record=500,所以配置全局Record限速以及单 Channel Record限速,Channel个数 = 全局Record限速 / 单 Channel Record限速=500/100=5 { "core":{ "transport":{ "channel":{ "speed":{ "record":100 } } } }, "job":{ "setting":{ "speed":{ "record":500 } }, ... } } ###### 3.3. 第三种 ###### 配置举例如下: 直接配置job.setting.speed.channel=5,所 以job内Channel并发=5个 { "job":{ "setting":{ "speed":{ "channel":5 } }, ... } } ###### 3.4. 第四种 ###### 配置举例如下: 直接配置job.setting.speed.channel=5, core.transport.channel.speed.byte=5242880 { "core":{ "transport":{ "channel":{ "speed":{ "byte":1048576 } } } }, "job":{ "setting":{ "speed":{ "channel":3 } }, ... } } ###### 3.5. 案例实战 ###### \#oracle2mysql.json \#全局配置channel数量,设置单channel速率 { "core": { "transport": { "channel": { "speed": { "byte": 1048576 } } } }, "job": { "content": [ { "reader": { "name": "oraclereader", "parameter": { "column": [ "IDNO", "COL1", "COL2", "COL3", "DT", "COL5", "COL6", "COL7", "COL8", "COL9", "COL10" ], "connection": [ { "jdbcUrl": [ "jdbc:oracle:thin:@//192.xxx.xxx.xxx:1521:orcl" ], "table": [ "TEST.OTBS1" ] } ], "username": "username", "password": "password" } }, "writer": { "name": "mysqlwriter", "parameter": { "column": [ "IDNO", "COL1", "COL2", "COL3", "DT", "COL5", "COL6", "COL7", "COL8", "COL9", "COL10" ], "connection": [ { "jdbcUrl": "jdbc:mysql://127.0.0.1:3306/datax?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&nullCatalogMeansCurrent=true", "table": [ "otbs1" ] } ], "username": "root", "password": "123456" } } } ] } } ###### 3.6. 总结 ###### 上面限速或者提升速度的前提(channel并发)是必须配置数据分片splitPk,不然上面设置不生效。 一般会按照主键或者业务标识字段来进行数据分片
还没有评论,来说两句吧...