DataX 是阿里巴巴开源的一款异构数据源离线同步工具,支持多种数据源之间的高效数据同步。在 Ubuntu 系统上安装 DataX 主要包括以下几个步骤:
一、前提条件
安装 Java(JDK 1.8 或以上)
安装git
安装 Maven(用于编译,可选,如果直接使用官方打包好的版本则不需要)
二、安装 JDK(如未安装)
可以使用apt也可以从镜像站下载:https://mirrors.tuna.tsinghua.edu.cn/Adoptium/8/jdk/x64/linux/OpenJDK8U-jdk_x64_linux_hotspot_8u472b08.tar.gz
# 安装 OpenJDK 8(推荐)或更高版本
sudo apt update
sudo apt install openjdk-8-jdk -y
# 验证安装
java -version确保输出类似:
openjdk version "1.8.0_362"三、下载 DataX
官方 GitHub 地址:https://github.com/alibaba/DataX
你可以选择:
方法 1:直接下载官方编译好的 tar.gz 包
# 下载(以 v3.0 为例)
wget https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202309/datax.tar.gz
# 解压
tar -zxvf datax.tar.gz
# 进入目录
cd datax注意:该链接是官方提供的预编译包,适用于大多数 Linux 系统。
方法 2:从源码编译
# 安装 git 和 maven
sudo apt install git maven -y
# 克隆仓库
git clone https://github.com/alibaba/DataX.git
# 进入目录并编译(耗时较长)
cd DataX
mvn -U clean package assembly:assembly -Dmaven.test.skip=true编译成功后,会在 target/datax/datax/ 目录下生成可执行文件。
四、编写自己的同步任务
DataX 使用 JSON 配置文件定义数据同步任务。例如,从 MySQL 同步到 text文件:
1、配置文件:
cat > mysql_to_txt_finance_stock_indx_data_di.json << EOF
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "$mysql_user_finance",
"password": "$mysql_user_pwd",
"connection": [
{
"querySql": [
"select
id,
index_code,
index_name,
busi_date,
close_price,
price_change,
per_change,
volume,
amount,
data_source,
create_time,
update_time
from finance.stock_indx_data_di;"
],
"jdbcUrl": ["jdbc:mysql://$mysql_host:$mysql_port/finance?useUnicode=true&characterEncoding=utf8"]
}
]
}
},
"writer": {
"name": "txtfilewriter",
"parameter": {
"path": "/home/ubuntu/data/datax/finance_stock_indx_data_di",
"fileName": "mysql_export",
"writeMode": "truncate",
"dateFormat": "yyyy-MM-dd HH:mm:ss",
"fileFormat": "text",
"encoding": "UTF-8",
"nullFormat": "\\N",
"fieldDelimiter": ","
}
}
}
],
"setting": {
"speed": {
"channel": "1"
}
}
}
}
EOF保存为 mysql_to_txt_finance_stock_indx_data_di.json,然后运行脚本:
python $DATAX_HOME/bin/datax.py /home/ubuntu/apps/datax/script/mysql_to_txt_finance_stock_indx_data_di.json六、常见问题
1、内存不足:可在 bin/datax.py 中调整 JVM 参数,例如:
DEFAULT_JVM = "-Xms1g -Xmx1g -XX:+UseG1GC"七、参考文档
官方 GitHub:https://github.com/alibaba/DataX
https://gitee.com/dataxGroup/datax/blob/master/mysqlreader/doc/mysqlreader.md
插件列表和配置说明:https://github.com/alibaba/DataX/blob/master/introduction.md
评论