Python 如何使多连接数据加载原子化?
我正在用Python编写一个奇特的应用程序,它将一组数据从S3加载到一个红移集群中。如果需要,应用程序针对多个表发出一组DDL,然后通过几个Python 如何使多连接数据加载原子化?,python,connection-pooling,python-2.6,atomicity,amazon-redshift,Python,Connection Pooling,Python 2.6,Atomicity,Amazon Redshift,我正在用Python编写一个奇特的应用程序,它将一组数据从S3加载到一个红移集群中。如果需要,应用程序针对多个表发出一组DDL,然后通过几个COPY语句将数据加载到这些表中 为了使整个过程尽可能快地运行,我使用了后端口,并将DDL和load活动并行地分布在多个连接上 它似乎工作得很好。现在我想让整个过程原子化 正在做的工作非常简单。不存在死锁的可能性,因为任何给定的表都将被更改,然后只加载一次。此外,在加载期间锁定资源也是可以的。最后,我对所有我感兴趣的活动进行红移。所以理论上,我想做的应该是可
COPY
语句将数据加载到这些表中
为了使整个过程尽可能快地运行,我使用了后端口,并将DDL和load活动并行地分布在多个连接上
它似乎工作得很好。现在我想让整个过程原子化
正在做的工作非常简单。不存在死锁的可能性,因为任何给定的表都将被更改,然后只加载一次。此外,在加载期间锁定资源也是可以的。最后,我对所有我感兴趣的活动进行红移。所以理论上,我想做的应该是可能的
现在我看到的选项是:
ThreadedConnectionPool.commitall()
和ThreadedConnectionPool.rollbackall()的犹太区等价物。(不幸的是,这些方法并不存在。)
有没有比这更好的方法我错过了?这些选项看起来都不太好。您可以使用两阶段提交协议执行您想要的操作 …如果服务器支持它,我对此表示怀疑