# etl_task 任务注册表

> 生成时间：2026-02-13

## 表信息

| 属性 | 值 |
|------|-----|
| Schema | meta |
| 表名 | etl_task |
| 主键 | task_id |
| 唯一约束 | (task_code, store_id) |
| 记录数 | 49 |
| 说明 | 调度依据的任务清单，与代码中 task_registry 的任务码对应；按门店粒度管理任务参数 |

## 字段说明

| 序号 | 字段名 | 类型 | 可空 | 默认值 | 说明 |
|------|--------|------|------|--------|------|
| 1 | task_id | BIGINT | NO | BIGSERIAL | 自增主键 |
| 2 | task_code | TEXT | NO | | 任务编码，需与代码中的任务码一致（如 `FETCH_ORDERS`、`DWD_LOAD_FROM_ODS`） |
| 3 | store_id | BIGINT | NO | | 门店/租户粒度，区分多门店执行 |
| 4 | enabled | BOOLEAN | YES | true | 是否启用此任务 |
| 5 | cursor_field | TEXT | YES | | 增量游标字段名（可选），用于标识增量抽取的时间/ID 字段 |
| 6 | window_minutes_default | INTEGER | YES | 30 | 默认时间窗口（分钟），控制每次增量抽取的时间跨度 |
| 7 | overlap_seconds | INTEGER | YES | 120 | 窗口重叠秒数，用于防止因时间精度导致的数据遗漏 |
| 8 | page_size | INTEGER | YES | 200 | 默认分页大小，控制 API 单次请求返回的记录数 |
| 9 | retry_max | INTEGER | YES | 3 | API 重试次数上限 |
| 10 | params | JSONB | YES | '{}'::jsonb | 任务级自定义参数 JSON，可存放端点特有配置 |
| 11 | created_at | TIMESTAMPTZ | YES | now() | 创建时间 |
| 12 | updated_at | TIMESTAMPTZ | YES | now() | 更新时间 |

## 使用说明

```sql
-- 查询所有已启用的任务
SELECT task_code, store_id, window_minutes_default, overlap_seconds
FROM meta.etl_task
WHERE enabled = TRUE
ORDER BY task_code;

-- 查询指定门店的任务配置
SELECT *
FROM meta.etl_task
WHERE store_id = 2790685415443269 AND enabled = TRUE;

-- 修改某任务的时间窗口和重叠秒数
UPDATE meta.etl_task
SET window_minutes_default = 60, overlap_seconds = 300, updated_at = now()
WHERE task_code = 'FETCH_ORDERS' AND store_id = 2790685415443269;
```

## 可回溯性

| 项目 | 说明 |
|------|------|
| 可回溯 | ✅ 完全可回溯（created_at / updated_at 记录变更时间） |
| 数据来源 | 系统初始化时由 seed 脚本或 CLI 注册写入 |
| 关联表 | etl_cursor（通过 task_id 关联）、etl_run（通过 task_id 关联） |
