CLAUDE.md 2.1 KB

项目约定

目录结构

data_analysis/
├── lib/                    # 核心库
│   └── odps_module.py      # ODPS 客户端
├── tasks/                  # 分析任务
│   ├── 00_表的洞察/        # 表结构探索(按表名建子目录)
│   ├── archive/            # 归档的旧任务
│   ├── 头部/               # 头部相关分析
│   ├── 承接/               # 承接相关分析
│   └── 其他分类.../        # 按主题分类
│       └── 任务名/
│           ├── query.sql
│           └── output/
├── fetch_daily.py          # 按天增量获取数据(并发)
└── run_sql.py              # SQL 执行入口脚本(日期范围)

命名规范

  • 任务目录:中文表意,按主题分类存放
  • SQL 文件:统一用 query.sql
  • 输出目录:统一用 output/
  • 归档:旧任务移至 archive/

SQL 变量

run_sql.py(日期范围查询)

  • ${start} - dt 分区起始日期
  • ${end} - dt 分区结束日期
  • 默认值:最近 7 天(T-7 ~ T-1)
  • 输出:output/{start}_{end}.csv

fetch_daily.py(按天增量获取)

  • ${dt} - 单天日期
  • 支持并发,自动跳过已有数据
  • 输出:output/SQL文件名/{dt}.csv

运行任务

日期范围查询

python run_sql.py tasks/xxx/query.sql

按天增量获取

python fetch_daily.py tasks/xxx/query.sql                    # 最近7天
python fetch_daily.py tasks/xxx/query.sql --days 30          # 最近30天
python fetch_daily.py tasks/xxx/query.sql --start 20260101 --end 20260107
python fetch_daily.py tasks/xxx/query.sql --date 20260105    # 单天
python fetch_daily.py tasks/xxx/query.sql --force            # 强制重新获取
python fetch_daily.py tasks/xxx/query.sql --workers 10       # 设置并发数

新建任务

  1. 在对应分类目录下创建任务目录,如 tasks/头部/任务名/
  2. 编写 query.sql,日期变量根据脚本选择:
    • run_sql.py → ${start}${end}
    • fetch_daily.py → ${dt}
  3. 运行对应脚本获取数据