关于 analyzing-data
用于查询数据仓库、回答业务问题的数据分析技能。它将 SQL 执行与查询策略、表概念和架构缓存结合起来。
主要功能
- 01通过托管内核执行 SQL
- 02并发运行相互独立的查询
- 03缓存查询策略及执行结果
- 04查找并保存表概念
- 05缓存表架构
适用场景
- 01使用数仓数据回答业务问题
- 02复用已知查询策略
- 03探索数据时查找表映射
- 04并行运行相互独立的查询
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ astronomer/ agents --skill analyzing-data安装后在 Claude Code 中输入/analyzing-data确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
reference/common-patterns.mddiscovery-warehouse.mdscripts/.gitignorecache.pycli.pyconfig.pyconnectors.pykernel.pypyproject.tomltemplates.pyty.tomlwarehouse.pyscripts/tests/__init__.pyconftest.pytest_cache.pytest_config.pytest_connectors.pytest_kernel.pytest_utils.pytest_warehouse.pyscripts/tests/integration/__init__.pyconftest.pytest_duckdb_e2e.pytest_kernel_interrupt.pytest_postgres_e2e.pytest_sqlite_e2e.py详细介绍
数据分析
通过查询数据仓库回答业务问题。内核会在首次调用 exec 时自动启动。
以下所有 CLI 命令均相对于此技能目录。 运行任何 scripts/cli.py 命令前,请先 cd 到包含此文件的目录。
工作流
-
模式查找 — 检查是否有缓存的查询策略:
uv run scripts/cli.py pattern lookup "<user's question>"如果存在模式,请遵循其策略。执行后记录结果:
uv run scripts/cli.py pattern record <name> --success # or --failure -
概念查找 — 查找已知的表映射:
uv run scripts/cli.py concept lookup <concept> -
表发现 — 如果未命中缓存,请搜索代码库(
Grep pattern="<concept>" glob="**/*.sql"),或查询INFORMATION_SCHEMA。请参阅 reference/discovery-warehouse.md。 -
执行查询:
uv run scripts/cli.py exec "df = run_sql('SELECT ...')" uv run scripts/cli.py exec "print(df)" -
缓存经验 — 呈现结果前务必缓存:
# Cache concept → table mapping uv run scripts/cli.py concept learn <concept> <TABLE> -k <KEY_COL> # Cache query strategy (if discovery was needed) uv run scripts/cli.py pattern learn <name> -q "question" -s "step" -t "TABLE" -g "gotcha" -
向用户呈现发现结果。
内核函数
| 函数 | 返回值 |
|---|---|
run_sql(query, limit=100) | Polars DataFrame |
run_sql_pandas(query, limit=100) | Pandas DataFrame |
run_sql_many(queries, limit=100) | Polars DataFrame 列表(每个查询对应一个) |
pl(Polars)和 pd(Pandas)已预先导入。
使用 run_sql_many 一起运行彼此独立的查询 — 这些查询会并发执行(Snowflake 异步 / 连接池扇出),而不是逐个运行:
uv run scripts/cli.py exec "dfs = run_sql_many(['SELECT ...', 'SELECT ...']); print(dfs[0])"
run_sql_many 遇错即止:如果任何查询出错,该调用就会引发错误,且已成功查询的结果也会被丢弃。如果需要保留部分结果,请分别调用 run_sql。
超时: 默认情况下,exec 最多等待 120s,然后中断查询并返回“客户端停止等待”消息(查询仍可能在服务端完成)。对于已知的长时间运行查询,请延长超时时间:uv run scripts/cli.py exec "..." -t 600。
空闲内核: 内核空闲 2h 后会自行终止(在此之前保留状态)。可使用 ASTRO_KERNEL_IDLE_TIMEOUT(秒;0 表示禁用)覆盖此设置。
CLI 参考
内核
uv run scripts/cli.py warehouse list # List warehouses
uv run scripts/cli.py start [-w name] # Start kernel (with optional warehouse)
uv run scripts/cli.py exec "..." # Execute Python code
uv run scripts/cli.py status # Kernel status
uv run scripts/cli.py restart # Restart kernel
uv run scripts/cli.py stop # Stop kernel
uv run scripts/cli.py install <pkg> # Install package
概念缓存
uv run scripts/cli.py concept lookup <name> # Look up
uv run scripts/cli.py concept learn <name> <TABLE> -k <KEY_COL> # Learn
uv run scripts/cli.py concept list # List all
uv run scripts/cli.py concept import -p /path/to/warehouse.md # Bulk import
模式缓存
uv run scripts/cli.py pattern lookup "question" # Look up
uv run scripts/cli.py pattern learn <name> -q "..." -s "..." -t "TABLE" -g "gotcha" # Learn
uv run scripts/cli.py pattern record <name> --success # Record outcome
uv run scripts/cli.py pattern list # List all
uv run scripts/cli.py pattern delete <name> # Delete
表架构缓存
uv run scripts/cli.py table lookup <TABLE> # Look up schema
uv run scripts/cli.py table cache <TABLE> -c '[...]' # Cache schema
uv run scripts/cli.py table list # List cached
uv run scripts/cli.py table delete <TABLE> # Delete
缓存管理
uv run scripts/cli.py cache status # Stats
uv run scripts/cli.py cache clear [--stale-only] # Clear
参考资料
- reference/discovery-warehouse.md — 大型表处理、数据仓库探索、INFORMATION_SCHEMA 查询
- reference/common-patterns.md — 趋势、比较、Top-N、分布、群组的 SQL 模板