3.2 KiB
3.2 KiB
DataX 同步部署与使用说明
本方案基于 DataX 实现从 MySQL 源端数据库到 Doris 或 MySQL 目标端的同步。支持全量和增量两种同步模式,并提供了一套模板化的配置与脚本。
一、 目录结构
/usr/local/datax/
├── bin/ # DataX 二进制程序
├── json/ # 统一的配置模板目录 (包含 15 个表的 JSON 模板)
├── db_config.sh # 数据库连接配置文件 (所有配置在此修改)
├── logs/ # 自动创建的同步日志目录
├── run_jobs_full.sh # 全量同步脚本 (支持参数: doris | mysql)
├── run_jobs_inc.sh # 增量同步脚本 (支持参数: doris | mysql)
├── start_cron.sh # 开启增量定时同步 (支持参数: doris | mysql)
├── stop_cron.sh # 停止增量定时同步 (支持参数: doris | mysql)
├── scheme/ # 表结构生成工具目录
│ ├── generate_schema.py # 自动生成 DDL 脚本
│ └── output/ # 生成的 SQL 文件存放处
└── 说明.md # 本说明文档
二、 部署步骤
-
部署 DataX
- 下载并解压 DataX 到
/usr/local/datax。 - 确保系统已安装 Python (2.7 或 3.x)。
- 下载并解压 DataX 到
-
上传配置文件
- 将本地
DataX/目录下的json/,*.sh,scheme/等文件上传至服务器/usr/local/datax/。
- 将本地
-
赋予权限
cd /usr/local/datax chmod +x *.sh
三、 运行同步任务
所有脚本均支持通过第一个参数指定目标系统:doris 或 mysql。
1. 全量同步 (Full Sync)
全量同步会先执行 TRUNCATE TABLE 清空目标表,然后导入全部数据。
# 同步到 Doris
./run_jobs_full.sh doris
# 同步到 MySQL
./run_jobs_full.sh mysql
2. 增量同步 (Incremental Sync)
增量同步默认采集最近 1000 条数据(按 ID 倒序),利用目标端的 Unique Key (Doris) 或 Primary Key (MySQL) 机制实现自动覆盖更新。
# 同步到 Doris
./run_jobs_inc.sh doris
# 同步到 MySQL
./run_jobs_inc.sh mysql
四、 自动化调度 (Crontab)
使用提供的管理脚本一键配置每 5 分钟一次的增量同步任务。
-
启动定时任务
# 为 Doris 同步启动定时任务 ./start_cron.sh doris # 为 MySQL 同步启动定时任务 ./start_cron.sh mysql -
停止定时任务
./stop_cron.sh doris # 或 mysql -
查看日志 日志保存在
logs/目录下,文件名为datax_inc_{target}_cron.log。tail -f logs/datax_inc_doris_cron.log
五、 辅助工具:表结构生成
在同步数据前,如果目标端尚未建表,可以使用 scheme/ 下的工具生成建表语句。
-
生成 DDL 脚本会自动扫描
json/目录下的表名,连接 MySQL 源库获取结构,并生成对应的 Doris 和 MySQL 建表语句。cd /usr/local/datax/scheme python3 generate_schema.py -
执行 SQL 生成的 SQL 文件位于
scheme/output/目录下,请分别在 Doris 和 MySQL 目标库中执行。