|
|
@@ -6,29 +6,60 @@
|
|
|
data_analysis/
|
|
|
├── lib/ # 核心库
|
|
|
│ └── odps_module.py # ODPS 客户端
|
|
|
-├── tasks/ # 分析任务(按任务名建目录)
|
|
|
-│ └── 任务名/
|
|
|
-│ ├── query.sql # SQL 文件
|
|
|
-│ └── output/ # 结果目录
|
|
|
-│ └── start_end.csv
|
|
|
-└── run_sql.py # 入口脚本
|
|
|
+├── tasks/ # 分析任务
|
|
|
+│ ├── 00_表的洞察/ # 表结构探索(按表名建子目录)
|
|
|
+│ ├── archive/ # 归档的旧任务
|
|
|
+│ ├── 头部/ # 头部相关分析
|
|
|
+│ ├── 承接/ # 承接相关分析
|
|
|
+│ └── 其他分类.../ # 按主题分类
|
|
|
+│ └── 任务名/
|
|
|
+│ ├── query.sql
|
|
|
+│ └── output/
|
|
|
+├── fetch_daily.py # 按天增量获取数据(并发)
|
|
|
+└── run_sql.py # SQL 执行入口脚本(日期范围)
|
|
|
```
|
|
|
|
|
|
## 命名规范
|
|
|
|
|
|
-- 任务目录:中文表意,如 `渠道再分享回流/`
|
|
|
+- 任务目录:中文表意,按主题分类存放
|
|
|
- SQL 文件:统一用 `query.sql`
|
|
|
- 输出目录:统一用 `output/`
|
|
|
-- 结果文件:`{start}_{end}.csv`,如 `20251229_20260104.csv`
|
|
|
+- 归档:旧任务移至 `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`
|
|
|
+
|
|
|
+## 运行任务
|
|
|
+
|
|
|
+### 日期范围查询
|
|
|
+```bash
|
|
|
+python run_sql.py tasks/xxx/query.sql
|
|
|
+```
|
|
|
+
|
|
|
+### 按天增量获取
|
|
|
+```bash
|
|
|
+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`,日期用 `${start}` 和 `${end}`
|
|
|
-3. 运行 `python run_sql.py tasks/任务名/query.sql`
|
|
|
+1. 在对应分类目录下创建任务目录,如 `tasks/头部/任务名/`
|
|
|
+2. 编写 `query.sql`,日期变量根据脚本选择:
|
|
|
+ - run_sql.py → `${start}` 和 `${end}`
|
|
|
+ - fetch_daily.py → `${dt}`
|
|
|
+3. 运行对应脚本获取数据
|