文章目录

  • 一、提升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,不然上面设置不生效。
一般会按照主键或者业务标识字段来进行数据分片

ETL异构数据源Datax_限速设置_06相关推荐

  1. ETL异构数据源Datax_工具部署_02

    接上一篇:(企业内部) ETL异构数据源Datax_部署前置环境_01 https://gblfy.blog.csdn.net/article/details/118081253 文章目录 一.直接下 ...

  2. ETL异构数据源Datax_部署前置环境_01

    文章目录 一.概述 1. 是什么? 2. 开源地址 二.简介 2.1. 设计架构 2.2. 框架结构 三.检查环境 3.1. 检验是否安装JDK(1.8以上,推荐1.8) 3.2. 检验是否安装pyt ...

  3. ETL异构数据源Datax_自增ID增量同步_12

    文章目录 增量同步方法 1.先同步存量数据 2.再同步增量数据(根据自增ID.日期条件) 前提条件: 1.只针对数据增长,如果老数据被update/delete则无法使用增量同步方式. 基于主键自增I ...

  4. ETL异构数据源Datax_图形化数据同步_11

    数据同步全量增量知识SQL和执行频次不一样,其他的都一样 文章目录 一.Oracle同步Mysql(全量) 1. 添加项目 2. 添加数据源 3. 添加任务 4. 构建json 5. 任务执行 6. ...

  5. ETL异构数据源Datax_日期增量同步_13

    文章目录 一.全量同步 1. 增量同步SQL 2. 构建reader 3. 构建writer 4. 字段对应关系映射 5. 构建json 6. 选择同步模板 7. 查询最早时间 8. 修改任务信息 9 ...

  6. ETL异构数据源Datax_使用querySql_08

    使用说明 当用户配置了这一项之后,DataX系统就会忽略table,column 这些配置型,直接使用这个配置项的内容对数据进行筛选,例 如需要进行多表join后同步数据,使用select a,b f ...

  7. ETL异构数据源Datax_使用数据分片提升同步速度_05

    文章目录 1. 构建json,添加数据分片 2. Mysql数据清除 3. 数据分片前后对比 1. 构建json,添加数据分片 {"job": {"setting&quo ...

  8. ETL异构数据源Datax_数据准备_03

    文章目录 一.Oracle数据库准备 1. 初始化表结构 2. 生成测试数据 二.使用docker创建mysql 2.1. 构建mysql容器 2.1. 创建datax数据库 2.3. 初始化表结构 ...

  9. ETL异构数据源Datax_Oracle同步MySQL(全量)_04

    文章目录 一.Oracle同步Mysql 1. 构建json 2. 执行数据同步 3. 查看同步数据 4. 同步数据正确性和准确性 5. 同步日志分析 一.Oracle同步Mysql 1. 构建jso ...

最新文章

  1. How to Use tomcat on Linux
  2. SpringBoot-400-Bad-Request(Request-header-is-too-large)
  3. 打印正整数n之内的斐波那契数列
  4. 计算机缺少log怎么解决方法,win10 计算机丢失logmanager怎么办_win10丢失log.dll文件的解决方法-win7之家...
  5. java多线程系列(四)---ReentrantLock的使用
  6. ABAP动态取得数据的方法
  7. OpenCV-图像的基本处理-02
  8. 今天看到导师给我的批注哭了...
  9. VMware NSX for vSphere 6.3.0 发行说明
  10. 会vue再上手uni-app难度大吗?
  11. java subset_Java中的TreeSet的subSet()方法 Java.util.TreeSet.subSet() - Break易站
  12. 例题6-4 Broken Keyboard UVa11988
  13. 如何从 Windows 虚拟机分离数据磁盘
  14. 蓝海创意云丨CGI技术成功打破次元壁,宝可梦家族大集结!
  15. 图像取证:由色差发现数字篡改痕迹
  16. visio2016 两线相交去圆弧
  17. 1067 试密码 (20 分)之测试点4分析
  18. Python(10)--文件读写/模块制作与发布
  19. TB,GB,MB,KB,Byte字节,bit位 如何换算?
  20. 前端 js 微信 支付二维码

热门文章

  1. 吸烟致癌的迷思是如何破除的?
  2. pytorch 使用DataParallel 单机多卡和单卡保存和加载模型时遇到的问题
  3. 【保存】maven的pom.xml标签的xsi:schemaLocation处报错
  4. 如何构建一个流量无损的在线应用架构 | 专题尾篇
  5. 阿里云助力江苏省财政厅力推统一公共支付平台
  6. 10亿+文件数压测,阿里云JindoFS轻松应对
  7. 大数据时代,如何用数据驱动精准营销
  8. 深度解读OpenYurt:从边缘自治看YurtHub的扩展能力
  9. 唐云峰:想当科学家的怪极客
  10. 【远程沟通】“云答辩”“云招聘”双管齐下,解救“最难毕业生”