首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可以对多个文件进行红移事务吗?

可以对多个文件进行红移事务吗?
EN

Stack Overflow用户
提问于 2015-10-10 06:35:52
回答 2查看 886关注 0票数 0

我正在尝试将5个文件从S3复制到5个红移表。我想做一种‘全部或无’类型的事务,如果其中一个COPY命令失败,则不会复制任何内容。因此,我尝试在TRANSACTION中复制数据,但事务仍在提交稍后在脚本中引发错误之前已完成的COPY语句。

有没有可能延迟完整的COPY提交,直到所有提交都无错误地完成?

EN

回答 2

Stack Overflow用户

发布于 2015-10-10 11:54:10

“复制命令是原子的和事务性的。”更多信息请访问:http://docs.aws.amazon.com/redshift/latest/dg/copy-usage_notes-multiple-files.html

我认为如果你真的想这样做,你可以先合并5个文件,然后使用一个拷贝,或者使用代码(使用任何可以通过驱动程序与Redshift对话的脚本)来模拟事务。

票数 1
EN

Stack Overflow用户

发布于 2015-10-10 15:08:22

正如@piggybox已经提到的,这不是直接可能的。但是您可以使用Python/ Java SDK对单个表进行复制并模拟一个事务。

如果您的表是面向用户的,并且您不希望在加载所有表之前数据不可见,则可以首先将数据加载到临时表,并使用配置表作为实时状态。您的Python/ Java脚本应该不断轮询这个配置表,一旦所有表的状态都是"ready/ good-to-go“,您就可以从临时表向实际的表进行深度复制(insert as select)。这些插入将是DML的,因此您可以在单个事务中控制它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33048101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档