2024 年 Snowflake CLI 版本说明¶
本文包含 Snowflake CLI 的版本说明,包括以下内容(如果适用):
行为变更
新功能
面向客户的错误修复
有关文档,请参阅 Snowflake CLI。
版本 3.2.1(2024 年 12 月 3 日)¶
新功能和更新¶
无
错误修复¶
修复了在使用较旧的 x86_64 Intel CPUs 时导致故障的问题。
版本 3.2.0(2024 年 11 月 25 日)¶
弃用¶
弃用了 Native App 项目定义文件中
application package`实体的 :codenowrap:`manifest
字段。该字段不再具有任何功能。
新功能和更新¶
在 Native App 项目定义中添加了对事件共享的支持。
在
application
实体中添加了新的telemetry
部分。在
telemetry
部分添加了以下字段:share_mandatory_events
和optional_shared_events
。
向多个
snow
命令添加了新选项:snow sql
:添加了 :--retain-comments
选项,以支持向 Snowflake 传递注释。snow object create
:添加了--replace
和--if-not-exists
选项,以支持覆盖现有对象。snow stage copy
:添加了--recursive
选项,支持将本地文件和子目录复制到暂存区,包括 glob 支持。snow app version create
:添加了--label
选项,支持为各个版本和补丁添加标签。snow connection add
:添加了--no-interactive
选项,以跳过未指定参数的交互式提示。snow spcs service logs
:添加了以下选项,以改进日志检索和监控:--since
:从指定的 UTC 时间戳开始检索日志。--include-timestamps
:在日志条目中包含用于日志流的时间戳。--follow
:实时流日志。--follow-interval
:在日志流式传输期间设置自定义轮询间隔。--previous-logs
:从最后终止的容器中检索日志。
在使用
templates
处理器的 Native App 工件中,snow helpers v1-to-v2
命令现在可将 v1 模板引用转换为 v2 引用。更新了
snow --info
命令,以返回有关SNOWFLAKE_HOME
变量的信息。
错误修复¶
移除了使用
snow git execute
命令执行 Python 代码时必须存在现有 requirements.txt 文件的要求。以前,即使该文件是空文件也必须存在,只有这样命令才能成功执行。如果架构和表已经存在,移除了执行
snow app version create
命令时,需要具备权限才能创建表或架构的要求。修复了与配置文件更新有关的问题,当
connection.toml
文件存在时,不再错误地将连接从connections.toml
复制到confg.toml
文件。修复了
snow connection generate-jwt
命令在使用没有加密短语的密钥时失败的问题。修复了当文件所有者属于已授予默认权限的自定义组时,与 Snowflake CLI 创建的文件有关的 Windows 权限错误。
版本 3.1.0(2024 年 10 月 25 日)¶
弃用¶
向
snow spcs service status
和snow spcs image-repository list-tags
命令添加了弃用警告。这些命令将在以后的版本中移除。
新功能和更新¶
添加了以下命令:
:codenowrap:`snow connection generate-jwt`命令,旨在为 Snowflake 连接生成 JWT 令牌。
snow spcs service list-containers
,旨在提取与服务中的容器有关的信息。snow spcs service list-instances
,旨在提取与服务中的实例有关的信息。snow spcs service list-roles
,旨在提取与服务中的角色有关的信息。
向
snow spcs set
命令添加了--eai-name
选项,支持更新服务的外部访问集成。更新了
snow spcs image-repository list-images
命令,以显示镜像标签和摘要。
错误修复¶
修复了一个错误,当从不同目录调用带有
--project
标志的命令时,该错误可导致在当前工作目录而非项目根目录中创建deploy_root
、bundle_root
和:file:generated_root
目录。统一了
snow stage
和snow git execute
命令中的变量。对于 Python 文件,变量会去除前后的引号。修复了
snow stage list-files
在处理包含目录的路径时遇到的问题。
版本 3.0.2(2024 年 10 月 15 日)¶
新功能和更新¶
错误修复¶
修复了
snow snowpark deploy
在处理字符串默认值为空时的问题。添加了
pip
命令失败时的日志错误详情
版本 3.0.1(2024 年 10 月 08 日)¶
新功能和更新¶
将
snowflake-cli-labs
PyPi 存储库迁移到snowflake-cli
。要安装或升级 Snowflake CLI,可以执行类似下面的命令:
pip install --upgrade snowflake-cli
备注
Snowflake CLI 将继续支持使用
snowflake-cli-labs
存储库名称,以便您有时间过渡可能使用的现有脚本和应用程序。
错误修复¶
无。
版本 2.8.2(2024 年 10 月 08 日)¶
新功能和更新¶
将
snowflake-cli-labs
PyPi 存储库迁移到snowflake-cli
。要安装或升级 Snowflake CLI,可以执行类似下面的命令:
pip install --upgrade snowflake-cli
备注
Snowflake CLI 将继续支持使用
snowflake-cli-labs
存储库名称,以便您有时间过渡可能使用的现有脚本和应用程序。
错误修复¶
无。
版本 3.0.0(2024 年 10 月 1 日)¶
BCR (行为变更版本)变更¶
从版本 3.0.0 开始,Snowflake CLI 推出了以下重大变更:
对 Python 实施了以下更改:
放弃对 Python 3.10 以下版本的支持。
将 Snowpark 函数和过程的默认 Python 版本设为了 3.10。
将
snow object stage
命令替换为了snow stage
命令。将
snow snowpark init
和snow streamlit init
命令替换为了snow init
命令。从
snow snowpark
命令中移除了以前弃用的选项。修改了下列 Snowpark 命令的行为:
snow snowpark build
会为每个指定为目录的工件创建一个.zip
文件。非 Anaconda 依赖项被打包成名为dependencies.zip
的文件。snow snowpark deploy
会上传在构建步骤中创建的所有工件。dependencies.zip
文件将上传到项目定义指定的每个 Snowpark 暂存区。当获取可用包信息失败时,
snow snowpark package
命令不再回退 Anaconda Channel 元数据。备注
这些更改与 V1 项目定义文件兼容,但产生的文件布局有所不同。
新功能和更新¶
添加了以下命令:
snow spcs service execute-job
支持在当前架构中创建和执行作业服务。snow app events
从本地和客户 Snowflake Native App 安装中提取日志和跟踪。snow helpers v1-to-v2
将 snowflake.yml 文件从版本 1.x 迁移到版本 2。
添加了对以下内容的支持:
Streamlit 中的外部访问(API 集成和密钥)
SQL 模板中的 <% ... %> 语法
单个
snowflake.yml
项目定义文件中的多个 Streamlit 应用程序
将项目定义文件更新为了版本 2。
错误修复¶
修复了与
snow connection add
命令中的空格有关的问题。修复了在使用未加引号的无效 Snowflake 标识符作为版本名称运行
snow app version create
或snow app version drop
命令时出现的 SQL 错误。添加了添加连接时用于验证令牌文件和私钥路径正确性的检查。
修复了
spcs service name
实参描述中的错别字。它是service
而非service pool
的标识符。修复了错误处理问题,并改进了未提供工件时的消息传递。
改进了不兼容参数的错误消息。
版本 2.8.1(2024 年 9 月 10 日)¶
新功能和更新¶
无。
错误修复¶
修复了
git execute
命令不能正确处理目录名大写的问题。修复了
snow git setup
不能正确处理完全限定的存储库名称的问题。修复了在 API 集成或默认名称的密钥已存在的情况下,
snow git setup
命令的行为。修复了当包名称包含大写字母时,
snow snowpark package create
命令创建空压缩文件的问题。
版本 2.8.0(2024 年 8 月 28 日)¶
弃用¶
为项目定义文件中的
native_app.package.scripts
属性添加了弃用警告。
新功能和更新¶
添加了对模板中项目定义文件默认值的支持。
添加了对项目定义文件中
native_app.package.post_deploy
脚本的支持。这些脚本会在创建或更新 Snowflake Native App 包时执行。
目前,Snowflake REST APIs 仅支持 SQL 脚本:
post_deploy: [{sql_script: script.sql}]
。
错误修复¶
修复了
snow snowpark list
、snow snowpark describe
和snow snowpark drop
命令返回值无效的问题。snow app run
命令现在会显示 Snowflake 返回的警告。
版本 2.7.0(2024 年 8 月 2 日)¶
弃用¶
snow snowpark init
和snow streamlit init
命令已标记为已弃用。这些命令仍然有效,但您应该使用新的snow init
命令。
新功能和更新¶
为
snow connection add
命令添加了--token-file-path
选项,以支持使用文件传递 OAuth 令牌。在config.toml
文件中为连接定义设置token_file_path
参数,也可支持该函数。添加了对使用
snow stage execute
和snow git execute
Python 进行远程执行的支持,与现有的 EXECUTE IMMEDIATE 支持类似。在
snow connection add --connection
选项中添加了对自动完成功能的支持。添加了
snow git
命令,支持使用外部模板初始化项目。在
stage execute
和stage execute copy
命令中添加了对用户暂存区的支持。改进了 Snowpark 命令中对带引号的标识符的支持。
snow app run
命令现在支持从版本化或版本模式应用程序安装升级到非版本化模式。当提供
--force
标志时,snow app teardown
命令现在支持删除带有版本的包。snow app version create
命令现在支持在 Snowflake CLI 外部创建的应用程序包上运行。更新了
application.post_deploy
SQL 脚本,默认使用应用程序数据库。在生成 Snowsight URLs 时,Snowflake CLI 现在支持无区域主机。
snow app run
和snow app deploy
命令现在能正确确定上传到 AWS S3 的大文件的修改状态。
错误修复¶
正确处理暂存区存储后端返回的 NULL md5 值。
版本 2.6.1(2024 年 7 月 15 日)¶
新功能和更新¶
无。
错误修复¶
澄清了在没有为连接定义数据库的情况下执行
snow object create
时返回的错误消息。修复了当
save_logs
是false
且日志目录不存在时导致 Snowflake CLI 崩溃的问题。
版本 2.6.0(2024 年 7 月 11 日)¶
新功能和更新¶
添加了:code:
snow object create
命令。在
snowflake.yml
项目文件的 Streamlit 定义中添加了对title
字段的支持。为
snow stage copy
命令添加了--auto-compress
标志,以便在上传过程中启用 gzip 压缩文件。在
snowflake.yml
架构中添加了新的native_app.application.post_deploy
部分,以便在通过snow app run
部署应用程序后执行操作。添加了
sql_script
hook 类型,以通过模板支持运行 SQL 脚本。
添加了对
--env
命令行实参的模板化支持。适用于使用项目定义文件的命令。
实参格式:
--env key1=value1 --env key2=value2
。在模板中使用时,会覆盖环境变量值。
可在模板中通过
ctx.env.<key_name>
引用。模板按照以下优先级顺序(从高到低)读取环境变量:
--env
命令行实参中的变量。shell 环境变量中的变量。
项目定义文件
env
部分的变量。
现在,
snow sql
命令现在在执行前会显示查询文本。
错误修复¶
现在,向
snow app deploy
传递目录会部署应用程序工件规则中指定的任何包含的文件或子文件夹。修复了
snow sql
中的标记转义错误,当用户无意中使用类似标记的转义标签时,可能会出现这种错误。修复了
snow app teardown
无法拆除孤儿应用程序(已删除包的应用程序)的情况。修复了如果孤儿应用程序不是由 Snowflake CLI 创建,
snow app teardown
可能会遗留孤儿应用程序的情况。修复了以下问题:
snow app run
可能无法通过提示删除并重新创建应用程序来运行已删除包的现有应用程序。改进了终端输出禁制,以避免 ASCII 转义码。
改进了
snow app
命令中的暂存区差异输出。隐藏了
snow app validate
输出中的冗余差异。在已加载外部插件的文件中添加了日志信息。
添加了针对用户尝试在项目定义版本 1 中使用模板的警告。
改进了 Pydantic 验证错误的输出和格式。
改进了对 Streamlit 命令中带引号标识符的支持。
在应用程序升级期间,除非在
snowflake.yml
中显式设置,否则snow app run
命令不再覆盖调试模式。
版本 2.5.0(2024 年 6 月 20 日)¶
新功能和更新¶
添加了以下 Snowflake Native App 功能:
添加了
snow app bundle
命令,该命令可在项目目录中准备一个本地文件夹,并在创建 Snowflake Native App 的过程中将工件上传至暂存区。Snowflake Native App 项目可选择通过包含装饰器(如
@sproc
和@udf
)的 Snowpark Python 代码生成 CREATE FUNCTION 和 CREATE PROCEDURE 声明 ins 设置脚本。添加了
snow app validate
命令,该命令可验证 Snowflake Native App 设置脚本中 SQL 的有效语法、无效对象引用和最佳实践。向
snowflake.yml
架构添加了新的native_app.scratch_stage
字段,以便自定义 Snowflake CLI 用于运行验证的暂存区。
修改了
snow app deploy
和snow app run
命令,以触发设置脚本 SQL 的自动验证,并在验证失败时停止上传。用户可以通过启用相应命令的--no-validate
参数来替换这一检查。修改了
snow app version create --patch
命令,要求提供整数补丁编号,与 Snowflake 的预期保持一致。
添加了以下命令以支持笔记本:
snow notebook execute
实现 Snowflake Notebook 的无头执行。snow notebook create
根据暂存区的文件创建 Snowflake Notebook。
为项目定义文件添加了模板支持。模板变量现在可以在项目定义文件的任何地方使用。
为
snow connection add
命令添加了--default
参数,以便用户指定一个连接作为默认连接。
错误修复¶
修复了格式不正确的
config.toml
文件的错误处理问题。修复了包含了如
snowflake
等隐式命名空间包的Snowpark 项目依赖项的 ZIP 打包问题。使用
--replace
参数部署函数或过程,现在可以复制所有授权。修复了 MFA 缓存。
修复了因无效转义序列导致的
DeprerationWarning
和SyntaxWarning
问题。改进了未安装 Docker 时
snow spcs image-registry login
中的错误消息。改进了 Snowflake Native App 项目工件规则冲突的检测
为使用带空格和引号的标识符的应用程序、Streamlit 和笔记本修复了 URL 生成。
版本 2.4.1(2024 年 6 月 12 日)¶
新功能和更新¶
无。
错误修复¶
修复了与 MFA 缓存和 GCP 部署相关的问题。
版本 2.4.0(2024 年 5 月 31 日)¶
新功能和更新¶
向
snow app teardown
命令添加了--cascade
选项,可自动删除应用程序拥有的所有应用程序对象。向
snow object
命令添加了外部访问集成。向
snow object
list
、describe
和``drop`` 命令添加了别名,用于以下内容:snow stage
用于暂存区snow git
用于 Git 存储库暂存区snow streamlit
用于 Streamlit 应用程序snow snowpark
用于 Snowpark Python 过程和函数snow spcs compute-pool
用于计算池snow spcs image-repository
用于镜像存储库snow spcs service
用于服务
向
snow sql
命令添加了以下支持:可与
snowflake.yml
文件一起使用。snowflake.yml
的新env
部分中定义的变量可用于扩展模板。通过指定多个
-f/--file
选项,支持从多个文件执行查询。
向
snow git execute
和snow stage execute
命令添加了传递输入变量的支持。添加了以下
snow cortex
命令,以支持 Snowflake AI 和 ML:complete
:使用您选择的语言模型生成对问题的回复。extract-answer
:从文本文档中提取给定问题的答案。sentiment
:返回给定英语输入文本的情绪分数。summarize
:总结给定的英语输入文本。translate
:将文本从指定的或检测到的源语言翻译成目标语言。
向
snow
命令添加了 tab-completion。添加了以下改进:
执行没有实参或选项的
snow
命令时,现在会自动显示命令行帮助(如在snow --help
中一样)。改进了对带引号标识符的支持。
错误修复¶
修复了当一个版本有两个或两个以上现有补丁时,使用
snow app version create
创建补丁的问题。使用
--format=json
时添加了尾随换行符,以避免某些终端在输出末尾添加%
以表示没有换行。在交互式环境中默认启用
--interactive
选项,并添加了--no-interactive
选项来禁用提示。
版本 2.3.1(2024 年 5 月 20 日)¶
新功能和更新¶
无。
错误修复¶
修复了 Snowflake Native Apps 源工件映射逻辑中的错误。
版本 2.3.0(2024 年 5 月 15 日)¶
新功能和更新¶
添加了
--info
选项,以便snow command
显示配置的功能标志。将
-D/--variable
选项添加到了snow sql
命令,以支持 SQL 输入(客户端查询模板)中的变量替换。添加了对
snow stage
和snow git execute
命令中完全限定暂存区名称的支持。允许指定文件和目录,作为
snow app deploy <some-file> <some-dir>
命令的实参。向
snow app deploy
命令添加了新选项:--recursive
,以递归方式同步所有文件和子目录。--prune
,从暂存区移除指定的文件(如果它们在本地不存在)。
优化了 Snowpark 依赖项搜索,减小了
.zip
工件的大小和 Snowpark 项目的 Anaconda 依赖项数量。改进了针对损坏的
config.toml
文件的错误消息。
错误修复¶
修复了导致不必要重新上传文件的
snow app
命令问题。修复了当本地状态和远程暂存区相同时,
snow app run
命令未升级应用程序的问题。修复了在 Windows 上处理暂存区 pat 分隔符的问题。
版本 2.2.0(2024 年 4 月 25 日)¶
已弃用的功能¶
备注
以下功能在此版本中已弃用,将在 Snowflake 发布 Snowflake CLI 3.0.0 时移除。请考虑更新任何使用这些已弃用功能的现有脚本。
snow snowpark package lookup
命令不再对 PyPi 执行检查。使用--pypi-download
或--yes
不起作用,并引发警告。该命令现在仅检查包在 Snowflake Anaconda 通道中是否可用。snow snowpark package create
更改:--pypi-download
或--yes
选项已弃用,不起作用,并引发警告。该命令始终对 PyPi 进行检查。--allow-native-libraries
选项已弃用,取而代之的是布尔型--allow-shared-libraries
选项。使用已弃用的选项会引发警告。
snow snowpark build
更改:--pypi-download
选项已弃用,不起作用,并引发警告。该命令始终对 PyPi 进行检查。--check-anaconda-for-pypi-depts
选项已弃用,并引发警告。改用--ignore-anaconda
选项。--package-native-libraries
选项已弃用,并引发警告。改用--allow-shared-libraries
选项。
snow object stage
命令已弃用,并引发警告。这些命令替换为snow stage
命令。请考虑迁移使用snow object stage
命令的任何现有脚本。
新功能和更新¶
在 Streamlit 项目定义
name
参数中添加了对完全限定名称 (database.schema.name
) 的支持。在
spcs image-repository
命令中添加了对完全限定镜像仓库名称的支持。向
snow spcs service create
和snow spcs compute-pool create
命令添加了--if-not-exists option
选项。为
snow spcs image-repository create
命令添加了--replace
和--if-not-exists
选项。添加了对 Snowflake Connector for Python 诊断报告的支持。
添加了
snow app deploy
命令,该命令可创建应用程序包并将本地更改同步到暂存区,无需创建或更新应用程序。向
snow connection list
输出添加了is_default
列,以突出显示默认连接。更新了
snow snowpark package create
命令:添加了
--ignore-anaconda
选项,以在 Snowflake Anaconda 通道中禁用包查找,以便从 PyPi 下载依赖项。添加了
--skip-version-check
选项,以免比较需求和 Anaconda 之间的依赖项版本。添加了
--index-url
选项,以设置用于包查找的 Python 包索引的基础 URL。
更新了
snow snowpark build
命令:添加了
--skip-version-check
选项,以免比较需求和 Anaconda 之间的依赖项版本。添加了
--index-url
选项,以设置用于包查找的 Python 包索引的基础 URL。
向
snow stage copy
命令添加了--recursive
选项,以便从暂存区复制时在本地重现目录结构。添加了以下
snow git
命令,在 Snowflake 中支持 Git 存储库:snow git setup
:设置 Git 存储库暂存区并创建所有必要对象。snow git fetch
:将源存储库中的新更改提取到 Snowflake 存储库。snow git list-branches
:列出存储库中的所有分支。snow git list-tags
:列出存储库中的所有标签。snow git list-files
:列出指定分支、标签或提交上的所有文件。snow git copy
:将指定分支、标签或提交的文件复制到暂存区或本地目录。snow git execute
:为存储库中的文件运行 SQL EXECUTE IMMEDIATE 命令。
添加了
snow stage execute
命令,以便从暂存区路径运行 SQL EXECUTE IMMEDIATE 命令。向
snow stage list-files
命令添加了--pattern
选项,支持使用正则表达式来筛选结果。添加了对
snow snowpark
命令中 :codenowrap:pip
支持的任何源的支持。支持从 Snowflake 获取可用包列表,而不是直接从 Anaconda 获取可用包列表,并回退到旧方法(用于向后兼容)。由于新方法需要连接到 Snowflake,因此它会向以下命令添加连接选项:
snow snowpark build
snow snowpark package lookup
snow snowpark package create
错误修复¶
在
spcs image-repository list-tags
命令中为图像名称参数添加了--image-name
选项,以便与其他命令保持一致。修复了以下问题:
spcs image-registry login
错误没有正确格式化。项目定义不再接受额外的字段。任何额外的字段都会导致错误。
为使用
--project
选项的构建修复了 Snowpark 构建路径的空 zip 文件问题。为
snow snowpark build
命令改进了错误消息。修复了 Snowflake Anaconda 通道上包查找的版本解析。
修复了在处理包含短划线的数据库、架构和角色标识符时遇到的问题。
修复了
snow connection test
命令中的架构替换错误。由于 Windows OSes 存在问题,当配置文件权限对于 Windows 系统来说太宽时,Snowflake CLI 不会显示警告。
改进了在角色、仓库或数据库不存在时的
snow connection test
错误消息。
版本 2.1.2(2024 年 3 月 27 日)¶
新功能和更新¶
添加了
pip
作为 Snowflake CLI 依赖项。优化了
snow connection test
命令。
错误修复¶
修复了在
snow snowpark package create
和snow snowpark build
命令中创建虚拟环境时遇到的问题。
版本 2.1.1(2024 年 3 月 20 日)¶
新功能和更新¶
初始公开版本
错误修复¶
无。