# ODPS 数据分析工具

从阿里云 ODPS (MaxCompute) 执行 SQL 并导出结果到 CSV。

## 脚本说明

| 脚本 | 功能 |
|------|------|
| `run_sql.py` | 执行 SQL 文件，导出结果 |
| `desc_table.py` | 查看表结构 |

## 安装依赖

```bash
pip install pyodps
```

## 使用方法

```bash
# 基本用法（默认最近 7 天）
python run_sql.py tasks/渠道再分享回流/query.sql

# 指定日期范围
python run_sql.py tasks/渠道再分享回流/query.sql --start 20251222 --end 20260103

# 预览 SQL（不执行）
python run_sql.py tasks/渠道再分享回流/query.sql --dry-run

# 额外变量
python run_sql.py tasks/xxx/query.sql --vars apptype=36
```

## 目录结构

```
tasks/
└── 渠道再分享回流/          # 任务目录（中文表意）
    ├── query.sql           # SQL 文件
    └── output/             # 结果自动保存到这里
        └── 20251229_20260104.csv
```

## 新建分析任务

1. 创建目录：`mkdir -p tasks/新任务名`
2. 编写 SQL，日期分区用 `${start}` 和 `${end}` 占位
3. 运行查询

## 常用指标说明

| 字段 | 含义 | 计算方式 |
|------|------|----------|
| exp | 曝光次数 | - |
| str | 分享率 | share_cnt / exp |
| ros | 回流分享比 | return_n_uv / share_cnt |
| rovn | 回流曝光比 | return_n_uv / exp |
| vov | 新曝光系数 | new_exposure_cnt / exp |

## 人群定义

| 人群 | 定义 |
|------|------|
| 内部 | rootSourceId 为空，自然流量 |
| 外部0层 | 外部渠道 + 分享深度=0，买量直接触达 |
| 外部裂变 | 外部渠道 + 分享深度>0，买量用户分享后触达 |
