用途:在 Windmill 中编写 Snowflake 查询脚本,把脚本放在文件夹里,并用 wmill CLI 预览、运行或同步。
主要能力:Snowflake 脚本用 ? 占位符接收参数,参数名通过语句前注释声明,例如:-- ? name1 (text) / -- ? name2 (number) = 0。脚本可返回任意可 JSON 序列化的值,SQL 脚本返回查询结果行,结果可通过 results.step_id 供后续流程步骤使用。参数可用 (s3object) 类型声明,Windmill 渲染 S3 文件选择器并下载文件,以 JSON 文本绑定,Parquet/CSV 会在服务端解码成 JSON 记录数组,可用 PARSE_JSON(?) 配合 LATERAL FLATTEN 读取。脚本顶部可加 -- s3 指令把结果集流式写入 S3,键均可选:prefix、storage、format(json 默认、parquet、csv),适合大结果集,绕过 10000 行返回上限。凭据与配置以资源类型参数传入,不硬编码、不从环境读取;库自动安装。
使用方式:本地迭代用 wmill script preview <script_path>(不部署);仅当用户明确要求测试已部署版本时用 wmill script run <path>;修改导入或 main 参数后运行 wmill generate-metadata 同步 .lock、.script.yaml 与 wmill-lock.yaml 哈希,可先加 --dry-run 查看受影响项,仅需刷新哈希时用 wmill generate-metadata rehash。只有用户明确要求部署/发布/推送时才 git push 或 wmill sync push。可用 wmill resource-type list --schema 发现资源类型。若用户已在请求中要求测试,直接执行 wmill script preview <path> -d '<args>',按声明的参数选取合理取值。
适用场景与限制:适用于编写和调试 Snowflake 查询脚本、处理 S3 文件输入、导出大数据集到 S3。限制:preview 仍会执行代码并可能产生副作用;generate-metadata 只写本地文件但会重新解析依赖,可能提升未固定版本;部署是唯一修改远端状态的步骤。其他细节资料未提供。