【发布时间】:2018-01-09 15:27:28
【问题描述】:
我正在尝试为 Redshift 中的一些大表运行 VACUUM REINDEX。当我在 SQLWorkbenchJ 中运行其中一个真空吸尘器时,它永远不会完成并在大约 2 小时后返回由对等方重置的连接。当我使用类似这样的方式运行真空吸尘器时,Python 中实际上会发生同样的事情:
conn_string = "postgresql+pg8000://%s:%s@%s:%d/%s" % (db_user, db_pass, host, port, schema)
conn = sqlalchemy.engine.create_engine(conn_string,
execution_options={'autocommit': True},
encoding='utf-8',
connect_args={"keepalives": 1, "keepalives_idle": 60,
"keepalives_interval": 60},
isolation_level="AUTOCOMMIT")
conn.execute(query)
有没有一种方法可以使用 Python 或 SQLWorkbenchJ 运行这些查询?我希望它们每个至少持续一个小时。这是预期的行为吗?
【问题讨论】:
-
检查表没有被锁定(检查锁)。从 linux 服务器或连接更稳定的设备上运行您的真空吸尘器
-
@JonScott 嗨!我实际上是从 linux 服务器运行 python 脚本,我知道表没有被锁定,因为我实际上看到 VACUUM REINDEX 从 AWS 控制台运行。
标签: python database amazon-redshift