添加DataX容器服务配置,包括docker-compose.yml设置和.gitignore更新 新增产品/订单同步脚本、状态检查脚本及作业配置文件 添加DataX相关文档,包括定时执行指南和Woocommerce API配置说明 |
||
|---|---|---|
| .. | ||
| README.md | ||
| restful_to_mysql_orders.json | ||
| restful_to_mysql_products.json | ||
README.md
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. 配置修改
在运行作业前,需要根据实际情况修改以下配置:
- API URL: 将
https://your-woocommerce-site.com替换为实际的 Woocommerce 站点 URL - 认证信息: 更新
Authorization头为实际的 Basic Auth 凭证 - 数据库连接: 根据实际情况调整数据库名称、表名等
2. 运行作业
在 DataX 容器中运行作业:
docker-compose exec datax python /datax/bin/datax.py /datax/job/restful_to_mysql_products.json
或
docker-compose exec datax python /datax/bin/datax.py /datax/job/restful_to_mysql_orders.json
3. 查看日志
作业日志会输出到容器的 /datax/log 目录,对应主机的 ./datax/log 目录。
注意事项
- 数据库表结构: 请确保目标数据库中已创建相应的表结构,DataX 不会自动创建表
- API 权限: 确保 Woocommerce API 已启用,并具有相应的读取权限
- 分页配置: 根据实际数据量调整
pageSize和totalCount参数 - 写入模式: 支持
insert(插入)、update(更新)、replace(替换) 等模式 - 数据类型: 确保配置文件中的数据类型与数据库表结构匹配
表结构示例
products 表
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 表
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;
扩展建议
- 添加更多 API 端点: 可以根据需要添加更多的 API 端点配置,如客户、分类等
- 调整同步频率: 结合 cron 任务实现定期同步
- 增加数据转换: 使用 DataX 的转换器功能对数据进行预处理
- 添加错误处理: 配置重试机制和错误告警
- 监控作业状态: 结合 Prometheus 和 Grafana 监控作业运行状态