数据同步工具datax安装配置与示例

文章目录


一、部署步骤

1、jdk环境

查看jdk的版本,一般使用1.8.

2、python环境

datax是以python脚本形式的语言,需要python的运行环境。

以python3为例,mac安装。

步骤一:安装

方式一:官网下载安装包

访问Python官方网站(https://www.python.org/downloads/macos/)下载适用于Mac的Python安装包。根据你的操作系统版本选择合适的安装包,安装步骤与正常软件安装步骤一致。

方式二:brew命令安装

首先mac中要有Homebrew(包管理器),如果未安装可以通过命令行进行安装。

安装步骤:

  1. 打开终端,输入命令
shell 复制代码
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. 更新Homebrew的配方和包
shell 复制代码
brew update
  1. 查看python版本
shell 复制代码
brew search python@
  1. 安装python,可以指定版本,如果不指定版本,会安装最新版
shell 复制代码
brew install python3
  1. 安装时可能会提示git认证过期,若没有跳至第7步,需要重新认证,获取token地址:https://github.com/settings/tokens/new?scopes=gist,public_repo&description=Homebrew

  2. 在终端执行,第五步获取的token值

shell 复制代码
export HOMEBREW_GITHUB_API_TOKEN=

步骤二:配置环境变量

安装好python环境后,配置环境变量。

  • 配置编辑 vim ~/.bash_profile,加入alias python="/opt/homebrew/bin/python3",后面路径为安装的执行路径,可用which python3获取;
  • 刷新配置文件,source ~/.bash_profile,关闭终端重新打开

步骤三:验证

  • 配置完成后,验证是否安装成功
shell 复制代码
python --version

3、maven环境(可选)

如果下载源码进行编译的话,需要maven环境,直接下载datax工具包则不需要。

二、下载安装datax

方式1、2任选其一。

1、下载datax源码

  1. git地址:https://github.com/alibaba/DataX?tab=readme-ov-file

  2. 本地打开源码后可能有依赖引用不到,需要手动添加,更换pom中的路径。

    jar包下载地址:http://www.java2s.com/Code/Jar/j/Downloadjconn3jar.htm

  3. idea中添加jar包

  4. 通过maven打包

shell 复制代码
cd  代码路径
mvn -U clean package assembly:assembly -Dmaven.test.skip=true
  1. 打包执行后,在target目录下

2、下载datax安装文件

  1. 下载地址:https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/20220530/datax.tar.gz
  2. 下载后解压
shell 复制代码
tar -zxvf datax.tar.gz -C /Users/wangzhaokun/Downloads/google

3、验证

  1. 自测脚本
shell 复制代码
# python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json
 
# 例如:
python /Users/wangzhaokun/Downloads/google/datax/bin/datax.py /Users/wangzhaokun/Downloads/google/datax/job/job.json


  1. 异常处理

若执行脚本中出现缺少文件xxx/datax/plugin/reader/._drdsreader/plugin.json类似文件存在,则需要删除 plugin 目录下的所有的以 _ 开头的文件。

shell 复制代码
#进入/datax/plugin目录下
find ./* -type f -name ".*er" | xargs rm -rf

三、配置示例

场景:oracle数据库中,视图数据同步到表中。

1、生成配置模版

生成配置文件可选的reader\writer在plugin目录下

  1. 执行python datax.py -r oraclereader -w oraclewriter,生成模版文件
yml 复制代码
{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "oraclereader",
                    "parameter": {
                        "column": [],
                        "connection": [
                            {
                                "jdbcUrl": [],
                                "table": []
                            }
                        ],
                        "password": "",
                        "username": ""
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "column": [],
                        "connection": [
                            {
                                "jdbcUrl": "",
                                "table": []
                            }
                        ],
                        "password": "",
                        "preSql": [],
                        "session": [],
                        "username": "",
                        "writeMode": ""
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": ""
            }
        }
    }
} 

2、根据配置模版生成配置文件

文件放在job目录下,模版文件中可通过表对表,也可能过sql查询结果,然后写入结果表。

yml 复制代码
#test.json
{
	"content":[
		{
			"reader":{
				"name":"oraclereader",
				"parameter":{
					"connection":[
						{
							"jdbcUrl":[
								"jdbc:oracle:thin:@//ip:port/gfmisdev"
							],
							"querySql":[
								" SELECT * from  MV_LEDGER_AGENCY"
							]
						}
					],
					"password":"*",
					"username":"KF_PAY_0512"
				}
			},
			"writer":{
				"name":"oraclewriter",
				"parameter":{
					"column":[
						"*"
					],
					"connection":[
						{
							"jdbcUrl":"jdbc:oracle:thin:@//ip:port/gfmisdev",
							"table":[
								"FM_LEDGER_AGENCY_TEST"
							]
						}
					],
					"password":"*",
					"preSql":[
						
					],
					"username":"KF_PAY_0512"
				}
			}
		}
	],
	"setting":{
		"speed":{
			"channel":"1"
		}
	}
}

3、运行datax

在bin目录下执行,也可通过全路径执行。

shell 复制代码
python datax.py ../job/test.json

4、执行成功后查看结果表,数据正常进入

待完善补充!!!

相关推荐
天冬忘忧11 天前
DataX实战:从MongoDB到MySQL的数据迁移--修改源码并测试打包
大数据·mysql·mongodb·datax
天冬忘忧15 天前
MongoDB在Linux系统中的安装与配置指南
数据库·mongodb·datax
天冬忘忧15 天前
DataX--Web:图形化界面简化大数据任务管理
大数据·datax
人间春风意1 个月前
【ETL工具】DataX + DataXWeb 初使用过程记录
datax·dataxweb
atbigapp.com1 个月前
采集工具选型调研
datax·数据同步·seatunel
青石路1 个月前
异源数据同步 → DataX 为什么要支持 kafka?
datax·kakfa
凉茶冰2 个月前
DataX迁移数据到StarRocks超大表报too many version问题记录
starrocks·python·datax
RestCloud3 个月前
ETL数据集成丨主流ETL工具(ETLCloud、DataX、Kettle)数据传输性能大PK
etl·kettle·datax·数据集成·etlcloud·数据传输·同步性能
青石路3 个月前
异构数据源数据同步 → 从源码分析 DataX 敏感信息的加解密
datax·加解密
灰太狼!!3 个月前
数据集成面试题
数据采集·datax