在准备环境前提交次全部更改。
This commit is contained in:
@@ -4,30 +4,30 @@ inclusion: always
|
||||
|
||||
# 项目结构(Lite)
|
||||
|
||||
目标:在不注入大段目录树的前提下,让 Agent 快速理解“模块边界 + 高风险区”。
|
||||
> 详细目录树、架构模式、文件归属规则展开说明见 `structure.md`(读到 pyproject.toml 或 agent 定义时自动加载,也可 `#structure-full` 手动加载)。
|
||||
|
||||
## 关键模块边界(高风险路径 = 变更默认需要审计)
|
||||
- `cli/`:命令行入口与参数/运行模式(影响一键增量、调度参数等)
|
||||
- `config/`:默认值、环境变量解析、AppConfig、调度任务配置(影响运行时假设)
|
||||
- `api/`:外部接口客户端与端点路由(影响抓取/契约/回放)
|
||||
- `database/`:连接、DDL/schema、seed、migrations(影响数据结构与回滚)
|
||||
- `tasks/`:ETL 任务(ODS/DWD/DWS/指数/校验),业务规则主要落在这里
|
||||
- `loaders/`:upsert 与维度/事实装载(影响落库与冲突处理)
|
||||
- `scd/`:SCD2 处理(影响维度历史与生效区间)
|
||||
- `orchestration/`:调度/注册/游标/运行记录(影响增量水位与可重复性)
|
||||
- `models/`:解析与验证器(影响字段校验与转换)
|
||||
- `utils/`:日志、JSON 存储、窗口切分等通用工具(影响全局行为)
|
||||
- 根目录散文件:`.env*`、`pyproject.toml`、`requirements*`、`Makefile`、`README.md` 等(影响运行/依赖/发布)
|
||||
## 顶层目录
|
||||
- `apps/etl/connectors/feiqiu/` — 飞球 Connector
|
||||
- `apps/backend/` — FastAPI 后端
|
||||
- `apps/miniprogram/` — 微信小程序
|
||||
- `apps/admin-web/` — 管理后台(React + Vite + Ant Design)
|
||||
- `packages/shared/` — 跨项目共享包
|
||||
- `db/` — DDL / 迁移 / 种子(`etl_feiqiu/`、`zqyy_app/`、`fdw/`)
|
||||
- `docs/` — 项目级文档 + `audit/`(统一审计落地点)
|
||||
- `tests/` — Monorepo 级属性测试
|
||||
- `scripts/` — 项目级运维脚本
|
||||
|
||||
## 架构要点(摘要)
|
||||
- 任务模式:每个 ETL 任务继承 `BaseTask`(Extract → Transform → Load),并在 `orchestration/task_registry.py` 注册
|
||||
- 加载器模式:每张目标表一个 Loader,维度/事实分目录;核心是 `upsert()` 与冲突处理策略
|
||||
- 配置分层:DEFAULTS → `.env` → CLI 覆盖;通过 `AppConfig.get("dotted.path")` 访问
|
||||
- 管线流程:`FULL` / `FETCH_ONLY` / `INGEST_ONLY` 由 CLI 或环境变量控制
|
||||
- 调度器:负责游标(水位)与运行记录(增量正确性关键)
|
||||
## 高风险路径(变更需审计)
|
||||
- `apps/etl/connectors/feiqiu/` 下:`api/`、`cli/`、`config/`、`database/`、`loaders/`、`models/`、`orchestration/`、`scd/`、`tasks/`、`utils/`、`quality/`
|
||||
- `apps/backend/app/`、`apps/admin-web/src/`、`apps/miniprogram/miniapp/`、`apps/miniprogram/miniprogram/`
|
||||
- `packages/shared/`、`db/`、根目录散文件(`.env*`、`pyproject.toml`)
|
||||
|
||||
## 编码/命名约定(摘要)
|
||||
- 文件编码:UTF-8
|
||||
- SQL:纯 SQL(非 ORM);迁移脚本放 `database/migrations/`,推荐“日期前缀”命名
|
||||
- 任务:大写蛇形命名(例如 `DWD_LOAD_FROM_ODS`)
|
||||
- 日志:统一经由 `utils/logging_utils.py`
|
||||
## 文件归属规则(强制)
|
||||
- 模块专属的 docs/tests/scripts → 放模块内部
|
||||
- 项目级/跨模块的 docs/tests/scripts → 放根目录
|
||||
- 审计产物统一写 `docs/audit/`,禁止写入子模块内部
|
||||
- 一览表刷新:`python scripts/audit/gen_audit_dashboard.py`
|
||||
|
||||
## 编码/命名约定
|
||||
- UTF-8、纯 SQL(非 ORM)、迁移脚本 `db/etl_feiqiu/migrations/`(日期前缀)
|
||||
- 任务大写蛇形(`DWD_LOAD_FROM_ODS`)、日志经 `utils/logging_utils.py`
|
||||
|
||||
Reference in New Issue
Block a user