'commit'
This commit is contained in:
120
DataX/说明.md
120
DataX/说明.md
@@ -1,120 +0,0 @@
|
||||
# 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)
|
||||
增量同步默认采集最近 10000 条数据(按 ID 倒序),利用目标端的 **Unique Key (Doris)** 或 **Primary Key (MySQL)** 机制实现自动覆盖更新。
|
||||
```bash
|
||||
# 同步到 Doris
|
||||
./run_jobs_inc.sh doris
|
||||
|
||||
# 同步到 MySQL
|
||||
./run_jobs_inc.sh mysql
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### 四、 自动化调度 (Crontab)
|
||||
|
||||
使用提供的管理脚本一键配置每 10 分钟一次的增量同步任务。
|
||||
|
||||
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**
|
||||
```bash
|
||||
cd scheme
|
||||
# 自动处理 json/ 目录下的所有表
|
||||
python generate_schema.py
|
||||
```
|
||||
|
||||
2. **获取 SQL**
|
||||
生成的 SQL 文件位于 `scheme/output/`,包含 MySQL 和 Doris 两个版本。
|
||||
- **Doris 建表特性**:采用 Unique Key 模型,单副本 (`replication_num=1`),单分桶,适合单机部署。
|
||||
|
||||
---
|
||||
|
||||
#### 六、 常见问题与注意事项
|
||||
|
||||
1. **数据库密码修改**:
|
||||
- 所有数据库连接信息(源端 MySQL、目标端 Doris、目标端 MySQL)均集中在 [db_config.sh](file:///d:/dsWork/aiData/DataX/db_config.sh) 中。**修改该文件即可同步应用到所有同步任务**,无需修改 `.sh` 脚本。
|
||||
2. **Doris 负载地址**:
|
||||
- Doris 同步依赖 `loadUrl` (FE 的 8030 端口) 和 JDBC (FE 的 9030 端口)。
|
||||
3. **网络连通性**:
|
||||
- 请确保 DataX 部署机能够访问源端 RDS 和目标端数据库。
|
||||
Reference in New Issue
Block a user