Files
aiData/DataX/说明.md
HuangHai f7d55a64dc 'commit'
2026-01-20 13:44:45 +08:00

103 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# DataX 同步部署与使用说明
#### 一、下载与安装 DataX
1. **下载 DataX 包**
官方下载地址:https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202309/datax.tar.gz
2. **部署到服务器**
将压缩包上传并解压到 `/usr/local/` 目录:
```shell
cd /usr/local
tar zxvf datax.tar.gz
# 解压后应当存在 /usr/local/datax 目录
```
#### 二、配置部署
本方案包含**全量同步**和**增量同步**两套策略,请按以下步骤部署配置文件和脚本。
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`
**上传后的服务器目录结构应如下所示:**
```text
/usr/local/datax/
├── bin/
├── conf/
├── json_full/ <-- 新增:全量配置目录
├── json_inc/ <-- 新增:增量配置目录
├── run_jobs_full.sh <-- 新增:全量执行脚本
├── run_jobs_inc.sh <-- 新增:增量执行脚本
└── setup_cron.sh <-- 新增:定时任务安装脚本
```
2. **赋予执行权限**
```shell
cd /usr/local/datax
chmod +x *.sh
```
3. **修改数据库密码 (如有需要)**
脚本中已配置好默认的数据库连接信息。如需修改,请编辑 `run_jobs_full.sh` 和 `run_jobs_inc.sh` 中的 `PARAMS` 变量:
```bash
PARAMS="-Dsrc_user=... -Dsrc_pwd=... -Ddest_user=... -Ddest_pwd=..."
```
#### 三、运行策略说明
**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` 变量。