我正在用 Pandas 和 Postgres 做很多 ETL。我有大量空闲连接,其中许多都标有COMMIT
和ROLLBACK
,我不确定如何防止长时间处于空闲状态而不是关闭。我用来写入数据库的主要代码是使用 pandas to_sql
:
def write_data_frame(self, data_frame, table_name):
engine = create_engine(self.engine_string)
data_frame.to_sql(name=table_name, con=engine, if_exists='append', index=False)
我知道这绝对不是 PostgreSQL 的最佳实践,我应该做一些事情,比如将参数传递给存储过程或函数或其他东西,但这就是我们设置从非 Postgres 数据库/数据源获取 data_frames 并上传到 Postgres 的方式.
我的 pgAdmin 看起来像这样:
有人可以指出我将来如何避免这么多空闲连接的正确方向吗?我们的一些数据库连接是长期存在的,因为它们是连续的“批处理”过程。但似乎一些一次性事件使连接处于打开状态和空闲状态。