2023 年 6 月¶
本月推出了以下新功能、行为变更和更新(增强、修复等)。如果您对这些新增功能有任何疑问,请联系 Snowflake 支持部门 (https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge)。
重要
每个版本都可能包含需要刷新 Web 界面的更新。
为确保这些更新不会影响您的使用,我们建议的一般做法是在部署每个 Snowflake 版本后刷新 Web 界面。
本主题内容:
新功能¶
动态表 - 预览版¶
我们很高兴地宣布动态表的预览版。
动态表是声明式数据转换管道的构建模块。它们大大简化了 Snowflake 中的数据工程,并提供了一种可靠、经济高效和自动化的方式来转换您的数据以供使用。无需将数据转换步骤定义为一系列任务,也无需监控依赖关系和调度,您只需使用动态表定义转换的最终状态,然后将复杂的管道管理交给 Snowflake。
有关详细信息,请参阅 动态表。
与 Amazon S3 兼容的存储 – 正式发布¶
我们很高兴地宣布正式推出对访问 Amazon S3 兼容存储中数据的支持。您可以为与 Amazon S3 REST API 高度兼容的本地或其他云存储服务和设备创建外部暂存区。借助此功能,无论数据存储在何处,您都可以有效地管理、治理和分析数据。
有关更多信息,请参阅 使用兼容 Amazon S3 的存储。
将表、视图、函数和查询的引用传递给存储过程 – 预览版¶
我们很高兴地宣布推出将表格、视图、函数和查询的引用传递给存储过程的功能的预览版。
引用是表、视图、函数或查询的唯一标识符。将引用传递给存储过程时,该存储过程将使用创建引用的用户的活动角色或辅助角色执行操作。例如,如果调用存储过程“所有者权限”,可以创建并传入对表的引用,以允许存储过程使用您的活跃角色对表执行操作。
此外,如果表、视图或函数不是完全限定的,则使用创建引用时的当前数据库和架构(即创建引用的用户的数据库和架构)来解析对象名称。
有关更多信息,请参阅 将表、视图、函数和查询的引用传递给存储过程。
Snowpark ML:大规模机器学习 – 预览版¶
我们很高兴地宣布推出 Snowpark ML 的预览版。Snowpark ML 是一组 Python 工具,包括 SDKs 和底层基础设施,用于在 Snowflake 中构建和部署机器学习模型。该预览版包括基于 scikit-learn (https://scikit-learn.org/stable/)、xgboost (https://xgboost.readthedocs.io/en/stable/) 和 lightgbm (https://lightgbm.readthedocs.io/en/stable/) 等热门机器学习库的预处理和建模类。
Snowpark ML 与 Snowpark Python 配合使用。您可以使用 Snowpark DataFrames 保存训练或测试数据并接收预测结果。
有关更多信息,请参阅 Snowpark ML:Snowflake 中的端到端机器学习。
ML 函数 – 预览版¶
我们很高兴地宣布推出三款由机器学习算法提供支持的新分析工具的预览版。
这三个功能根据时间序列数据训练机器学习模型,以确定指定指标如何随时间变化,以及相对于其他功能如何变化。然后,该模型根据数据中检测到的趋势提供见解和预测。
预测:根据历史数据的趋势预测未来的指标值。
异常检测:标记与典型预期不同的指标值。
Contribution Explorer:帮助您找到以令人惊讶的方式影响指标的维度和值。
有关更多信息,请参阅 Snowflake Cortex ML 函数。
Native Application Framework – 预览版¶
我们很高兴地宣布推出 Native Apps Framework 预览版,该框架可让您创建数据应用程序,通过与其他 Snowflake 账户共享数据和相关业务逻辑,对其他 Snowflake 功能进行扩展。
有关详细信息,请参阅 关于 Native Apps Framework 和 教程:使用 Native Apps Framework 开发应用程序。
应用程序自定义事件计费 – 预览版¶
我们很高兴地宣布推出自定义事件计费预览版,这是一种基于使用情况的定价计划,提供商可以使用该计划向使用 Snowflake Native Apps Framework 构建的应用程序的使用者收取使用费。
有关详细信息,请参阅 付费列表定价模型 和 向应用程序添加计费事件。
Marketplace Capacity Drawdown Program – 正式发布¶
我们很高兴地宣布正式推出 Marketplace Capacity Drawdown Program,该计划允许与 Snowflake 签订容量合同的符合条件的客户使用其承诺的容量支付列表费用。
有关更多信息,请参阅 为列表付费。
Snowpipe Streaming 复制支持 – 预览版¶
在此版本中,我们很高兴地宣布支持 Snowpipe Streaming 和 Snowflake 复制。Snowflake 支持 Snowpipe Streaming 填充的 Snowflake 表及其关联的通道偏移从不同 区域、跨 云平台 的源账户到目标账户的复制和故障转移。Snowpipe Streaming 支持数据库复制和基于组的复制。
有关更多信息,请参阅 复制和 Snowpipe 流。
匿名过程 – 正式发布¶
在此版本中,我们很高兴地宣布全面支持创建匿名过程。匿名过程类似于存储过程,但不存储以供以后使用。
您可以使用 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。
有关更多信息,请参阅 表模式演化。
安全更新¶
访问控制:委派仓库管理的新权限 – 预览版¶
在此版本中,我们很高兴地宣布推出管理仓库的新权限预览版。
如果您需要将更改、暂停或恢复账户中任何仓库的能力委派给自定义角色,则可以向该角色授予 MANAGE WAREHOUSES 权限。授予 MANAGE WAREHOUSES 权限相当于授予账户中所有仓库的 MODIFY、 MONITOR 和 OPERATE 权限。
有关更多信息,请参阅 委派仓库管理。
SQL 更新¶
新 SQL 函数¶
此版本现在提供以下函数:
函数类别 |
新函数 |
描述 |
---|---|---|
地理空间函数(变换) |
将 GEOMETRY 对象从一个 空间参考系 (SRS) (link removed) 转换为另一个空间参考系。 此功能是预览版功能。 |
改进了带有 LIMIT 和 ORDER BY 子句的 SELECT 语句的性能 – 正式发布¶
在此版本中,我们很高兴地宣布,某些包含 LIMIT 和 ORDER BY 子句且长时间运行 SELECT 语句的性能已得到显著改进。所有客户均可立即使用这一改进,无需支付额外费用。
该改进通过修剪不会影响此类“Top K”查询结果的微分区来实现。额外的修剪适用于可表示整数的值(时间戳或整数,或显式转换为整数的变体,但不是表达式)是 ORDER BY 子句中指定的第一列或唯一列的查询。如果查询包含 JOIN 子句,则 ORDER BY 列必须来自事实表(或探测端),通常是两个表中较大的一个。
对小表的查询通常不会从此改进中受益。返回行数少于 LIMIT 子句中指定行数的查询或使用聚合的查询也不会从中受益。
请注意,并非所有查询(甚至并非所有满足这些要求的查询)都会从中受益。
有关微分区和查询修剪的更多信息,请参阅 微分区和数据聚类。
在 Snowpark、UDFs、UDTFs 和存储过程中支持 Python 3.10 – 预览版¶
在此版本中,我们很高兴地宣布,Snowpark Python、Python UDFs、Python UDTFs 和 Python 存储过程均支持 Python 3.10,所有账户均可使用这一预览版功能。
有关更多信息,请参阅:
在 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 视图。
数据加载更新¶
支持 Avro、Parquet、Orc 和 XML 的 REPLACE_INVALID_CHARACTERS¶
在此版本中,我们很高兴地宣布 COPY INTO 和 CREATE EXTERNAL TABLE 命令支持 Avro、Parquet、Orc 和 XML 的文件格式选项 REPLACE_INVALID_CHARACTERS。以前,该文件格式选项仅适用于 CSV 和 JSON。
有关更多信息,请参阅 CREATE FILE FORMAT。
数据治理更新¶
基于标签的掩码策略:支持数据库和架构 – 预览版¶
在此版本中,我们很高兴地宣布推出在数据库和架构上设置基于标签的掩码策略预览版。当列的数据类型与标签上策略集的数据类型相匹配时,数据工程师可通过此更新保护架构或数据库中的所有列。此外,当新列的数据类型与标签上策略集的数据类型相匹配时,新列也会受到保护。在数据库或架构上设置基于标签的掩码策略可以简化数据保护管理,因为您只需设置一次基于标签的策略,而不必对数据库或架构中的每一列设置掩码策略。
有关更多信息,请参阅 基于标签的掩码策略。
访问历史记录:跟踪由 DDL 操作修改的对象 – 预览版¶
在此版本中,我们很高兴地宣布可以在 Account Usage ACCESS_HISTORY 视图中预览通过 DDL 操作修改的跟踪对象。这些操作包括:
跟踪标签和策略分配的变化情况。
跟踪表和列的生命周期。
object_modified_by_ddl
列记录了这些更改。您可以使用此列来增强数据审核实践,并检测要分类的新对象,以满足 PII 检测要求。
有关更多信息,请参阅 访问历史记录。
Web 界面更新¶
将文件从暂存区加载到表中 – 正式发布¶
在此版本中,我们很高兴地宣布正式推出使用 Snowsight 将文件从暂存区加载到表中这一功能。
有关更多信息,请参阅 将文件从暂存区加载到现有表中。
新组织仅具有 Snowsight 访问权限¶
从 2023 年 5 月 30 日开始,新 Snowflake 组织只能访问 Snowsight,不能再访问 Classic Console。
有关更多信息,请参阅 关于 Snowsight 升级。