Files
Neo-ZQYY/.kiro/steering/structure-lite.md

2.0 KiB
Raw Blame History

inclusion
inclusion
always

项目结构Lite

目标:在不注入大段目录树的前提下,让 Agent 快速理解“模块边界 + 高风险区”。

关键模块边界(高风险路径 = 变更默认需要审计)

  • cli/:命令行入口与参数/运行模式(影响一键增量、调度参数等)
  • config/默认值、环境变量解析、AppConfig、调度任务配置影响运行时假设
  • api/:外部接口客户端与端点路由(影响抓取/契约/回放)
  • database/连接、DDL/schema、seed、migrations影响数据结构与回滚
  • tasks/ETL 任务ODS/DWD/DWS/指数/校验),业务规则主要落在这里
  • loaders/upsert 与维度/事实装载(影响落库与冲突处理)
  • scd/SCD2 处理(影响维度历史与生效区间)
  • orchestration/:调度/注册/游标/运行记录(影响增量水位与可重复性)
  • models/:解析与验证器(影响字段校验与转换)
  • utils/日志、JSON 存储、窗口切分等通用工具(影响全局行为)
  • 根目录散文件:.env*pyproject.tomlrequirements*MakefileREADME.md 等(影响运行/依赖/发布)

架构要点(摘要)

  • 任务模式:每个 ETL 任务继承 BaseTaskExtract → Transform → Load并在 orchestration/task_registry.py 注册
  • 加载器模式:每张目标表一个 Loader维度/事实分目录;核心是 upsert() 与冲突处理策略
  • 配置分层DEFAULTS → .env → CLI 覆盖;通过 AppConfig.get("dotted.path") 访问
  • 管线流程:FULL / FETCH_ONLY / INGEST_ONLY 由 CLI 或环境变量控制
  • 调度器:负责游标(水位)与运行记录(增量正确性关键)

编码/命名约定(摘要)

  • 文件编码UTF-8
  • SQL纯 SQL非 ORM迁移脚本放 database/migrations/,推荐“日期前缀”命名
  • 任务:大写蛇形命名(例如 DWD_LOAD_FROM_ODS
  • 日志:统一经由 utils/logging_utils.py