Python 红移卸载在sqlalchemy调用时终止
我正在使用SQLAlchemy从python脚本运行一些从Redshift到S3的大型卸载查询。(连同sqlalchemy红移包) 前几项工作(但最后一项工作会运行较长时间(~30分钟))在红移查询仪表板中标记为终止。一些数据加载到S3,但我怀疑不是全部。 我对查询本身的工作相当有信心,因为我过去曾使用它在本地下载Python 红移卸载在sqlalchemy调用时终止,python,amazon-s3,sqlalchemy,psycopg2,amazon-redshift,Python,Amazon S3,Sqlalchemy,Psycopg2,Amazon Redshift,我正在使用SQLAlchemy从python脚本运行一些从Redshift到S3的大型卸载查询。(连同sqlalchemy红移包) 前几项工作(但最后一项工作会运行较长时间(~30分钟))在红移查询仪表板中标记为终止。一些数据加载到S3,但我怀疑不是全部。 我对查询本身的工作相当有信心,因为我过去曾使用它在本地下载 SQLAlchemy是否会关闭耗时太长的查询?有没有办法设置或延长查询超时时间?脚本本身继续运行,就好像没有出现任何问题,红移日志也没有指出问题,但当查询被标记为终止时,通常意味着有
SQLAlchemy是否会关闭耗时太长的查询?有没有办法设置或延长查询超时时间?脚本本身继续运行,就好像没有出现任何问题,红移日志也没有指出问题,但当查询被标记为终止时,通常意味着有外部因素终止了进程。有两个地方可以在红移中控制超时:
与AWS/Redshift相比,sqlalchemy的问题更多 SQLAlchemy不会隐式地“提交事务”,因此,如果在未提交事务仍处于打开状态时关闭连接(即使查询本身似乎已完成),则该连接中的所有事务都会标记为已终止。 解决方案是用“提交事务”
conn = engine.connect()
conn.execute("""SELECT .... """)
conn.execute("""COMMIT TRANSACTION""")