用途:通过 Snowflake SQL API v2(/api/v2/statements)运行 SQL 并获取结果,适合单条查询、SHOW、DESCRIBE 以及需要轮询、分区拉取、取消或幂等重试的场景。
主要能力:POST 提交 SQL 得到 statement handle,快查询直接返回结果,慢查询返回 202 需轮询;大结果按 partitionInfo 分区逐个拉取(首分区后为 gzip);支持取消、requestId 幂等重试、多语句请求(需设 MULTI_STATEMENT_COUNT,返回父句柄与子句柄);目录浏览没有独立 REST 端点,用 SHOW DATABASES/SCHEMAS/TABLES、DESCRIBE TABLE 或 INFORMATION_SCHEMA 查询。
使用方式:认证由运行时注入,不要自行创建或刷新令牌;SNOWFLAKE_ACCOUNT 必须是真实账户标识(.snowflakecomputing.com 之前的部分),令牌变量未设置时填占位值即可。请求需带 Authorization、X-Snowflake-Authorization-Token-Type、Content-Type、Accept 和 User-Agent(缺失会被拒绝)。可用脚本 scripts/snow_query.sh 提交并轮询,支持 --warehouse/--database/--schema/--role、--bind TYPE:VALUE、--timeout、--max-wait、--max-rows、--json;也可直接用 curl 调端点。
限制:结果保留 24 小时,过期句柄返回 404;绑定占位符为 ?,绑定对象是 1 起始的字符串键,值均为字符串;data[] 全为字符串,日期为 epoch 天数、时间戳为 epoch 秒;未加引号标识符默认大写;扫描数据的语句必须指定 warehouse,挂起仓库会自动恢复并产生 60 秒计费最低值;多语句请求不支持绑定;轮询过频会触发 429,需按 Retry-After 退避;持续 401 表示工作区凭据未配置,应上报而非调试认证。更多字段与编码细节见 references/api.md。