Files
aiData/DataX/说明.md

103 lines
3.6 KiB
Markdown
Raw Normal View History

2026-01-20 13:09:36 +08:00
# DataX 同步部署与使用说明
2026-01-20 11:23:44 +08:00
2026-01-20 13:09:36 +08:00
#### 一、下载与安装 DataX
2026-01-20 11:23:44 +08:00
2026-01-20 13:09:36 +08:00
1. **下载 DataX 包**
官方下载地址https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202309/datax.tar.gz
2026-01-20 11:23:44 +08:00
2026-01-20 13:09:36 +08:00
2. **部署到服务器**
将压缩包上传并解压到 `/usr/local/` 目录:
```shell
cd /usr/local
tar zxvf datax.tar.gz
# 解压后应当存在 /usr/local/datax 目录
```
2026-01-20 11:23:44 +08:00
2026-01-20 13:09:36 +08:00
#### 二、配置部署
2026-01-20 11:23:44 +08:00
2026-01-20 13:09:36 +08:00
本方案包含**全量同步**和**增量同步**两套策略,请按以下步骤部署配置文件和脚本。
2026-01-20 11:23:44 +08:00
2026-01-20 13:09:36 +08:00
1. **上传文件**
请将本地 `d:\dsWork\aiData\Doc\6、DataX配置\` 目录下的以下内容上传至服务器 `/usr/local/datax/` 根目录下:
* 文件夹 `json_full/` (存放全量JSON配置)
* 文件夹 `json_inc/` (存放增量JSON配置)
* 脚本 `run_jobs_full.sh`
* 脚本 `run_jobs_inc.sh`
* 脚本 `setup_cron.sh`
2026-01-20 11:23:44 +08:00
2026-01-20 13:09:36 +08:00
**上传后的服务器目录结构应如下所示:**
```text
/usr/local/datax/
├── bin/
├── conf/
├── json_full/ <-- 新增全量配置目录
├── json_inc/ <-- 新增增量配置目录
├── run_jobs_full.sh <-- 新增全量执行脚本
├── run_jobs_inc.sh <-- 新增增量执行脚本
└── setup_cron.sh <-- 新增定时任务安装脚本
```
2026-01-20 11:23:44 +08:00
2026-01-20 13:09:36 +08:00
2. **赋予执行权限**
```shell
cd /usr/local/datax
chmod +x *.sh
```
2026-01-20 11:23:44 +08:00
2026-01-20 13:09:36 +08:00
3. **修改数据库密码 (如有需要)**
脚本中已配置好默认的数据库连接信息。如需修改,请编辑 `run_jobs_full.sh``run_jobs_inc.sh` 中的 `PARAMS` 变量:
```bash
PARAMS="-Dsrc_user=... -Dsrc_pwd=... -Ddest_user=... -Ddest_pwd=..."
```
2026-01-20 11:23:44 +08:00
2026-01-20 13:09:36 +08:00
#### 三、运行策略说明
**1. 全量同步 (Full Sync)**
* **适用场景**:系统初始化,或数据出现严重偏差需要彻底重跑时。
* **同步逻辑**
1. 执行 `TRUNCATE` 清空 Doris 目标表。
2. 从 MySQL 读取全量数据写入 Doris。
* **手动执行命令**
```shell
cd /usr/local/datax
./run_jobs_full.sh
```
**2. 增量同步 (Incremental Sync)**
* **适用场景**:日常持续数据同步(高频)。
* **同步逻辑**
1. **不删除**任何历史数据(无空窗期)。
2. 读取 MySQL 中 ID 最大的 **10000条** 记录(覆盖新增和最近更新的数据)。
3. 推送到 Doris利用 Doris 的 **Unique Key** 主键模型自动完成“存在即更新,不存在即插入” (Upsert)。
* **手动执行命令**
```shell
cd /usr/local/datax
./run_jobs_inc.sh
```
#### 四、自动化定时任务配置
我们提供了一键配置脚本,用于在 Rocky Linux 9 / CentOS 等系统中设置自动调度。
1. **执行安装脚本**
```shell
cd /usr/local/datax
./setup_cron.sh
```
*该脚本会自动添加 Crontab 任务,配置为每 10 分钟执行一次增量同步。*
2. **验证与日志**
* **查看任务**`crontab -l`
* **查看日志**:自动同步的日志会保存在 `/usr/local/datax/logs/datax_inc_cron.log`
```shell
tail -f /usr/local/datax/logs/datax_inc_cron.log
```
#### 五、重要注意事项
1. **Doris 表模型要求**
目标 Doris 表必须使用 **Unique Key** 模型(建表时指定 `UNIQUE KEY(id)`),否则增量同步会导致大量重复数据。
2. **Python 环境**
DataX 依赖 Python 环境(推荐 Python 2.7 或 3.x。脚本默认调用 `/usr/bin/python`,如果您的 Python 路径不同,请修改脚本头部的 `DATAX_PY` 变量。