Summary files and roadmap/STATE updated. Phase 5 complete: DATA-01 (30-day dedup window) + DATA-04 (company channel) DATA-02 + DATA-03 confirmed already complete.
1.4 KiB
1.4 KiB
Phase 5 Summary: 数据管道优化
Status: Complete ✅
Tests: 112 passed (6 new)
Commit: 3d202c3
Plan 01 — DATA-01: dedup 30天窗口(dedup.py)
修复前: 查全量历史数据去重,同一职位 ID 永久只入库一次
修复后:
-- 单字段(boss job_id 等)
SELECT job_id FROM boss_job
WHERE job_id IN {keys} AND created_at > now() - INTERVAL 30 DAY
-- 双字段(qcwy job_id + update_date_time)
SELECT job_id, update_date_time FROM qcwy_job
WHERE job_id IN {keys} AND created_at > now() - INTERVAL 30 DAY
新增测试(tests/ingest/test_dedup.py,6 个):
- 30 天内有记录 → 过滤(1 个验证 SQL 窗口)
- 无记录 → 允许入库
- 空输入 → 不查 ClickHouse
- build_insert_row 含 channel 字段
Plan 02 — DATA-04: company_job channel 区分
目的: 区分搜索职位(channel=mini)和公司关联职位(channel=company)
| 文件 | 变更 |
|---|---|
schemas/ingest.py |
ChannelType.COMPANY = "company" |
configs/boss.py |
新注册 channel=company, data_type=job |
configs/qcwy.py |
同上 |
configs/zhilian.py |
同上 |
company_jobs_sync.py |
"mini" → "company" |
DATA-02 + DATA-03 确认(无需改动)
- DATA-02:
job.py已有/data/batch-async端点,spiderJobs 直接调用即可 ✅ - DATA-03:
company_cleaner.py已完整实现 ClickHouse→爬详情→MySQL 全链路 ✅