DataX3.0说明文档及Quick Start

1 DataX的说明文档(DataX-Introduction): https://github.com/alibaba/DataX/blob/master/introduction.md

说明文档描述的主要内容:
    1、DataX3.0的框架设计
    2、支持哪些异构数据源的数据同步
    3、每一种reader/writer的具体使用文档链接:配置样例,参数说明,功能描述等
    4、运行原理
    5、核心优势

2 DataX Github主页地址: https://github.com/alibaba/DataX

3 DataX Quick Start https://github.com/alibaba/DataX/blob/master/userGuid.md

4 不同Reder/Writer的使用说明文档

DataX3.0插件体系(摘自DataX官方文档,具体的使用文档点击相应插件的读和写文字,有超链接)

经过几年积累,DataX目前已经有了比较全面的插件体系,主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入。DataX目前支持数据如下:

类型 数据源 Reader(读) Writer(写) 文档
RDBMS 关系型数据库 MySQL
Oracle
OceanBase
SQLServer
PostgreSQL
DRDS
达梦
通用RDBMS(支持所有关系型数据库)
阿里云数仓数据存储 ODPS
ADS
OSS
OCS
NoSQL数据存储 OTS
Hbase0.94
Hbase1.1
MongoDB
Hive
无结构化数据存储 TxtFile
FTP
HDFS
Elasticsearch

5 dataX的优化

关键参数

job.setting.speed.channel : channel 并发数
➢ job.setting.speed.record : 2 全局配置 channel 的 record 限速
➢ job.setting.speed.byte:全局配置 channel 的 byte 限速
➢ core.transport.channel.speed.record:单个 channel 的 record 限速
➢ core.transport.channel.speed.byte:单个 channel 的 byte 限速

优化 1:提升每个 channel 的速度

在 DataX 内部对每个 Channel 会有严格的速度控制,分两种,一种是控制每秒同步的记
录数,另外一种是每秒同步的字节数,默认的速度限制是 1MB/s,可以根据具体硬件情况设
置这个 byte 速度或者 record 速度,一般设置 byte 速度,比如:我们可以把单个 Channel 的
速度上限配置为 5MB

9.3 优化 2:提升 DataX Job 内 Channel 并发数

并发数 = taskGroup 的数量 * 每个 TaskGroup 并发执行的 Task 数 (默认为 5)。
提升 job 内 Channel 并发有三种配置方式:
9.3.1 配置全局 Byte 限速以及单 Channel Byte 限速
Channel 个数 = 全局 Byte 限速 / 单 Channel Byte 限速
{
 "core": {
 "transport": {
 "channel": {
 "speed": {
 "byte": 1048576
 }
 }
 }
 },
 "job": {
 "setting": {
 "speed": {
 "byte" : 5242880
 }
 },
 ...
 } }

core.transport.channel.speed.byte=1048576,job.setting.speed.byte=5242880,所以 Channel

个数 = 全局 Byte 限速 / 单 Channel Byte 限速=5242880/1048576=5 个

9.3.2 配置全局 Record 限速以及单 Channel Record 限速

Channel 个数 = 全局 Record 限速 / 单 Channel Record 限速

{
 "core": {
 "transport": {
 "channel": {
 "speed": {
 "record": 100
 }
 }
 }
 },
 "job": {
 "setting": {
 "speed": { "record" : 500
 }
 },
 ...
 } }

core.transport.channel.speed.record=100 , job.setting.speed.record=500, 所 以 配 置 全 局

Record 限速以及单 Channel Record 限速,Channel 个数 = 全局 Record 限速 / 单 Channel

Record 限速=500/100=5

9.3.3 直接配置 Channel 个数

只有在上面两种未设置才生效,上面两个同时设置是取值小的作为最终的 channel 数。
{
 "job": {
 "setting": {
 "speed": {
 "channel" : 5
 }
 },
 ...
 } }

直接配置 job.setting.speed.channel=5,所以 job 内 Channel 并发=5 个

9.4 优化 3:提高 JVM 堆内存

当提升 DataX Job 内 Channel 并发数时,内存的占用会显著增加,因为 DataX 作为数据

交换通道,在内存中会缓存较多的数据。例如 Channel 中会有一个 Buffer,作为临时的数据

交换的缓冲区,而在部分 Reader 和 Writer 的中,也会存在一些 Buffer,为了防止 OOM 等错

误,调大 JVM 的堆内存。

建议将内存设置为 4G 或者 8G,这个也可以根据实际情况来调整。

调整 JVM xms xmx 参数的两种方式:一种是直接更改 datax.py 脚本;另一种是在启动

的时候,加上对应的参数,如下:

python datax/bin/datax.py –jvm=”-Xms8G -Xmx8G” XXX.json

  • 版权声明: 凡本站作品,未经本人授权不得转载、摘编或利用其它方式使用上述作品。已经受本人授权使用作品的,应在授权范围内使用,并注明出处。违反上述声明者,本人将追究其相关法律责任。
  • Copyrights © 2021-2022 Kaneki Ken
  • Visitors: | Views:

^_^ 感谢您的肯定和支持 ^_^

支付宝
微信