API-vendor/container/datax/job/README.md

3.3 KiB
Raw Blame History

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 容器中运行作业:

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 目录。

注意事项

  1. 数据库表结构: 请确保目标数据库中已创建相应的表结构DataX 不会自动创建表
  2. API 权限: 确保 Woocommerce API 已启用,并具有相应的读取权限
  3. 分页配置: 根据实际数据量调整 pageSizetotalCount 参数
  4. 写入模式: 支持 insert (插入)、update (更新)、replace (替换) 等模式
  5. 数据类型: 确保配置文件中的数据类型与数据库表结构匹配

表结构示例

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;

扩展建议

  1. 添加更多 API 端点: 可以根据需要添加更多的 API 端点配置,如客户、分类等
  2. 调整同步频率: 结合 cron 任务实现定期同步
  3. 增加数据转换: 使用 DataX 的转换器功能对数据进行预处理
  4. 添加错误处理: 配置重试机制和错误告警
  5. 监控作业状态: 结合 Prometheus 和 Grafana 监控作业运行状态