# 用户学习行为数据导出技能

## 功能说明
可以导出指定账户ID或角色ID的完整学习行为数据，输出为Excel文件，包含多个sheet。

## 导出内容说明
Excel包含以下sheet：
1. **全部音频数据**：用户的所有语音交互数据，包含音频地址、ASR结果等
2. **互动组件学习记录**：所有组件互动记录，包含组件类型、名称、知识点、互动结果等
3. **课程巩固记录**：课程课后巩固的做题记录
4. **单元挑战记录**：单元挑战的答题记录
5. **单元总结记录**：单元总结的学习记录
6. **汇总统计**：自动统计的组件通过率、知识点掌握情况、单元学习时长等

## 使用方法
### 1. 导出单个角色ID
修改脚本变量：
```python
USER_ID = "角色ID"
USER_ID_LIST = None
ACCOUNT_ID_LIST = None
```

### 2. 导出单个/多个账户ID
修改脚本变量：
```python
USER_ID = None
USER_ID_LIST = None
ACCOUNT_ID_LIST = [账户ID1, 账户ID2, ...]
```
脚本会自动查询账户对应的所有角色ID并分别导出。

## 依赖环境
需要配置以下环境变量：
```
# ES 配置
ES_HOST=es-7vd7jcu9.public.tencentelasticsearch.com
ES_PORT=9200
ES_SCHEME=https
ES_USER=elastic
ES_PASSWORD=F%?QDcWes7N2WTuiYD11

# PG 配置
PG_DB_HOST=bj-postgres-16pob4sg.sql.tencentcdb.com
PG_DB_PORT=28591
PG_DB_USER=ai_member
PG_DB_PASSWORD=LdfjdjL83h3h3^$&**YGG*
PG_DB_DATABASE=vala

# MySQL 配置
MYSQL_HOST=bj-cdb-8frbdwju.sql.tencentcdb.com
MYSQL_USERNAME=read_only
MYSQL_PASSWORD=fdsfiidier^$*hjfdijjd232
MYSQL_PORT=25413

# MySQL Online 配置
MYSQL_HOST_online=bj-cdb-dh2fkqa0.sql.tencentcdb.com
MYSQL_USERNAME_online=read_only
MYSQL_PASSWORD_online=fsdo45ijfmfmuu77$%^&
MYSQL_PORT_online=27751
```

## 常见问题排查
1. **事务异常错误**：一般是前面某个查询失败导致，检查是否有权限、表是否存在
2. **权限不足**：检查数据库账号的表权限，需要有各分表的SELECT权限
3. **0条记录**：对应角色没有学习数据，属于正常情况

## 导出示例
- 账户ID 9343（角色12699）：导出199条学习记录
- 角色ID 14607：导出855条完整学习记录，所有sheet都有数据
