ETL系列:一、DataX的安装与使用

一、引言

DataX 是阿里云的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具。DataX 实现了包括 MySQL、Oracle、HDFS、Hive、HBase 等各种异构数据源之间高效的数据同步功能。

DataX本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向目标端写入数据的Writer插件,理论上DataX框架可以支持任意数据源类型的数据同步工作。同时DataX插件体系作为一套生态系统, 每接入一套新数据源该新加入的数据源即可实现和现有的数据源互通。

二、安装

1、github地址

GitHub - alibaba/DataX: DataX是阿里云DataWorks数据集成的开源版本。

2、安装包下载地址

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

3、安装

#解压
tar -xvf datax.tar.gz

4、安装效果

任务示例脚本存放目录:/job

ETL系列:一、DataX的安装与使用_第1张图片

三、编写脚本测试验证

1、编写一个简单脚本test.json(oracle同步至oracle)

脚本中各个参数的用法请参考官方文档使用说明。如:本脚本reader中的"splitPk": "cust_no",指定按照cust_no进行分组子任务并行执行,用来提升同步效率。

{
    "job": {
        "setting": {
            "speed": {
                 "channel": 5
            },
        },
        "content": [
            {
                "reader": {
                    "name": "oraclereader",
                    "parameter": {
                        "username": "***",
                        "password": "***",
						"column": [
							"cust_no",
							"fund_acco_no",
							"agency_no",
							"fund_code",
							"share_type",
							"last_shares",
							"d_cdate",
							"ta_no",
							"cust_type",
							"trade_acco_no"
						],
                        "connection": [
                            {
                                "table": [
                                    "t_c_bal_fund_bak"
                                ],
                                "jdbcUrl": [
                                   "jdbc:oracle:thin:@172.*.*.*:1521/*"
                                ]
                            }
                        ],
						"where":"1=1",
						"splitPk": "cust_no",
                        "sliceRecordCount": 500000
                    }
                },
                "writer": {
                    "name": "oraclewriter",
                    "parameter": {
                        "username": "***",
                        "password": "***",
						"column": [
							"cust_no",
							"fund_acco_no",
							"agency_no",
							"fund_code",
							"share_type",
							"last_shares",
							"fdate",
							"ta_no",
							"cust_type",
							"trade_acco_no"
						],
                        "connection": [
                            {
                                "table": [
                                    "t_c_bal_fund"
                                ],
								"jdbcUrl": "jdbc:oracle:thin:@172.*.*.*:1521/*"
                            }
                        ]
                    }
                }
            }
        ]
    }
}

2、上传至安装目录

/data/datax/datax/job

3、执行任务

python /data/datax/datax/bin/datax.py /data/datax/datax/job/test.json

4、执行效果

ETL系列:一、DataX的安装与使用_第2张图片

你可能感兴趣的:(etl,hadoop,大数据,DataX)