第19章 v0 集成 Snowflake:构建与部署数据应用指南
使用 v0 连接 Snowflake,用你的仓库数据构建应用和仪表盘、查询 Snowflake,并将应用部署到 Snowflake。Snowflake 集成目前处于 beta 阶段,需要团队所有者先为你的 v0 团队配置好 Snowflake 账户,成员才能进行连接。
通过 Snowflake 集成,你可以基于你的 Snowflake 角色所能访问的数据来构建数据应用。连接 Snowflake 后,v0 可以检查 schema、查询表、生成仪表盘或报表、预览已连接的应用,并将应用部署到 Snowflake。
v0 Snowflake 集成演示
第 1 步:准备你的 Snowflake 账户
在团队连接 v0 或向 Snowflake 部署应用之前,需要由 Snowflake 账户管理员启用 Snowflake App Runtime,并授权 Vercel 集成访问将要使用它的角色。
启用 App Runtime
在 Snowsight 中,点击左下角你的用户名,然后选择 Settings。 在 Account 下选择 Apps。 如果页面显示 App development is not set up,点击 Begin Setup 并完成设置流程。
更多详情可参阅 Snowflake App Runtime account admin setup。
为角色授权访问 Vercel 集成
这一步决定了团队中谁能使用 v0 的 Snowflake 集成。只有拥有被允许角色之一的 Snowflake 用户才能连接。启用 App Runtime 后,Apps 页面会显示一个 Defaults 标签页,你可以在其中配置目标数据库、schema、查询 warehouse,以及哪些角色拥有访问权限。
在 Apps 页面,点击 Integrations 标签页。 找到 Vercel 卡片。如果显示 Not created yet,点击 Setup。 在 Setup Vercel 对话框中,选择应有权限访问该集成的角色。 点击 Setup。
Vercel 卡片会更新,显示 Roles with access 及所选角色。可以通过 Edit Roles 修改访问权限,或用 Disable 移除该集成。
第 2 步:为你的 v0 团队添加 Snowflake
团队所有者需要添加允许成员连接的 Snowflake 账户标识符。这样这些账户才会作为选项出现在成员连接时的列表中,但这一步本身不会授予任何访问权限——实际权限由第 1 步中允许的角色控制。
添加账户标识符不会让任何团队成员登录、不会授予 Snowflake 数据访问权限,也不会更改 Snowflake 权限。如果成员的 Snowflake 用户没有第 1 步中允许的角色,即使完成这一步也无法连接。
打开你的 v0 团队设置。 进入 Integrations。 找到 Snowflake。 点击 Add Account。 输入 Snowflake URL 中的账户标识符部分——例如,https://myorg-account123.snowflakecomputing.com 中的 myorg-account123。不要包含 https:// 或 .snowflakecomputing.com。如有需要,可参阅 Snowflake 的 Account identifiers 指南。 可选:添加一个标签,比如 Production 或 Analytics。
第 3 步:连接你的 Snowflake 用户
团队所有者配置好账户后,团队成员通过 OAuth 连接各自的 Snowflake 用户。每位成员独立连接,队友不会从其他人的连接中继承访问权限。
Snowflake 的访问完全基于角色(RBAC),而非用户。你的 Snowflake 用户身份只决定可以选择哪些角色——所有数据访问、读写权限以及对数据库、schema 和表的可见性,完全由所选角色决定。OAuth 流程中只会显示 Snowflake 账户管理员在第 1 步中允许的角色。
在 v0 团队中打开一个对话。 让 v0 用 Snowflake 创建一些东西,比如 Create an application using Snowflake that shows AI gateway usage by models。 当 v0 显示 Snowflake 卡片时,点击 Connect。 为这个对话选择 Snowflake 账户。 完成 Snowflake OAuth 流程,并选择一个有权访问你想让 v0 使用的数据的角色。
完成连接即表示你授权 v0 通过所选角色访问 Snowflake,并允许 v0 向 Snowflake 发送集成使用信息。这些信息受你与 Snowflake 的条款约束。
你也可以从 Project 菜单 → Settings → Integrations 手动选择 Snowflake 进行连接。
第 4 步:用 Snowflake 数据进行构建
在编写任何应用代码之前,最好先探索一下你的数据。使用 v0 的数据工具浏览你的角色实际能看到的内容——这能让 v0 在生成代码时使用准确的数据库、schema、表和列名。
浏览表并运行 SQL
已连接 Snowflake 的对话可以使用 v0 的数据工具:
浏览可访问的数据库、schema 和表。 分页预览表中的数据行。 运行自定义 SQL 查询。 将查询结果作为后续提示的上下文。
大型 warehouse 和范围过宽的查询可能又慢又贵。探索数据时,建议使用针对性的查询、明确指定数据库和 schema 名称,并加上 LIMIT 子句。
生成应用代码
在生成应用代码前,先让 v0 检查你的 Snowflake 数据。这有助于 v0 使用你的角色可访问的准确的数据库、schema、表和列名。
示例提示:
Inspect my Snowflake schemas and show me which tables look useful for a revenue dashboard. Build an analytics dashboard from Snowflake. First inspect the table schemas and sample rows, then use the confirmed columns. Create a report from MY_DATABASE.PUBLIC.ORDERS grouped by week. Validate the columns before writing the query.
对于生成的应用,Snowflake 查询必须在服务端运行。v0 会在预览和部署时处理已连接的 Snowflake 凭据,因此不要把 Snowflake token 放在客户端代码中。
第 5 步:部署到 Snowflake
部署前请确保对话已连接 Snowflake(第 3 步)。对话连接后,v0 会显示 Snowflake 发布流程。
点击 Publish。 点击 Deploy to Snowflake。 等待 v0 打包、构建并部署应用。 通过发布菜单访问应用或复制应用 URL。
部署完成后,应用托管在 Snowflake 基础设施上。当 Snowflake 返回部署日志和详情时,可以通过发布弹窗查看。
故障排查
找不到 Snowflake 选项
如果你的团队里看不到 Snowflake 选项,可能是该集成尚未对你的团队启用,或者还没有添加账户标识符。联系你的团队所有者,让其完成第 1 步和第 2 步。
看不到我预期的表
v0 只能看到你连接的 Snowflake 角色可访问的数据。请重新连接 Snowflake,并选择一个拥有相应 warehouse、数据库、schema 和表权限的角色。
队友无法预览我的 Snowflake 应用
每位成员都需要连接自己的 Snowflake 账户。请让队友通过预览中显示的提示,或从 Project 菜单 → Settings → Integrations 连接 Snowflake。
部署在构建阶段持续失败
如果 Snowflake 部署反复失败,在尝试其他修复之前,先让 v0 检查 Snowflake 应用事件。如有部署错误日志请一并提供,然后用以下提示引导 v0:
My app is having an issue with deploying to Snowflake. Use "snow app events" to check for issues on the Snowflake deployment. Make changes needed to deploy the application.
更改 Snowflake 角色后部署失败
请重新连接 Snowflake,并选择一个有权访问所需 v0 集成 procedure 和部署权限的角色,然后在发布弹窗中重试部署。