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_eventsoptional_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 statussnow 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_rootbundle_root 和:file:generated_root 目录。

  • 统一了 snow stagesnow 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
    
    Copy

    备注

    Snowflake CLI 将继续支持使用 snowflake-cli-labs 存储库名称,以便您有时间过渡可能使用的现有脚本和应用程序。

错误修复

  • 无。

版本 2.8.2(2024 年 10 月 08 日)

新功能和更新

  • snowflake-cli-labs PyPi 存储库迁移到 snowflake-cli

    要安装或升级 Snowflake CLI,可以执行类似下面的命令:

    pip install --upgrade snowflake-cli
    
    Copy

    备注

    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 initsnow 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 createsnow 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 listsnow snowpark describesnow snowpark drop 命令返回值无效的问题。

  • snow app run 命令现在会显示 Snowflake 返回的警告。

版本 2.7.0(2024 年 8 月 2 日)

弃用

  • snow snowpark initsnow streamlit init 命令已标记为已弃用。这些命令仍然有效,但您应该使用新的 snow init 命令。

新功能和更新

  • snow connection add 命令添加了 --token-file-path 选项,以支持使用文件传递 OAuth 令牌。在 config.toml 文件中为连接定义设置 token_file_path 参数,也可支持该函数。

  • 添加了对使用 snow stage executesnow git execute Python 进行远程执行的支持,与现有的 EXECUTE IMMEDIATE 支持类似。

  • snow connection add --connection 选项中添加了对自动完成功能的支持。

  • 添加了 snow git 命令,支持使用外部模板初始化项目。

  • stage executestage 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 runsnow app deploy 命令现在能正确确定上传到 AWS S3 的大文件的修改状态。

错误修复

  • 正确处理暂存区存储后端返回的 NULL md5 值。

版本 2.6.1(2024 年 7 月 15 日)

新功能和更新

  • 无。

错误修复

  • 澄清了在没有为连接定义数据库的情况下执行 snow object create 时返回的错误消息。

  • 修复了当 save_logsfalse 且日志目录不存在时导致 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 deploysnow 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 缓存。

  • 修复了因无效转义序列导致的 DeprerationWarningSyntaxWarning 问题。

  • 改进了未安装 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 listdescribe 和``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 executesnow 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 stagesnow 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 createsnow 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 createsnow snowpark build 命令中创建虚拟环境时遇到的问题。

版本 2.1.1(2024 年 3 月 20 日)

新功能和更新

  • 初始公开版本

错误修复

  • 无。

语言: 中文