2022_05 捆绑包¶
本主题介绍当月的以下行为变更(如果有):
已弃用的功能。
已启用的捆绑包变更。
已实现的其他非捆绑包变更。
如果您对这些变更有任何疑问,请联系 Snowflake 支持部门 (https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge)。
有关本月推出的新功能、增强功能和修复的详细信息,请参阅 2022 年 8 月。
重要
除非另有说明,这些更改都位于 2022_05 捆绑包中,该捆绑包在 6.29 版本中默认启用。
本主题内容:
安全变更¶
密钥对身份验证:发放时间必须为 1 天或更短¶
使用 JSON Web 令牌 (JWT) 的密钥对身份验证已更改如下:
- 之前:
JWT 令牌允许在几秒钟内提交发放时间和到期时间。如果这些值以毫秒为单位提交,则 Snowflake 会将毫秒值视为秒。
JWT 令牌允许未来的发放时间。
- 现在:
JWT 令牌现在允许以毫秒或秒为单位的发放时间和到期时间。
JWT 令牌不再允许未来的发放时间。如有必要,请更新令牌生成流程,以确保发放时间值不是未来时间。
SQL 变更 – 常规¶
事务 IDs 和时间戳的变更¶
事务 IDs 增大,所选系统函数返回的时间戳提高了精度:
- 之前:
事务 ID 值约为 13 位数字。
时间戳具有毫秒级精度。
- 现在:
事务 ID 现在是有符号的 64 位(长)整数。值范围是
-9,223,372,036,854,775,808 (-263)
至9,223,372,036,854,775,807 (263 – 1)
。时间戳转换为纳秒精度。
此变更具有以下影响:
以下命令和函数的事务 IDs 大约是以前值的一百万倍:
SHOW TRANSACTIONS (
id
列)DESCRIBE TRANSACTION (
id
列)CURRENT_TRANSACTION (函数的输出)
LAST_TRANSACTION (函数的输出)
SHOW LOCKS (
transaction
列)
以下系统函数的时间戳输出已从毫秒精度转换为纳秒精度:
SYSTEM$LAST_CHANGE_COMMIT_TIME (函数的输出)
SQL 变更 – 命令和函数¶
GET_DDL 函数:包含双引号和句点的标识符的输出变更¶
GET_DDL 函数的输出已更改如下:
- 之前:
如果字符串包含双引号,则 GET_DDL 无法正确返回对象或列名称。如果名称包含双引号,则双引号前面必须有另一个双引号,从而导致字符串包含一对双引号;但是,该函数仅返回其中一个双引号。
例如,表的名称为
"foo""one"
。对表执行 GET_DDL 错误地返回"foo"one"
作为表的名称。因此,函数输出不能用于重新创建表。此外,如果句点位于名称的开头或紧跟在字符串中的双引号之后, GET_DDL(以及接受完全限定对象名称作为字符串的其他函数)无法分析指定的名称。
例如,不支持将以下字符串用作对象名称:
".foo"
("
解析为架构名称,FOO"
解析为对象名称)"public"".foo"
(public"
解析为架构名称,FOO"
解析为对象名称)
- 现在:
GET_DDL 正确且成功地返回包含双引号的对象和列名称。
此外, GET_DDL (以及接受完全限定对象名称的其他函数)能够分析指定的对象名称,在这些对象名称中句点位于名称开头或紧跟在字符串中的双引号之后。
SQL 变更 – 使用情况视图和 Information Schema 视图/表函数¶
FUNCTIONS 视图 (Information Schema):视图中的新列¶
Information Schema FUNCTIONS 视图的输出现在包括以下新列:
列名称 |
数据类型 |
描述 |
---|---|---|
PACKAGES |
STRING |
指定函数请求的包。 |
RUNTIME_VERSION |
STRING |
指定函数的运行时版本。如果函数是 SQL 或 Javascript,则为 NULL |
INSTALLED_PACKAGES |
STRING |
列出函数安装的所有包。仅适用于 Python 函数的输出。 |
数据管道变更¶
DESCRIBE STREAM / SHOW STREAMS 命令:输出中的新 INVALID_REASON 列¶
DESCRIBE STREAM 和 SHOW STREAMS 命令的输出现在包括以下列:
列名称 |
数据类型 |
描述 |
---|---|---|
INVALID_REASON |
STRING |
指定无法成功查询流内容的原因。引入此列是为了支持将来的功能。引入此列时,返回的唯一值将是 N/A。 |
为了帮助限制此变更的影响,该列已添加为输出中的最后一列。
数据湖变更¶
SHOW EXTERNAL TABLES 命令: LOCATION 列为数据使用者返回 NULL¶
提供商可以通过 Snowflake Secure Data Sharing 将其他数据库对象内的外部表包含在使用者账户共享中。
当使用者账户中的用户执行 SHOW EXTERNAL TABLES 命令时,共享外部表的输出已更改如下:
- 之前:
LOCATION 列显示了针对导入共享中外部表的外部表定义中的外部暂存区和文件夹路径(即,为使用者账户中的外部表返回的相同信息)。
- 现在:
LOCATION 列为导入共享中的外部表显示 NULL。
Snowflake CLI、连接器、驱动程序和 SQL API 变更¶
Snowflake SQL API:移除较旧的端点¶
Snowflake SQL API 的较旧、已弃用的端点不再可用。这包括以下端点:
/api/statements/
/api/statements/<statementHandle>
/api/statements/<statementHandle>/cancel
对这些端点的调用现在返回 HTTP 404 错误代码。
您必须确保使用的是较新版本的 SQL API。有关更多详细信息,请参阅《关于 SQL API 端点》。