2024 年 Snowflake Connector for Python 版本说明

本文包含 Snowflake Connector for Python 的版本说明,包括以下内容(如果适用):

  • 行为变更

  • 新功能

  • 面向客户的错误修复

Snowflake 对 Snowflake Connector for Python 更新使用语义版本控制。

有关文档,请参阅 Snowflake Connector for Python

版本 3.12.3(2024 年 10 月 24 日)

安全修复

  • 解决了 CVE-2024-49750 引发的问题。有关更多信息,请参阅公告 GHSA-5vvg-pvhp-hv2m (https://github.com/snowflakedb/snowflake-connector-python/security/advisories/GHSA-5vvg-pvhp-hv2m)。

新功能和更新

  • 改进了 SSL 相关问题的错误消息,以提供更清晰的解决方法指导。

  • 改进了因超时而导致 SQL 执行取消的错误消息。

错误修复

  • 无。

版本 3.12.2(2024 年 9 月 11 日)

新功能和更新

  • 无。

错误修复

  • 改进了异步查询的错误处理,在异步查询失败时提供更详细、更翔实的错误消息。

  • 改进了指定中国区域的账户的顶级域推理,现在默认为 snowflakecomputing.cn

  • 改进了 snowflake.connector.util_text.random_string 的实施,以降低冲突的可能性。

  • 将 OCSP 失败打开警告消息的日志级别从 ERROR 更新为 WARNING。

版本 3.12.1(2024 年 8 月 20 日)

新功能和更新

  • 无。

错误修复

  • 修复了以下错误:在续订会话时记录会话令牌。

  • 修复了以下错误:禁用客户端遥测不起作用。

  • 修复了以下错误:在登录重试步骤中,以字符串形式传递 login_timeout 会引发 TypeError

  • 更新了连接器,在解析默认配置文件位置时使用 pathlib,而不是``os``。

  • 移除了大写 cryptogaphy 版本 pin。

  • 移除了对 snowflake-export-certs 脚本的引用,因为该脚本的支持模块已在上一版本中移除。

  • 增强了重试机制,以便在查询结果轮询过程中未收到服务器响应时处理瞬时网络故障。

版本 3.12.0(2024 年 7 月 26 日)

新功能和更新

  • 将文件传输中 HTTP 调用的默认连接超时设置为 10 秒,将套接字读取时间设置为 10 分钟。

  • 添加了连接多个域的功能。

  • 通过使用完全并行的下载逻辑,优化了 to_pandas() 性能。

  • 升级了从 g>=23.1.0、<25.0.0 to g>=23.1.0、<26.0.0 的密钥环依赖项。

错误修复

  • 修复了以下错误:在 snowflake-sqlalchemy 中指定 client_session_keep_alive_heartbeat_frequency 可能会导致连接器无响应。

  • 修正了错误的 private_key 连接参数类型提示。

版本 3.11.0(2024 年 6 月 18 日)

新功能和更新

  • 添加了对 token_file_path 连接参数的支持,以便在连接到 Snowflake 时从文件读取 OAuth 令牌。

  • 添加了对 debug_arrow_chunk 连接参数的支持,以便在箭头数据解析失败时调试原始箭头数据。

  • 添加了对 disable_saml_url_check 连接参数的支持,以便在 OKTA 身份验证中禁用 SAML URL 检查。

错误修复

  • 修复了以下错误:无法验证使用 SHA384 算法签署的 OCSP 证书。

  • 修复了以下错误:PUT 命令因 400 错误而失败时,状态代码显示为已上传。

  • 修复了以下错误:当前用户对配置文件路径的父目录没有正确权限时,会引发 PermissionError

  • 修复了以下错误:OCSP GET URL 包含斜线时,无法正确编码。

  • 修复了以下错误:SSO URL 不接受查询参数中的 :,如 https://sso.abc.com/idp/startSSO.ping?PartnerSpId=https://xyz.snowflakecomputing.cn/

版本 3.10.1(2024 年 5 月 21 日)

新功能和更新

  • 无。

错误修复

  • 移除了箭头数据转换过程中可能出现的错误日志消息。

版本 3.10.0(2024 年 4 月 29 日)

新功能和更新

  • fetch_pandas_all 添加了对结构化类型的支持。

错误修复

  • 修复了与 China S3 终端格式不正确有关的问题。

版本 3.9.1(2024 年 4 月 22 日)

新功能和更新

  • 修复了以下错误:在连接 China 终端时导致 HTTP 400 错误。

错误修复

  • 无。

版本 3.9.0(2024 年 4 月 18 日)

新功能和更新

  • 日志记录配置文件 中添加了对日志设置的支持。

  • 改进了连接 China 端点时的 S3 加速逻辑。

错误修复

  • 无。

版本 3.8.1(2024 年 4 月 9 日)

新功能和更新

  • 改进了容器化环境中的 externalbrowser 身份验证:

    • 指示浏览器不要在成功页面上提取 /favicon

    • 对空 socket.recv 调用使用简单的重试策略。

    • 添加 SNOWFLAKE_AUTH_SOCKET_REUSE_PORT 标志 (SNOWFLAKE_AUTH_SOCKET_REUSE_PORT=true),以设置底层套接字的 SO_REUSEPORT 标志(如 套接字手册页 (https://man7.org/linux/man-pages/man7/socket.7.html) 中所述)。

      • 在容器引擎完成向主机的端口转发之前,如果遵循本地主机回调 URL 中使用的随机端口,则设置此标志会很有用。

      • 然后,您可以使用以下类似命令,静态映射主机和容器之间的端口,并允许快速连续重复使用该端口:

        SF_AUTH_SOCKET_PORT=3037 SNOWFLAKE_AUTH_SOCKET_REUSE_PORT=true poetry run python somescript.py
        
        Copy
    • 添加 SNOWFLAKE_AUTH_SOCKET_MSG_DONTWAIT 标志 (SNOWFLAKE_AUTH_SOCKET_MSG_DONTWAIT=true),以进行非阻塞 socket.recv 调用并在出现错误时重试。

  • 添加了对架构查询中解析结构化类型信息的支持。

  • 升级了 platformdirs,从 >=2.6.0、<4.0.0 to >=2.6.0、<5.0.0。

  • 更新了诊断信息,以使用 system$allowlist,而不是 system$whitelist

  • 改进了清理逻辑,因此连接现在依赖解释器关闭而不是 __del__ 方法。

  • 使用 SnowflakeCursor.execute 对记录执行的查询时,日志记录级别从 DEBUG 更新到 INFO。

错误修复

  • 修复了以下错误:未对屏蔽日志中截断的密码进行掩码处理。

版本 3.7.1(2024 年 2 月 22 日)

新功能和更新

  • 升级了以下依赖项:

    • pandas 从版本 >=1.0.0、<2.2.0 to >=1.0.0、<3.0.0

    • cryptography 从版本 <42.0.0,>=3.1.0 到 >=3.1.0、<43.0.0

    • pyOpenSSL 从版本 >=16.2.0,<24.0.0 to >=16.2.0、<25.0.0

  • 将密钥环依赖项的下限升级到版本 23.1.0,以解决安全漏洞。

错误修复

  • 修复了十进制数据转换中的内存泄漏问题。

  • 修复了以下错误:write_pandas 没有截断目标表。

版本 3.7.0(2024 年 1 月 26 日)

新功能和更新

  • 添加了对 Python 3.12 的支持。

  • SnowflakeCursor.fetch_arrow_all 添加了新的布尔 force_return_table 参数,在行数为零的情况下强制返回 pyarrow.Table

  • 清理一些 C++ 代码警告和性能问题。

  • 针对隐含假设,使本地测试更加可靠。

  • 添加了以下支持:通过会话和主令牌使用现有连接进行连接。

  • 添加了以下支持:使用外部浏览器通过多 SAML IDP 进行身份验证,以连接到 Snowflake。

  • 改进了配置权限警告消息。

错误修复

  • 修复了 PyArrow 表类型提示的问题。

  • 修复了因 gcc13 缺少 cstdint 标题而导致的编译问题。

语言: 中文