Windows 10 本地部署 DataX 与 DataX-Web
搭建 DataX
前置条件
- JDK (1.8 以上,推荐 1.8)
- Python (2 或 3 都可以)
- Apache Maven 3.x (用于编译 DataX)
下载 DataX 编译好的包
下载地址:https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202309/datax.tar.gz
进入目录,使用 PowerShell 打开终端。
执行解压命令:
tar -xzf datax.tar.gz
配置 Windows 命令行支持 UTF-8
不配置此步骤,执行同步命令可能出现中文乱码。
-
临时改当前窗口编码 打开 cmd,先执行:
chcp 65001再运行:
python datax.py <路径>/1.json日志将以 UTF-8 输出,中文正常显示。
-
永久生效(可选) 在 Windows 10/11 上设置系统全局控制台编码为 UTF-8:
- 设置 → 时间和语言 → 区域 → 相关设置 → 管理语言设置 → 更改系统区域设置
- 勾选 "Beta: 使用 Unicode UTF-8 提供全球语言支持"
- 重启电脑
准备测试数据
新建两个库,相同的表名 user。
CREATE TABLE IF NOT EXISTS `user` (
`id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
`username` VARCHAR(50) NOT NULL,
`password` VARCHAR(100) NOT NULL,
`email` VARCHAR(100) NOT NULL,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
在 test1 库新增测试数据。可以使用存储过程生成:
DELIMITER $$
CREATE PROCEDURE GenerateUserTestData(IN num_records INT)
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE v_username VARCHAR(50);
DECLARE v_password VARCHAR(100);
DECLARE v_email VARCHAR(100);
WHILE i <= num_records DO
SET v_username = CONCAT('User_', FLOOR(10000 + RAND() * 90000));
SET v_password = CONCAT('Pass_', FLOOR(100000 + RAND() * 900000));
SET v_email = CONCAT('user', FLOOR(10000 + RAND() * 90000), '@example.com');
INSERT INTO `user`(username, password, email) VALUES(v_username, v_password, v_email);
IF i % 1000 = 0 THEN COMMIT; END IF;
SET i = i + 1;
END WHILE;
END$$
DELIMITER ;
新建 DataX 的同步脚本
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "root",
"password": "root",
"connection": [{"jdbcUrl": ["jdbc:mysql://localhost:3306/test1"], "table": ["user"]}],
"column": ["*"],
"splitPk": ""
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"username": "root",
"password": "root",
"connection": [{"jdbcUrl": "jdbc:mysql://localhost:3306/test2", "table": ["user"]}],
"column": ["*"],
"writeMode": "insert"
}
}
}
],
"setting": {"speed": {"channel": 1}}
}
}
执行同步命令
python datax.py <路径>/job/test-user.json
执行完成后查看日志,确认任务成功完成。
搭建 DataX-Web
下载源码
git clone https://github.com/WeiYe-Jing/datax-web.git
创建数据库
执行 bin/db 下面的 datax_web.sql 文件(注意老版本更新语句有指定库名)。
修改项目配置
1. 修改 datax_admin 下 resources/application.yml 文件
# 数据源 datasource:
username: root
password: root
url: jdbc:mysql://localhost:3306/datax_web?serverTimezone=Asia/Shanghai&useLegacyDatetimeCode=false&useSSL=false&nullNamePatternMatchesAll=true&useUnicode=true&characterEncoding=UTF-8
driver-class-name: com.mysql.jdbc.Driver
修改数据源配置,目前仅支持 MySQL。
# 配置 mybatis-plus 打印 sql 日志
logging:
level: com.wugui.datax.admin.mapper: error
path: ./data/applogs/admin
修改日志路径 path。
# datax-web email
mail:
host: smtp.qq.com
port: 25
username: [email protected]
password: xxx
properties:
mail:
smtp:
auth: true
starttls:
enable: true
required: true
socketFactory:
class: javax.net.ssl.SSLSocketFactory
修改邮件发送配置(不需要可以不修改)。
2. 修改 datax_executor 下 resources/application.yml 文件
# log config
logging:
config: classpath:logback.xml
path: ./data/applogs/executor/jobhandler
修改日志路径 path。
datax:
job:
admin:
### datax-web admin address
addresses: http://127.0.0.1:8080
executor:
appname: datax-executor
ip:
port: 9999
### job log path
logpath: ./data/applogs/executor/jobhandler
### job log retention days
logretentiondays: 30
jsonpath: D:\tmp\executor\json\
pypath: D:\datax-new\datax\bin\datax.py
修改 datax.job 配置:
admin.addresses: datax_admin 部署地址。executor.appname: 执行器 AppName。executor.ip: 默认为空表示自动获取 IP。executor.port: 执行器 Server 端口号,默认 9999。executor.logpath: 执行器运行日志文件存储磁盘路径。executor.logretentiondays: 执行器日志文件保存天数。executor.jsonpath: datax json 临时文件保存路径。pypath: DataX 启动脚本地址。
启动项目
本地 IDEA 开发环境
- 运行
datax_admin下DataXAdminApplication - 运行
datax_executor下DataXExecutorApplication
Admin 启动成功后日志会输出三个地址,包括接口文档和前端页面地址。
启动成功
启动成功后打开页面(默认管理员用户名:admin,密码:123456)。 http://localhost:8080/index.html#/dashboard
实战
项目管理 - 添加项目
在 Web 界面点击项目管理,添加新项目。
配置数据源
在 Web 界面配置 MySQL 数据源。
创建执行器
在 Web 界面创建执行器。
构建任务生成同步 JSON
在 Web 界面构建任务,自动生成 DataX 脚本,复制 JSON 内容。
创建任务
创建任务,按照要求填写配置,并将生成的 JSON 粘贴到对应字段,将 byte 的值改为 0。
执行成功
提交任务后查看执行结果,确认同步成功。

