2023 年 6 月 7–8 日 – 7.19 版本说明(包含行为变更)¶
此版本推出了以下新功能、行为变更和更新(增强功能、修复等)。如果您对这些新增功能有任何疑问,请联系 Snowflake 支持部门 (https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge)。
重要
每个版本都可能包含需要刷新 Web 界面的更新。
为确保这些更新不会影响您的使用,我们建议的一般做法是在部署每个 Snowflake 版本后刷新 Web 界面。
本主题内容:
行为变更捆绑包¶
此版本包含以下行为变更捆绑包:
捆绑包名称 |
此版本中的状态 |
以前的状态 |
---|---|---|
默认禁用;管理员可启用以进行测试 |
不适用(在此版本中推出) |
|
默认启用;管理员可禁用以选择退出 |
默认禁用 |
|
一般情况下启用;管理员无法再启用/禁用 |
默认启用 |
每个捆绑包的状态将在计划于 7 月份发布的下一个行为变更版本中更改;但是,该计划可能会发生变化。
有关捆绑包状态及其如何影响账户的更多信息,请参阅 关于行为变更。
新功能¶
匿名过程 – 正式发布¶
在此版本中,我们很高兴地宣布全面支持创建匿名过程。匿名过程类似于存储过程,但不存储以供以后使用。
您可以使用 WITH...CALL 语法创建匿名过程。使用此命令,您可以创建由 WITH 子句中的参数定义的匿名过程,并调用该过程。使用此命令时,您不需要具有 CREATE PROCEDURE 架构权限的角色。
使用 Java 函数或过程处理程序读取文件 – 正式发布¶
在此版本中,我们很高兴地宣布,正式支持使用 Java 编写的 UDF 或过程处理程序代码读取暂存文件。
有关更多信息,请参阅 使用 Java UDF 读取文件 和 使用 Java 过程读取文件。
使用 Scala 函数或过程处理程序读取文件 – 预览版¶
在此版本中,我们很高兴地宣布,已针对支持使用 Java 编写的 UDF 或过程处理程序代码读取暂存文件推出预览版。
有关更多信息,请参阅 使用 Scala UDF 读取文件 和 使用 Scala 过程读取文件。
使用 Python 函数或过程读取文件 – 预览版¶
在此版本中,我们很高兴地宣布针对支持使用 SnowflakeFile
类读取文件的 Python 推出预览版。
SnowflakeFile
是 snowflake.snowpark.files
模块中的一个新类,用于为内部或外部暂存区的文件提供动态读取访问权限。使用 SnowflakeFile
,可以流式传输文件以完成任务,例如读取非结构化数据或在用户定义函数 (UDF)、用户定义的表函数 (UDTF) 或存储过程中使用自己的机器学习模型。
有关更多信息,请参阅:
JSON 和 CSV 的架构检测 – 预览版¶
在此版本中,我们很高兴地宣布 JSON 和 CSV 架构检测功能的预览版。架构检测功能使用 INFER_SCHEMA 函数自动检测一组暂存数据文件中的架构并检索列定义。正式发布 INFER_SCHEMA 函数,适用于 Apache Parquet、Apache Avro 和 ORC 文件。此预览功能将支持范围扩展为包含 JSON 和 CSV 文件。
有关更多信息,请参阅 从暂存的半结构化数据文件中对列定义进行架构检测。
表模式演化 – 预览版¶
在此版本中,我们很高兴地宣布推出表模式演化功能的预览版。现在,Snowflake 中的表结构可以自动演化,以支持从数据源接收的新数据结构。Snowflake 允许在新数据文件中添加新列或弃用缺失列中的 NOT NULL 约束,并支持弃用列或更改现有列的数据类型、长度或精度。
要启用表模式演化,您可以在创建或更改表时将 ENABLE_SCHEMA_EVOLUTION 参数设置为 TRUE。
有关更多信息,请参阅 表模式演化。
SQL 更新¶
在 Snowpark、UDFs 和存储过程中的 Python 3.9 支持 – 预览版¶
在此版本中,我们很高兴地宣布,Snowpark Python、Python UDFs 和 Python 存储过程中的 Python 3.9 支持将作为预览版功能提供给所有账户。
有关更多信息,请参阅:
UDFs、UDTFs 和存储过程支持按名称传递实参¶
现在,在调用 UDF、UDTF 或存储过程时,除了按位置传递实参外,还可以按名称传递实参。
例如,假设您使用以下语句创建了一个 UDF:
CREATE OR REPLACE FUNCTION add_numbers (n1 NUMBER, n2 NUMBER)
RETURNS NUMBER
AS 'n1 + n2';
若要按名称传递实参,请指定实参名称,后跟 => 和实参值。例如:
SELECT add_numbers(n1 => 10, n2 => 5);
您可以按任意顺序传递实参:
SELECT add_numbers(n2 => 5, n1 => 10);
有关更多信息,请参阅:
如果存在多个名称相同、实参个数相同、实参数据类型不同的函数或存储过程,可以在调用中指定实参名称,以指示执行哪个函数或存储过程。在调用中指定的实参名称优先于实参位置。有关更多信息,请参阅 重载过程和函数。
最后,以下内置函数支持按名称传递实参:
数据科学更新¶
使用 Snowflake 即将推出的 ML 功能¶
此版本为 Snowflake 数据库推出了一个新架构“ML”以及一个 ML_USER SNOWFLAKE 数据库角色,该角色授予包含共享 SNOWFLAKE 数据库的所有账户中的 PUBLIC 角色。
有关更多信息,请参阅:
:doc:` SNOWFLAKE 数据库中的 ML 架构 </sql-reference/snowflake-db>`
架构、角色和权限支持功能将在 Snowflake 2023 峰会的公开预览版中提供。
组织更新¶
ACCOUNTS 视图 (Organization Usage) – 预览版¶
在此版本中,我们很高兴地宣布在 ORGANIZATION_USAGE 架构中推出 ACCOUNTS 视图。ACCOUNTS 视图允许组织管理员获取有关组织中账户的详细信息,包括过去一年内删除的账户。
有关更多信息,请参阅 ACCOUNTS 视图。
Web 界面更新¶
新组织仅具有 Snowsight 访问权限¶
从 2023 年 5 月 30 日开始,新 Snowflake 组织只能访问 Snowsight,不能再访问 Classic Console。
有关更多信息,请参阅 关于 Snowsight 升级。