You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Polars+connectorx读取MS SQL Server表时遇超时错误求助

解决Polars+connectorx连接SQL Server 2014超时(Timed out in bb8)问题
  • 增加查询超时时间
    bb8是connectorx的连接池组件,超时通常是默认时间不足以完成查询/连接。在read_sql中显式设置更长的超时参数(单位:秒),比如针对大表或慢查询设置10分钟:
import polars as pl
from connectorx import read_sql

conn_str = "mssql://username:password@server_ip:1433/db_name?driver=ODBC+Driver+17+for+SQL+Server"
query = "SELECT * FROM target_table"

# 设置超时为600秒(10分钟)
df = pl.from_arrow(read_sql(conn_str, query, timeout=600))
  • 验证连接字符串正确性
    SQL Server 2014需要匹配兼容的ODBC驱动,确保连接字符串包含正确的驱动版本(推荐ODBC Driver 17,2014支持该版本),同时检查服务器地址、端口、认证信息是否无误。避免遗漏驱动参数导致连接异常。

  • 拆分大查询
    如果目标表数据量过大,一次性读取容易超时。可以按主键、日期等字段分段查询,再用Polars合并结果:

# 按ID分段读取示例
df1 = pl.from_arrow(read_sql(conn_str, "SELECT * FROM target_table WHERE id <= 50000", timeout=300))
df2 = pl.from_arrow(read_sql(conn_str, "SELECT * FROM target_table WHERE id > 50000", timeout=300))
final_df = pl.concat([df1, df2])
  • 排查网络与数据库负载
    确认Jupyter所在机器与SQL Server之间网络通畅,无防火墙/安全组拦截端口(默认1433);检查SQL Server当前是否有高负载、慢查询阻塞,优先清理数据库侧的性能瓶颈。

  • 调整connectorx版本
    部分新版本connectorx对旧版SQL Server兼容性可能存在问题,尝试降级或升级版本:

# 降级到0.3.2版本
pip install connectorx==0.3.2
# 或升级到最新稳定版
pip install --upgrade connectorx

内容的提问来源于stack exchange,提问作者klam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 03:50:40