Snowflake Extension for Visual Studio Code

Snowflake Visual Studio Code (https://code.visualstudio.com/) (VS Code) 扩展可让您直接在 VS Code 中编写和执行 Snowflake SQL 语句。该扩展还与 Snowpark Python 集成,为 Python 代码中的 SQL 提供调试、语法突出显示和自动完成功能。

您可以从 Visual Studio Marketplace 安装 VS Code 扩展,也可以下载并安装 .vsix 文件。

本主题内容:

从 Visual Studio Marketplace 安装 VS

  1. 在 VS Code 中,选择 Code > Settings > Extensions

  2. Search Extensions in Marketplace 文本框中,输入文本 Snowflake 来搜索 Snowflake Visual Studio 扩展。

    要确认您已选择正确的扩展,请查看下面图像中显示的 Snowflake 徽章:

    Snowflake 认证位置。Snowflake 认证是在蓝色圆圈内的一个勾选标记。
  3. 选择 Install

从 .vsix 文件安装 VS 代码扩展

  1. 下载扩展:

    • 前往 https://marketplace.visualstudio.com/items?itemName=snowflake.snowflake-vsc (https://marketplace.visualstudio.com/items?itemName=snowflake.snowflake-vsc)。

    • 选择 Version History 选项卡。

    • 针对您要安装的 VS Code 扩展版本选择 Download。记下文件的下载位置。

  2. 在 VS Code 中,选择 Code > Settings > Extensions

  3. 选择 More (...) > Install from VSIX

  4. 在计算机上找到 snowflake-x.y.z.vsix 文件的位置,选中该文件,然后选择 Install

    安装完成后,Snowflake Extension for Visual Studio Code 将显示在 VS Code 中 Extensions 菜单的 INSTALLED 部分中。

从 VS Code 扩展登录 Snowflake

在执行 SQL 语句、使用 Snowpark Python 或使用 Snowflake Native App Framework 功能之前,您必须登录 Snowflake 账户。

使用 VS Code 扩展登录 Snowflake 的方法:

  • 使用您的 Snowflake 账户标识符、用户名和密码。

  • 使用联合身份验证,例如安全断言标记语言 (SAML) 或单点登录 (SSO)。

  • 使用密钥对身份验证。

  • connections.toml 配置文件中使用 OAuth 身份验证。请参阅 编辑 Snowflake connections.toml 文件

首次使用 VS Code 扩展登录 Snowflake 时,需要输入 Snowflake 账户的账户标识符或用于连接到 Snowflake 的 URL。要确定账户标识符,请参阅 账户标识符

  1. 选择 VS Code 活动栏中的 Snowflake 图标。

  2. Account Identifier/URL 字段中,输入 Snowflake 账户的账户标识符或用于连接到 Snowflake 的 URL,然后选择 Continue

    如果您之前提供了您的 Snowflake 账户凭据,则 Account Identifier/URL 字段不可用。

  3. Auth Method 列表中,选择以下选项之一:

    • 选择 Single sign-on 以使用您的 SSO 凭据登录 Snowflake.

    • 选择 Username/password 以使用您的 Snowflake 用户名和密码登录 Snowflake。

    • 选择 Key Pair 以使用您的 Snowflake 用户名和密码登录 Snowflake。有关密钥对身份验证的更多信息,请参阅 密钥对身份验证和密钥对轮换

  4. 输入凭据,然后选择 Sign in

    当您选择 SSO 时,在输入用户名并选择 Sign in with single sign-on 后,会打开一个单独的身份验证页面。输入您的 SSO 凭据,然后返回 VS Code 以完成 Snowflake 登录。

    成功登录后,侧边栏会显示您的帐户信息、默认角色、带有 数据库 列表的 OBJECT EXPLORER 和您的 QUERY HISTORY

编辑 Snowflake connections.toml 文件

您可以在 Snowflake connections.toml 配置文件中添加和修改连接定义。连接定义是指与连接相关的参数的集合。

要使用 TOML 文件连接到 Snowflake,请参阅 使用 connections.toml 文件进行连接。要了解有关使用 TOML 文件管理连接的更多信息,请参阅 管理 Snowflake 连接

  1. 在 VS Code 中,打开 Snowflake VS Code 扩展并登录到 Snowflake。

  2. ACCOUNT 窗格中,选择 Snowflake:Edit Connections File

    Snowflake:编辑连接文件位置。
  3. 编辑 TOML 文件。

  4. 选择 Save,然后关闭 TOML 文件。

VS Code 扩展界面

Snowflake VS Code 扩展的概述,显示其主要区域:侧边栏窗格、SQL 窗格和查询结果窗格。

下表提供了 VS Code 扩展界面功能区域的描述。

项目

描述

1

侧边栏窗格包含 AccountNative AppObject ExplorerQuery History 窗格。使用此窗格可指定账户详细信息、检查数据库对象,以及检查查询结果。

2

使用 Snowflake Native App 窗格创建和管理 Snowflake Native App。

3

Query History 窗格显示最近的查询。

4

当前会话信息,包括当前角色、数据库、架构和活动仓库。

5

Snowflake SQL 窗格。显示 Snowflake SQL 文件。

6

Query Results 窗格显示查询结果。选择一个查询以显示其执行结果。

使用 VS Code 扩展和 SnowSQL 配置文件

Snowflake Extension for Visual Studio Code 可以使用 Snow SQL 配置文件 来加载连接配置。

备注

仅使用连接配置值。其他 SnowSQL 配置值将被忽略。

  1. 在 VS Code 搜索字段中,输入 >user settings,然后选择 Preferences: Open User Settings

  2. User 选项卡中,展开 Extensions

  3. 向下滚动并选择 Snowflake

  4. 在右侧窗格中,向下滚动到 Snowsql Config Path

  5. 输入有效 SnowSQL 配置文件的路径。

    在配置中定义的所有连接显示在 Account 窗格中。

使用 SQL 文件

您可以使用 Snowflake Extension for Visual Studio Code 创建和加载 SQL 文件。SQL 文件是包含一个或多个 SQL 语句的文本文件。

打开或创建 SQL 个文件

  1. 在 VS Code 中,选择 File > Open,浏览到 SQL 文件所在的位置,然后打开它。

    要创建一个新的 SQL 文件,请选择 File > New File,并创建类型为 Snowflake SQL File 的文件。

  2. 将一个或多个 Snowflake SQL 语句添加到文件中。

  3. 可选。选择 Snowflake: Execute All Statements (执行所有语句按钮) 以执行命令。

执行命令或查询

重要

要显示 Snowflake 查询结果,VS 代码扩展会在每次查询后自动在后台运行 DESC RESULT '<query_id>'。这个过程使得 LAST_QUERY_ID() 不准确。有关 DESCRIBE RESULT 命令及其参数的更多信息,请参阅 DESCRIBE RESULT

在 VS 代码中,选择以下选项之一:

  • 要执行文件中的所有 SQL 语句,请选择 Snowflake: Execute All Statements (执行所有语句按钮)。

  • 要执行特定命令,请将光标放在您想要运行的语句上,然后选择 Execute

  • 要执行多个命令,请选择要运行的语句,然后选择 Execute。这些命令按从上到下的顺序执行。

要使用键盘快捷键执行语句,请选择您想要运行的 SQL 语句,在 Mac 键盘上按 Apple OSX Command 键。 + [enter],或在 Windows 键盘上按 通用控制键。 + [enter]。

执行的 SQL 语句结果显示在 SNOWFLAKE 窗格中。

要取消正在进行的查询,请在 QUERY HISTORY 列表中选择一个查询,然后选择 Cancel query (取消查询按钮)。

查看查询历史记录

  1. 在 VS 代码中,展开 Query History

  2. 选择语句。

  3. SNOWFLAKE 窗格中查看结果。

  4. 可选。选择以下选项之一:

    • 选择 Snowflake: Copy to Clipboard (将查询文本复制到剪贴板按钮) 将查询文本复制到剪贴板。

    • 选择 Snowflake: Remove Query (删除查询按钮) 删除查询。

处理查询结果

您可以对查询结果进行排序、重新排序、隐藏、冻结或保存到磁盘。

  1. QUERY HISTORY 中,选择一个查询。

  2. SNOWFLAKE 窗格中,选择一列。

  3. 选择展开箭头 (↓),然后选择以下选项之一:Sort AscendingSort DescendingHide column "column name"Freeze columns up to "column name"

    如果之前隐藏了某一列,请选择任何其他列,然后选择 Unhide N columns

  4. 可选。选择以下选项之一:

    • 选择 Cloud (下载结果按钮) 以将结果保存为压缩的 gzip 文件。

    • 选择 Save (保存结果按钮) 以将结果保存为逗号分隔的 (CSV) 文件。

使用 Snowpark Python 代码

您可以使用 Snowflake Extension for Visual Studio Code 来创建、加载和执行 SQL 文件。

调试 Snowpark Python 函数

  1. 在 Python 函数中编写一个 Snowflake 存储过程,其中第一个参数是 Snowpark Session 对象。

  2. 一个内联 Snowflake: Debug 选项出现在函数名称上方。选择此选项可通过扩展使用当前活动会话在函数中运行存储过程。您还可以设置调试断点。

自动检测 SQL 语句

要设置自动 SQL 语法突出显示,请启用 扩展设置 Auto Detect Sql in Python。该扩展可自动检测测 SQL 语句,方法是查找全部为大写字母的 SQL 关键字作为 Python 字符串中的第一个单词,如下图所示。

Python 字符串中的 Snowflake SQL 语句代码段,显示自动 SQL 语法突出显示。

手动表示 SQL 语句

  1. 可选。禁用 扩展设置 Auto Detect Sql in Python

  2. 使用注释表示 SQL 语句的开始和结束。您可以使用以下标记的任意组合:

    • 起始标记:-–startsql-–beginsql-–start-sql-–begin-sql

    • 结束标记:–-endsql–-end-sql

    下图显示了 --begin-sql--end-sql 如何手动表示 SQL 语句。

Python 字符串中的 Snowflake SQL 语句代码段,使用注释手动启用 SQL 语法突出显示。

在 Python 字符串中使用 SQL 自动完成

  1. 在 Python 文件中,创建一个 Python 字符串,同时通过 VS Code 扩展连接到活动的 Snowflake 会话。

  2. 写入 SQL 语句。此时将显示自动完成建议。

    例如,开始编写 SELECT * FROM db1.public 等语句时,扩展会自动建议表名称。

    同样,开始在引用表的 SELECT 语句内部填充列时,扩展会自动建议列名称,如下图所示。

Python 字符串中的 Snowflake SQL 语句代码段,显示对列名的自动完成建议。

Jinja 模板语法突出显示

默认情况下,VS 代码扩展在 Snowflake SQL 中为编写 Jinja 模板 (https://jinja.palletsprojects.com/en/3.1.x/) 添加基本的语法突出显示和括号自动完成,如下图所示。

Snowflake SQL 语句的代码段,其中包含显示语法突出显示和括号自动完成的 Jinja 模板。

使用 Snowflake Native App Framework

您可以使用 VS Code 扩展来创建和管理 Snowflake Native App。有关 Snowflake Native App Framework 的更多信息,请参阅 关于 Snowflake Native App Framework

备注

要确保您拥有最新的 VS Code 扩展 Snowflake Native App 功能,Snowflake 建议升级到最新版本的 Snowflake CLI。请参阅 安装 Snowflake CLI

支持 Snowflake CLI 2.2.X 和 3.X.X 版本。

查看 VS Code 扩展 Snowflake Native App 命令面板

VS Code 扩展 Snowflake Native App 命令面板提供对以下 Snowflake Native App 命令的访问:

  • 创建原生应用程序

  • 部署原生应用程序

  • 关注原生应用程序视图

  • 打开原生应用程序

  • 运行(部署并重新安装)原生应用程序

  • 拆解原生应用程序

要访问这些命令,请在 VS Code 窗口顶部的搜索字段中键入 >Snowflake Native

创建 Snowflake Native App

  1. 在 VS Code 中,打开 Snowflake VS Code 扩展并登录到 Snowflake。

  2. 展开 NATIVE APP 窗格,然后选择 Create new from template

  3. 选择以下选项之一:

    • 输入您要在其中创建 Snowflake Native App 的文件夹名称,然后按 Enter

    • Enter 接受默认目录作为 Snowflake Native App 的位置。

  4. 选择以下选项之一:

    • 输入在其中存储 Snowflake Native App 模板的 GitHub 存储库的 URL,然后选择 Enter

    • 输入本地模板文件夹的路径。

    • 要接受默认 GitHub Snowflake Native App 模板存储库 URL,请选择 Enter

  5. 选择以下模板之一:

    • 选择 basic 来创建一个 Snowflake Native App,其中包含最小的代码示例和指导。

    • 选择 streamlit-python 来创建一个 Snowflake Native App,其中包含 Python 扩展代码和 Streamlit 代码示例。

    • 选择 streamlit-java 来创建一个 Snowflake Native App,其中包含 Java 扩展代码和 Streamlit 代码示例。

    • 选择 spcs-basic 来创建一个 Snowflake Native App,其中包含 SPCS 扩展代码和 Streamlit 代码示例。

部署并打开一个 Snowflake Native App

如果您使用 Run (deploy and re-install)Deploy 选项,系统会使用在 NATIVE APP 窗格中选择的应用程序。当多个 Snowflake Native App 应用程序可用时,系统会显示提示,您可以选择将哪个 snowflake.yml 文件用于部署。

在您部署您的 Snowflake Native App 后,您可以在 Snowflake 中打开它以管理访问、查看、添加和验证应用程序包、查看日志和事件,以及修改权限。

  1. 选择以下选项之一:

    • 在 VS Code 扩展 NATIVE APP 窗格中,选择 Run (deploy and re-install)。这是在您进行了重大更改并且需要应用对象时推荐的选项。

    • 在 VS Code 扩展 NATIVE APP 窗格中,选择 Deploy。这是在部署应用程序包和暂存文件并且不需要应用程序对象时推荐的选项。

  2. 可选。选择查询结果窗格中的 OUTPUT 选项卡,以查看部署进度。

  3. NATIVE APP 窗格中,选择 Open

查看 Snowflake Native App 应用程序对象状态

备注

Snowflake Native App 应用程序对象状态在 Snowflake CLI 版本 3.0.0 中不可用。

  • 在 VS Code 扩展 NATIVE APP 面板中,展开您的应用程序。

    蓝色字体和蓝色圆圈表示尚未安装或部署应用程序对象。

查看 Snowflake Environment Variables Manager

使用 Snowflake Environment Variables Manager 在环境变量配置文件中创建和管理环境变量。您可以使用环境变量配置文件在 Snowflake Native App 项目定义文件中自定义对象行为。例如,您可以创建环境变量配置文件,以更改开发、暂存和生产环境中的对象行为。有关环境变量和 Snowflake 连接的更多信息,请参阅 项目定义文件

使用以下方法之一查看 Snowflake Environment Variables Manager:

  • 在 VS Code 扩展 NATIVE APP 窗格中,选择 Environment Variables

  • 在命令面板中,选择 Open Environment Variables Manager

将环境变量添加到环境变量配置文件

环境变量配置文件存储环境变量。

  1. 在 VS Code 扩展 NATIVE APP 窗格中,选择 Environment Variables

  2. Selected Profile 列表中,选择一个配置文件。

  3. Environment Variable 列中,输入一个环境变量。

  4. Value 列中,输入环境变量的值。

  5. 可选:要将其他环境变量添加到环境变量配置文件,请重复第 3 步和第 4 步。

  6. 可选:要将其他行添加到环境变量配置文件,请选择 + (Add Row)

添加环境变量配置文件

环境变量配置文件存储环境变量。要在 Snowflake Native App 项目定义文件中自定义对象行为,请创建一个新的配置文件。

  1. 在 VS Code 扩展 NATIVE APP 窗格中,选择 Environment Variables

  2. 选择 Add Profile

  3. 输入配置文件的名称,然后按 Enter

向环境变量配置文件添加行

要添加环境变量,请向环境变量配置文件添加行。

  1. 在 VS Code 扩展 NATIVE APP 窗格中,选择 Environment Variables

  2. Selected Profile 列表中选择配置文件。

  3. 选择 + (Add Row)

重命名环境变量配置文件

  1. 在 VS Code 扩展 NATIVE APP 窗格中,选择 Environment Variables

  2. Selected Profile 列表中选择配置文件。

  3. 选择 Rename Profile

  4. 输入配置文件的名称,然后按 Enter

删除环境变量配置文件

  1. 在 VS Code 扩展 NATIVE APP 窗格中,选择 Environment Variables

  2. Selected Profile 列表中选择配置文件。

  3. 选择 Delete Profile

启用 Snowflake Native App 调试模式

使用调试模式可查看对使用者不可见的应用程序对象,例如共享内容对象或未授予特定数据库角色的对象。有关调试模式以及以编程方式开启它的更多信息,请参阅 启用调试模式

  • 在 VS Code 扩展 NATIVE APP 窗格中,选择 App Debug Mode: OFF

删除 Snowflake Native App 包和应用程序对象

使用 Teardown 选项来删除在解析的项目定义中定义的应用程序对象和包。

  • 在 VS Code 扩展 NATIVE APP 窗格中,选择 Teardown。当拆卸完成时,会出现确认消息。

更改会话上下文

您可以使用 Side Bar 窗格的 Account 部分来选择角色、数据库、架构和仓库。使用关联的下拉列表进行相应选择。

使用账户下拉列表登录,或在不同账户之间切换。

登录账户或在账户之间切换。

管理暂存区内容

Snowflake Extension for Visual Studio Code 支持直接在对象资源管理器中管理暂存区内容。

列出暂存区中的所有文件

  1. 在 VS Code OBJECT EXPLORER 中,导航到一个暂存区。

  2. 展开暂存区以查看所有暂存文件。

将文件从本地文件系统上传到暂存区

Snowflake Extension for Visual Studio Code 仅支持内部暂存区的上传,所有其他操作对内部和外部暂存区均适用。

  1. 在 VS Code OBJECT EXPLORER 中,导航到一个暂存区,然后选择 Upload (上传文件按钮)。

  2. 输入上传操作的可选参数。有关可选参数的列表,请参阅 PUT

  3. 导航到包含上传文件的文件夹,然后选择一个或多个文件并上传。

将文件从暂存区下载到本地文件系统

  1. 在 VS Code OBJECT EXPLORER 中,导航到一个暂存区。

  2. 选择 Download (下载结果按钮) 以下载所有文件,或展开暂存区。

  3. 选择并下载文件。

  4. 选择一个目录以完成下载。

从暂存区移除文件

另请参阅 REMOVE

  1. 在 VS Code OBJECT EXPLORER 中,导航到一个暂存区。

  2. 选择一个文件。

  3. 选择 Remove (删除按钮)。

VS Code 扩展设置

下表列出了 Snowflake Extension for Visual Studio Code 设置。

设置

描述

默认值

Autocomplete Object Details

选择 Snowflake 对象的自动完成条目后显示其详细信息

已禁用

Autocomplete Variant Keys

显示 OBJECT/VARIANT 键自动完成建议

已禁用

连接配置文件

指定 config.toml 文件的位置

未设置

启用基于频率的完成

启用基于频率的自动完成建议

已启用

启用原生应用程序面板

启用 Snowflake Native App 窗格

已禁用

Export CSV > Delimiter

指定列的分隔符

逗号

Export CSV > Header

在导出的 CSV 文件中包含标题行

已启用

Export CSV > Include Empty Rows

在导出的 CSV 文件中包含空行

不包含

Export CSV > Quotes

在导出的 CSV 文件中的所有值周围使用双引号

已启用

Highlight Query

将当前 SQL 语句的背景突出显示

已启用

原生应用程序:激活 Snowflake CLI 调试

为 Snowflake CLI 操作启用调试模式 (Snowflake Native App)

已禁用

Object Explorer: Search

在对象资源管理器中启用搜索

已启用

Query History: Item Limit

指定历史记录中显示的最大查询数。显示更多查询可能会影响性能。

1000

Set Client Session Keep Alive

指定是否在连接处于活动状态时无限期保持会话处于活动状态,而不考虑活动。如果未启用,您必须在四个小时不活动后再次登录。

已启用

Set HTTP Agent Keep Alive

为请求启用 Node.js 驱动程序套接字重用

已启用

Show Execute Above Statement

在每个语句上面启用可选择的执行操作

已启用

Skip Native App Support Message

在检测到 Snowflake Native App 项目时隐藏支持消息

已禁用

Skip YAML Support Message

隐藏 YAML 扩展建议消息

已禁用

Snowsql Config Path

如果设置,将从此文件加载连接配置。

未设置

Syntax Highlighting: Auto Detect SQL In Python

在 Python 字符串中启用 SQL 语句语法突出显示

已启用

VS Code 扩展预览设置

下表列出了 VS Code 扩展预览设置。

设置

描述

默认值

Enable Public Preview Features

启用扩展的公开预览版功能

已禁用

更改 VS Code 扩展设置

  1. 选择以下选项之一:

    • 在 Windows/Linux 上,选择 File > Preferences > Settings

    • 在 macOS 上,选择 Code > Settings > Settings

  2. Search settings 字段中,输入 Snowflake

  3. 选择 UserWorkspace 选项卡,查看或修改特定于用户或工作区的设置。

  4. 关闭 Settings 选项卡。

显示 VS Code 扩展的更改日志

  1. CMD+Shift+P (Mac) 或 CTRL+Shift+P (Windows)。

  2. 输入以下命令:

    Show Change Log
    
    Copy

卸载 VS Code 扩展

  1. 选择 Code > Settings > Extensions

  2. 选择扩展。

  3. 点击鼠标右键,然后选择 DisableUninstall

语言: 中文