103 lines
3.3 KiB
Markdown
103 lines
3.3 KiB
Markdown
# DataX 作业配置例子
|
||
|
||
本目录包含了使用 DataX 从 RESTful API 读取数据并写入 MySQL 数据库的作业配置示例。
|
||
|
||
## 例子说明
|
||
|
||
### 1. 产品数据同步 (`restful_to_mysql_products.json`)
|
||
|
||
从 Woocommerce API 获取产品数据,写入本地 MySQL 数据库的 `products` 表。
|
||
|
||
**主要配置项:**
|
||
- API URL: `https://your-woocommerce-site.com/wp-json/wc/v3/products`
|
||
- 认证方式: Basic Auth
|
||
- 分页方式: 基于页码的分页
|
||
- 写入表: `products`
|
||
- 写入模式: `replace` (替换现有数据)
|
||
|
||
### 2. 订单数据同步 (`restful_to_mysql_orders.json`)
|
||
|
||
从 Woocommerce API 获取订单数据,写入本地 MySQL 数据库的 `orders` 表。
|
||
|
||
**主要配置项:**
|
||
- API URL: `https://your-woocommerce-site.com/wp-json/wc/v3/orders`
|
||
- 认证方式: Basic Auth
|
||
- 分页方式: 基于页码的分页
|
||
- 写入表: `orders`
|
||
- 写入模式: `replace` (替换现有数据)
|
||
|
||
## 使用方法
|
||
|
||
### 1. 配置修改
|
||
|
||
在运行作业前,需要根据实际情况修改以下配置:
|
||
|
||
1. **API URL**: 将 `https://your-woocommerce-site.com` 替换为实际的 Woocommerce 站点 URL
|
||
2. **认证信息**: 更新 `Authorization` 头为实际的 Basic Auth 凭证
|
||
3. **数据库连接**: 根据实际情况调整数据库名称、表名等
|
||
|
||
### 2. 运行作业
|
||
|
||
在 DataX 容器中运行作业:
|
||
|
||
```bash
|
||
docker-compose exec datax python /datax/bin/datax.py /datax/job/restful_to_mysql_products.json
|
||
```
|
||
|
||
或
|
||
|
||
```bash
|
||
docker-compose exec datax python /datax/bin/datax.py /datax/job/restful_to_mysql_orders.json
|
||
```
|
||
|
||
### 3. 查看日志
|
||
|
||
作业日志会输出到容器的 `/datax/log` 目录,对应主机的 `./datax/log` 目录。
|
||
|
||
## 注意事项
|
||
|
||
1. **数据库表结构**: 请确保目标数据库中已创建相应的表结构,DataX 不会自动创建表
|
||
2. **API 权限**: 确保 Woocommerce API 已启用,并具有相应的读取权限
|
||
3. **分页配置**: 根据实际数据量调整 `pageSize` 和 `totalCount` 参数
|
||
4. **写入模式**: 支持 `insert` (插入)、`update` (更新)、`replace` (替换) 等模式
|
||
5. **数据类型**: 确保配置文件中的数据类型与数据库表结构匹配
|
||
|
||
## 表结构示例
|
||
|
||
### products 表
|
||
|
||
```sql
|
||
CREATE TABLE `products` (
|
||
`id` bigint(20) NOT NULL PRIMARY KEY,
|
||
`name` varchar(255) NOT NULL,
|
||
`sku` varchar(255) DEFAULT NULL,
|
||
`price` decimal(10,2) DEFAULT NULL,
|
||
`stock_quantity` int(11) DEFAULT NULL,
|
||
`created_at` datetime DEFAULT NULL
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||
```
|
||
|
||
### orders 表
|
||
|
||
```sql
|
||
CREATE TABLE `orders` (
|
||
`id` bigint(20) NOT NULL PRIMARY KEY,
|
||
`status` varchar(50) DEFAULT NULL,
|
||
`total` decimal(10,2) DEFAULT NULL,
|
||
`currency` varchar(10) DEFAULT NULL,
|
||
`created_at` datetime DEFAULT NULL,
|
||
`customer_id` bigint(20) DEFAULT NULL,
|
||
`billing_first_name` varchar(255) DEFAULT NULL,
|
||
`billing_last_name` varchar(255) DEFAULT NULL,
|
||
`billing_email` varchar(255) DEFAULT NULL
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||
```
|
||
|
||
## 扩展建议
|
||
|
||
1. **添加更多 API 端点**: 可以根据需要添加更多的 API 端点配置,如客户、分类等
|
||
2. **调整同步频率**: 结合 cron 任务实现定期同步
|
||
3. **增加数据转换**: 使用 DataX 的转换器功能对数据进行预处理
|
||
4. **添加错误处理**: 配置重试机制和错误告警
|
||
5. **监控作业状态**: 结合 Prometheus 和 Grafana 监控作业运行状态
|