Files
aiData/DataX/Doc/说明.md
HuangHai 06fe23ff6e 'commit'
2026-02-05 13:32:12 +08:00

3.2 KiB

DataX 同步部署与使用说明

本方案基于 DataX 实现从 MySQL 源端数据库到 DorisMySQL 目标端的同步。支持全量和增量两种同步模式,并提供了一套模板化的配置与脚本。


一、 目录结构

/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. 赋予权限

    cd /usr/local/datax
    chmod +x *.sh
    

三、 运行同步任务

所有脚本均支持通过第一个参数指定目标系统:dorismysql

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 分钟一次的增量同步任务。

  1. 启动定时任务

    # 为 Doris 同步启动定时任务
    ./start_cron.sh doris
    
    # 为 MySQL 同步启动定时任务
    ./start_cron.sh mysql
    
  2. 停止定时任务

    ./stop_cron.sh doris  # 或 mysql
    
  3. 查看日志 日志保存在 logs/ 目录下,文件名为 datax_inc_{target}_cron.log

    tail -f logs/datax_inc_doris_cron.log
    

五、 辅助工具:表结构生成

在同步数据前,如果目标端尚未建表,可以使用 scheme/ 下的工具生成建表语句。

  1. 生成 DDL 脚本会自动扫描 json/ 目录下的表名,连接 MySQL 源库获取结构,并生成对应的 Doris 和 MySQL 建表语句。

    cd /usr/local/datax/scheme
    python3 generate_schema.py
    
  2. 执行 SQL 生成的 SQL 文件位于 scheme/output/ 目录下,请分别在 Doris 和 MySQL 目标库中执行。