DATAX 异构数据源离线同步工具

DATAX 相关了解


简介

​DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各类异构数据源之间稳定高效的数据同步功能python


设计理念

​为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX做为中间传输载体负责链接各类数据源。当须要接入一个新的数据源的时候,只须要将此数据源对接到DataX,便能跟已有的数据源作到无缝数据同步。mysql

alt 图片


使用步骤

  • 下载datax的安装包linux

  • 解压gz包git

    • 运行解压命令,我这里解压到home目录
    tar -zxvf ./datax.tar.gz
    • linux解压之后目录有
    bin  conf  job  lib  log  log_perf  plugin  script  tmp
    • 参考我本身配置的job.json( 注意参考使用的时候,去除注释)
    {
    "job": {
        "setting": {
            "speed": {
            	"channel": 15,
    				"record":-1,
    				"byte":-1,
    				"batchSize":2048
            }
        },
        "content": [
            {
                "reader": {
                    "name": "oraclereader",
                    "parameter": {
                        "username": "xxxx",
                        "password": "xxxx",
    						"column": ["*"],
                        "where":"",
                        "connection": [
                            {
    
                                "jdbcUrl": ["jdbc:oracle:thin:@ip:1521:SID"],
    								"table": ["T_PLT_VEHICLE_LOCATION"]
                            }
                        ]
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "writeMode": "insert",
                        "username": "xxxx",
                        "password": "xxxx",
                        "column": ["*"],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://ip:3306/库名?useUnicode=true&characterEncoding=utf-8",
                                "table": [
                                    "t_plt_vehicle_location"
                                    ]
                                }
                            ]
                        }
                    }
                }
            ]
        }
    }
  • 编写本身的jobgithub

    • 进入解压的job 目录,编写一个本身的job.json 官网参考地址
    • 参考已经支持的数据源读写配置,创建本身的job
  • 进行运行sql

    • 执行
    python2 /home/datax/bin/datax.py  /home/datax/job/job1.json
  • 优化datax策略数据库

    • 参数优化
    "speed": {
            	"channel": 20,  ##线程数量
    				"record":-1, ##此处解除对读取行数的限制
    				"byte":-1, ##此处解除对字节的限制
    				"batchSize":2048 ##每次读取batch的大小
            }
    • 运行的jvm 优化
    --jvm="-Xms3G -Xmx3G"
    
    例子:nohup  python2 /home/datax/bin/datax.py --jvm="-Xms3G -Xmx3G"  /home/datax/job/job1.json &

运行成功之后,查看运行的日志,以及去写入的数据源进行查看,数据已经正常写入。json

测试结果1000万数据,耗时9分钟,线程数10,其余默认oracle

相关文章
相关标签/搜索