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