1. finance_area_daily.py: - _AREA_AGG_FIELDS 增加 member_order_count · _COUNT_FIELDS 常量统一 int 转换 - extract SQL 增加 sh.member_id 字段 - transform 按 CLAUDE.md DWS 规范 member_id > 0 判定是否会员订单 - _build_area_row / _build_sum_row 支持新计数字段 2. pre-existing bug 修复(顺手): area_code 为 None(table_id 未映射)的订单之前既不计入具体区域也不计入 all, 导致全店 order_count/member_order_count > 各区域之和。 修复:新增 _unknown 桶收纳未匹配订单 · 构建 all 行时追加合入 source_rows。 3. backfill_finance_area_daily.py extract SQL 加 sh.member_id 支持回填历史 member_order_count 数据。 实测:纯函数单测 + 测试库 ETL 7 天回放 · 04-18/04-20 等日期全店 vs 区域和 从差 1 单修复为 0 差异 · 纯函数新增 2 条未匹配订单用例断言全通过。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
apps/etl/
作用说明
ETL Connector(数据源连接器)集合。每个上游数据源对应 pipelines/ 下的一个子目录(即一个 Connector),当前仅有飞球平台(feiqiu)。Connector 负责从 SaaS API 抽取数据,经 ODS→DWD→Core→DWS 逐层处理后落库。
内部结构
pipelines/feiqiu/— 飞球 Connector(api、cli、config、loaders、models、orchestration、scd、tasks、utils、quality、tests)
Roadmap
- 将通用抽取/加载逻辑抽离为
etl_sdk共享包,供多 Connector 复用 - 将各平台 API 客户端拆分为独立
connectors包,实现可插拔数据源接入 - 新增 Connector 时在
pipelines/下创建同构子目录