2024 年 Snowflake CLI 版本说明¶
本文包含 Snowflake CLI 的版本说明,包括以下内容(如果适用):
行为变更
新功能
面向客户的错误修复
有关文档,请参阅 Snowflake CLI。
版本 3.2.2(2024 年 12 月 13 日)¶
新功能和更新¶
无
错误修复¶
修复了
No module name 'pandas'警告。
版本 3.2.1(2024 年 12 月 3 日)¶
新功能和更新¶
无
错误修复¶
修复了在使用较旧的 x86_64 Intel CPUs 时导致故障的问题。
版本 3.2.0(2024 年 11 月 25 日)¶
弃用¶
弃用了 Native App 项目定义文件中
application package实体的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复制到config.toml文件。修复了
snow connection generate-jwt命令在使用没有加密短语的密钥时失败的问题。修复了当文件所有者属于已授予默认权限的自定义组时,与 Snowflake CLI 创建的文件有关的 Windows 权限错误。
版本 3.1.0(2024 年 10 月 25 日)¶
弃用¶
向
snow spcs service status和snow spcs image-repository list-tags命令添加弃用警告。这些命令将在未来版本中移除。
新功能和更新¶
添加了以下命令:
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-labsPyPi 存储库迁移到snowflake-cli。要安装或升级 Snowflake CLI,可以执行类似下面的命令:
pip install --upgrade snowflake-cli
备注
Snowflake CLI 将继续支持使用
snowflake-cli-labs存储库名称,以便您有时间过渡可能使用的现有脚本和应用程序。
错误修复¶
无。
版本 2.8.2(2024 年 10 月 08 日)¶
新功能和更新¶
将
snowflake-cli-labsPyPi 存储库迁移到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 executePython 进行远程执行的支持,与现有的 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_deploySQL 脚本,默认使用应用程序数据库。在生成 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 日)¶
新功能和更新¶
添加了
snow object create命令。在
snowflake.yml项目文件的 Streamlit 定义中添加了对title字段的支持。为
snow stage copy命令添加了--auto-compress标志,以便在上传过程中启用 gzip 压缩文件。在
snowflake.yml架构中添加了新的native_app.application.post_deploy部分,以便在通过snow app run部署应用程序后执行操作。添加了
sql_scripthook 类型,以通过模板支持运行 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 缓存。
修复了因无效转义序列导致的
DeprecationWarning和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 objectlist、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命令中pip支持的任何源的支持。支持从 Snowflake 获取可用包列表,而不是直接从 Anaconda 获取可用包列表,并回退到旧方法(用于向后兼容)。由于新方法需要连接到 Snowflake,因此它会向以下命令添加连接选项:
snow snowpark buildsnow snowpark package lookupsnow 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 日)¶
新功能和更新¶
初始公开版本
错误修复¶
无。