DataX的简单使用

Datax

ETL

ETL,是英文Extract-Transform-Load的缩写,用来描述将资料从来源端经过抽取(extract)、转置(transform)、加载(load)至目的端的过程。

DataX介绍

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

环境准备

下载地址

http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz

或者下载源码去打包

git clone git@github.com:alibaba/DataX.git

$ cd  {DataX_source_code_home}
$ mvn -U clean package assembly:assembly -Dmaven.test.skip=true

检测安装成功

解压到指定目录到根目录下运行自检脚本

  • 自检脚本bin/datax.py job/job.json
    在这里插入图片描述

出现这个就算安装成功

使用

  • python ./bin/datax.py -r streamreader -w streamwriter 查看如何使用,-r 表示怎么读区,-w 表示怎么输出,然后可以进入下方url查看如何详细文档,stram的抽风找不到了
    在这里插入图片描述

输入流->输出流

新建一个stream2stream.json然后写入如下,运行./bin/datax.py ./stream2stream.json运行

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "streamreader", 
                    "parameter": {
                        "column": [
                        {
                        	"type":"string",
                        	"value":"nihao"
                        },
                        {
                        	"type":"string",
                        	"value":"helloworld"
                        }
                        ], 
                       
                        "sliceRecordCount": "10"
                    }
                }, 
                "writer": {
                    "name": "streamwriter", 
                    "parameter": {
                        "encoding": "utf-8", 
                        "print": true
                    }
                }
            }
        ], 
        "setting": {
            "speed": {
                "channel": "2"
            }
        }
    }
}

结果如下

在这里插入图片描述

MySQL->MySQL数据库备份

新建一个mysql2mysql.json写入如下,这里只是做一个demo,其他数据库使用python ./bin/datax.py -r xxx -w xxx 查看,使用./bin/datax.py ./mysql2mysql.json运行,如果报错,查看lib下有没有mysql-connector-java相关jar包没有加入即可

{
    "job": {
        "setting": {
            "speed": {
                "channel": 1
            }
        },
        "content": [
            {
                 "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "root",
                        "password": "12345678",
                        "column": [
                            "id"
                        ],
                        "connection": [
                            {
                                "table": [
                                    "test1"
                                ],
                                "jdbcUrl": [
     "jdbc:mysql://localhost:3306/test"
                                ]
                            }
                        ]
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "writeMode": "insert",
                        "username": "root",
                        "password": "12345678",
                        "column": [
                            "id"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://localhost:3306/test",
                                "table": [
                                    "test"
                                ]
                            }
                        ]
                    }
                }
            }
        ]
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值