2022 年 11 月¶
本月推出了以下新功能、行为变更和更新(增强、修复等)。如果您对这些新增功能有任何疑问,请联系 Snowflake 支持部门 (https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge)。
重要
每个版本都可能包含需要刷新 Web 界面的更新。
为确保这些更新不会影响您的使用,我们建议的一般做法是在部署每个 Snowflake 版本后刷新 Web 界面。
本主题内容:
新功能¶
密码策略¶
在此版本中,Snowflake 引入了密码策略。密码策略一个新的架构级对象,它指定了创建和重置密码以向 Snowflake 进行身份验证所必须满足的要求。Snowflake 允许为 Snowflake 账户以及账户中的单个用户设置密码策略,其中,用户级密码策略优先于账户级密码策略。
请注意,密码策略仅适用于 Snowflake 账户中的新密码。若要确保用户的现有密码满足密码策略中指定的要求,请使用 ALTER USER 语句将用户属性 MUST_CHANGE_PASSWORD
设置为 TRUE
。
有关详细信息,请参阅 密码策略。
适用于 Python 的 Snowpark API – 正式发布¶
我们很高兴地宣布,适用于 Python 的 Snowpark API 已正式发布。
Snowpark 是一种全新的开发者体验,为在数据管道中查询和处理数据提供了直观的 API。使用该库,您可以构建在 Snowflake 中处理数据的应用程序,而无需将数据移至您的应用程序代码运行所在的系统。
有关更多信息,请参阅 Snowpark Python 开发者指南。
Python UDFs – 正式发布¶
我们很高兴地宣布,Python UDFs (用户定义的函数)已正式发布。
现在,用户可使用 Python 编程语言编写自定义函数,并像调用内置函数一样调用这些函数。
有关更多信息,请参阅 Python UDFs 简介。
Python UDF 批处理接口 – 正式发布¶
我们很高兴地宣布,Python UDF 批处理 API 已正式发布。
Python UDF 批处理 API 可以定义 Python 函数,以 Pandas DataFrames 的形式成批接收输入行,并以 Pandas 数组或序列的形式成批返回结果。使用批处理 API 的 Python UDFs 与其他 Python UDFs 的调用方式相同。
有关更多信息,请参阅 矢量化 Python UDFs。
Python UDTFs – 正式发布¶
我们很高兴地宣布,Python UDTFs (用户定义的表函数)已正式发布。
Python UDTFs 将表函数的优势与 Python 编程的强大功能、灵活性和简易性相结合,从而扩展了 Snowflake 的原生开发功能。
有关更多信息,请参阅 用 Python 编写 UDTF。
适用于 Python 的 Snowpark Stored Procedures – 正式发布¶
我们很高兴地宣布,适用于 Python 的 Snowpark Stored Procedures 已正式发布,您可以使用 Snowpark API 在 Python 中编写存储过程。
在存储过程中,您可以使用 Snowpark API 让 Python 在 Snowflake 中托管您的数据管道。例如,当您需要在不运行客户端应用程序的情况下(如从任务中)执行 Snowpark 代码时,您可以编写存储过程。
有关更多信息,请参阅 使用 Python 编写存储过程。
SQL 更新¶
新 Account Usage 视图:PROCEDURES¶
在最近的版本中,Account Usage 视图中添加了 PROCEDURES 视图 (在 SNOWFLAKE 共享数据库中),以提供有关存储过程的信息。对于账户中的每个存储过程,PROCEDURES 视图会单独显示一行。
搜索优化服务:支持具有掩码策略和行访问策略的表 – 预览版¶
我们很高兴地宣布,在搜索优化服务中支持具有掩码策略和行访问策略的表已推出预览版。
在推出此功能之前,如果您试图将搜索优化添加到使用掩码策略或行访问策略的表中,则会发生错误。使用此功能可以提高对表中各列的查询性能。
有关更多信息,请参阅 搜索优化服务。
SELECT *:排除和重命名特定列¶
在此版本中,可以在 SELECT * 语句中排除或重命名特定列。
要排除一个或多个列,请使用列的名称来指定 EXCLUDE:
SELECT * EXCLUDE <col_name> ...
SELECT * EXCLUDE (<col_name>, <col_name>, ...) ...
要重命名一个或多个列,请使用列的原始名称和新名称来指定 RENAME:
SELECT * RENAME <col_name> AS <col_alias> ...
SELECT * RENAME (<col_name> AS <col_alias>, <col_name> AS <col_alias>, ...) ...
可以在同一语句中同时使用 EXCLUDE 和 RENAME。如果这样做,则必须先指定 EXCLUDE 再指定 RENAME,并且不能在 EXCLUDE 和 RENAME 中指定同一列。
例如,要选择 employee_table
中除 employee_id
列以外的所有列,并将 department_id
列重命名为 department
,请执行以下操作:
SELECT * EXCLUDE employee_id RENAME department_id as department FROM employee_table;
有关更多信息,请参阅 SELECT。
新 SQL 函数¶
最近版本中推出了以下函数:
函数类别 |
新函数 |
描述 |
---|---|---|
半结构化数据函数(数组/对象) |
返回一个新 ARRAY,其中包含来自某个输入 ARRAY 且其他输入 ARRAY 中不含的元素。 |
|
数字 |
像除法运算符 (/) 一样执行除法,但当除数为 0 或 NULL 时返回 0(而不是报告错误或返回 NULL)。 |
|
半结构化数据函数(数组/对象) |
返回一个新 ARRAY,其中只包含与输入 ARRAY 不同的元素。 |
用于发送电子邮件通知的新系统存储过程 – 预览版¶
我们很高兴地宣布,用于发送电子邮件通知的 SYSTEM$SEND_EMAIL() 系统存储过程已推出预览版。您可以调用此存储过程来发送来自任务、您自己的存储过程或交互式会话的电子邮件通知。
有关更多信息,请参阅 使用 SYSTEM$SEND_EMAIL 发送电子邮件通知。
新 Information Schema 表函数:NOTIFICATION_HISTORY¶
在此版本中,Snowflake Information Schema 中添加了一个新的表函数 NOTIFICATION_HISTORY。
此表函数可返回通过 Snowflake 发送的通知的历史记录,包括:
注意:此函数仅返回已处理的通知(已发送或已失败的通知)的有关信息。队列中的通知不会显示在历史记录中。
有关此表函数的更多信息,请参阅 NOTIFICATION_HISTORY。
新 Account Usage 视图:LOCK_WAIT_HISTORY¶
在此版本中,Snowflake 数据库中的 Account Usage 架构中添加了一个新的视图 LOCK_WAIT_HISTORY。
LOCK_WAIT_HISTORY 视图 返回事务详细信息,这些信息对分析被阻止的事务非常有用。输出中的每一行都包括正在锁定中等待的事务的详细信息,以及持有该锁定或正在等待该锁定的事务的详细信息。
有关更多信息,请参阅 使用 LOCK_WAIT_HISTORY 视图分析被阻止的事务。
虚拟仓库更新¶
Snowpark-Optimized Warehouses – 预览版¶
我们很高兴地宣布在 Amazon Web Services (AWS)、Microsoft Azure 和 Google Cloud 区域推出预览版 Snowpark-Optimized Warehouses。
有关更多信息,请参阅 Snowpark-Optimized Warehouses。
可扩展性更新¶
External Functions 中的请求和响应转换器 – 正式发布¶
我们很高兴地宣布,请求和响应转换器已正式发布。使用此功能可以更轻松地对外部函数使用的远程服务发送和接收的数据格式进行更改。
此功能允许您方便地:
将数据从 Snowflake 格式转换为远程服务的原生输入格式(请求转换器)。
将数据从远程服务的原生输出格式转换为 Snowflake 的格式(响应转换器)。
有关更多信息,请参阅 将请求和响应转换器与远程服务的数据结合使用。
数据治理更新¶
访问历史记录:添加了对 UDFs 和存储过程的支持¶
在此版本中,Snowflake 很高兴地宣布支持 Account Usage ACCESS_HISTORY 视图中的 UDFs、UDTFs、外部函数和存储过程。
有关详细信息,请参阅: