mcpField
A
analyzing-data

analyzing-data

github.com/astronomer数据与数据库4571.4k 次安装3 周前更新
代码仓库

关于 analyzing-data

用于查询数据仓库、回答业务问题的数据分析技能。它将 SQL 执行与查询策略、表概念和架构缓存结合起来。

主要功能

  1. 01通过托管内核执行 SQL
  2. 02并发运行相互独立的查询
  3. 03缓存查询策略及执行结果
  4. 04查找并保存表概念
  5. 05缓存表架构

适用场景

  1. 01使用数仓数据回答业务问题
  2. 02复用已知查询策略
  3. 03探索数据时查找表映射
  4. 04并行运行相互独立的查询

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/astronomer/agents --skill analyzing-data

安装后在 Claude Code 中输入/analyzing-data确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

reference/
common-patterns.md
discovery-warehouse.md
scripts/
.gitignore
cache.py
cli.py
config.py
connectors.py
kernel.py
pyproject.toml
templates.py
ty.toml
warehouse.py
scripts/tests/
__init__.py
conftest.py
test_cache.py
test_config.py
test_connectors.py
test_kernel.py
test_utils.py
test_warehouse.py
scripts/tests/integration/
__init__.py
conftest.py
test_duckdb_e2e.py
test_kernel_interrupt.py
test_postgres_e2e.py
test_sqlite_e2e.py

详细介绍

数据分析

通过查询数据仓库回答业务问题。内核会在首次调用 exec 时自动启动。

以下所有 CLI 命令均相对于此技能目录。 运行任何 scripts/cli.py 命令前,请先 cd 到包含此文件的目录。

工作流

  1. 模式查找 — 检查是否有缓存的查询策略:

    uv run scripts/cli.py pattern lookup "<user's question>"
    

    如果存在模式,请遵循其策略。执行后记录结果:

    uv run scripts/cli.py pattern record <name> --success  # or --failure
    
  2. 概念查找 — 查找已知的表映射:

    uv run scripts/cli.py concept lookup <concept>
    
  3. 表发现 — 如果未命中缓存,请搜索代码库(Grep pattern="<concept>" glob="**/*.sql"),或查询 INFORMATION_SCHEMA。请参阅 reference/discovery-warehouse.md。

  4. 执行查询:

    uv run scripts/cli.py exec "df = run_sql('SELECT ...')"
    uv run scripts/cli.py exec "print(df)"
    
  5. 缓存经验 — 呈现结果前务必缓存:

    # 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"
    
  6. 向用户呈现发现结果。

内核函数

函数返回值
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

参考资料

评论

支持 Markdown