2017-07-14 62 views
1

我正在处理来自SQL Server的数据并在处理完成后将其写回。pyodbc.ERROR现有连接被远程主机强制关闭

处理过程需要一些时间(4-5小时),所以当我开始加载时,我得到一个pyodbc.ERROR现有连接被远程主机强制关闭。

我想打听以下几点:

  • 如何保持连接活着吗?超时时间可以在哪里配置?
  • 当你在SQL Alchemy中定义引擎时,它是否会自动将你连接到数据库?
  • 更快的熊猫数据帧导出到SQL Server

下面的方法是我流的样本:

#read 
    data = pd.read_sql_table(src, engine, schema=myschema) 

    #step 1 
    data = myfunc1(<args>) 

    #step 2 
    data = myfunc2(<args>) 

    #step 3 
    data = myfunc3(<args>) 

    #write 

    data.to_sql(tgt, engine, schema , index=False, if_exists="append") 

回答

1

尽量利用Disconnect Handling - Pessimistic

engine = create_engine(<your_connection_string>, pool_pre_ping=True) 
+0

感谢您的建议。我很抱歉,但我不太熟悉池我如何实现这一点,当我的数据库是MS SQL?我正在浏览你提供的链接,但它似乎在调用仅针对Postgres的东西?如果我错了,请纠正我。 – mtryingtocode

相关问题