SuperAPI AI 工具集

interactive-benchmark

数据与分析

查看项目

更新于 10-21 12:53

技能介绍

用途

Interactive Warehouse Benchmark 用于对用户提供的任意 SQL 查询,在 Snowflake Interactive Warehouse 上进行并发负载基准测试,目标是判断该查询能否在交互式仓库上满足指定的 P95 延迟目标。

该基准测试必须使用部署在 Snowpark Container Services(SPCS)上的 API 服务器和 Locust 负载生成器,不得采用其他替代方案(例如直接从客户端运行查询、编写自定义脚本或绕过 Locust)。整个基准测试基础设施——API 服务器、Locust、计算池——都运行在 SPCS 上。

主要能力

  • 在标准仓库和交互式仓库上分别运行查询,验证其是否适合交互式执行。
  • 通过 SPCS 部署 FastAPI 基准测试 API 与 Locust 负载生成器,模拟并发用户进行压测。
  • 收集客户端延迟百分位与吞吐量,并通过 QUERY_HISTORY 收集服务端 P50/P95/P99 延迟与集群使用情况。
  • 在未达标时,在用户批准的限额内自动扩容(增加集群或增大仓库)并重新运行负载测试。
  • 生成包含执行摘要、延迟图表、瓶颈分析、扩容历史和优化建议的 HTML 报告。
  • 提供进度跟踪机制,通过 progress.json 与 update-progress.sh 记录 13 个步骤的状态。

使用方式

前置条件包括:snow CLI、Python 3、envsubst(gettext)、在 ~/.snowflake/connections.toml 中配置的 Snowflake 连接、具备创建基准数据库/模式/阶段、仓库、计算池、服务和公共服务端点权限的角色,以及使用 SPCS 的能力。

工作流分为三个阶段,必须按顺序执行:

  • 阶段 1:收集全部输入。包括数据库名、模式、交互式仓库、标准仓库、连接名、P95 延迟目标、并发用户数、最大仓库规格、最大集群数、基准名称、最大扩容迭代次数等 11 项输入。收集后需向用户展示汇总表并确认,随后展示将创建的 SPCS 资源和使用的共享镜像,并列出完整的操作计划。
  • 阶段 2:验证查询适用性。调用 snowflake-interactive 技能分析查询,确定采用零拷贝交互式还是交互式表方式,并在标准仓库和交互式仓库上运行查询。若查询在标准仓库超过 10 秒、在交互式仓库超过 5 秒,或没有加速效果,则停止,不进入阶段 3。
  • 阶段 3:运行基准测试。在用户批准的限额内自主执行,包括验证交互式设置、配置并发与回退、保存基准查询、配置环境、预热缓存、部署到 SPCS、运行基线测试、运行负载测试、收集服务端指标、目标检查与扩容、生成 HTML 报告、清理或保留服务。

每一步都必须使用指定的工具(如 bash、read、write、edit、grep、ask_user_question、open_browser、skill 等),不得替换为其他方式。每个步骤边界都必须运行 update-progress.sh 更新进度。

适用场景

适用于需要评估某条 SQL 查询在 Snowflake Interactive Warehouse 上能否满足低延迟(如 P95 ≤ 1 秒)并发访问目标的场景,例如交互式分析、仪表盘查询等对延迟敏感的工作负载。

限制

  • 必须使用 SPCS 部署的 API 服务器和 Locust,不允许其他基准测试方式。
  • 阶段 2 若查询不适合交互式仓库,则流程停止。
  • 交互式仓库拒绝 CREATE INTERACTIVE TABLE ... AS SELECT 及任何 CTAS,若采用交互式表模式,所有 DDL 和表创建必须使用标准仓库。
  • 部署会创建 2 个 CPU_X64_M 计算池,运行期间会产生费用。
  • 扩容受用户设定的最大仓库规格、最大集群数和最大扩容迭代次数限制。
  • 关于具体收费、价格、平台支持范围等更多细节,资料中暂未提供。