我试图在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来运行这些查询?我希望他们每个人至少能坚持一个小时。这是预期的行为吗?在
简短回答
您可能需要在python脚本中添加一种机制,以便在重新索引失败时基于https://docs.aws.amazon.com/redshift/latest/dg/r_VACUUM_command.html重试
但是
有几件事需要注意(如果你已经知道,我很抱歉)
那么这又如何回答这个问题呢?在
如果您的表使用的是交错的,则需要首先检查是否需要重新索引?。示例查询
把一切都集中起来
相关问题 更多 >
编程相关推荐