在 Lambda 加载程序超时后在 Redshift 中找不到临时表



我有一个 lambda 函数可以执行以下操作

create table xyz
copy xyz from S3

copy 命令的运行时间超过 5 分钟,lambda 在 5 分钟后超时。我们希望在 COPY 完成后看到它红移。

我希望看到临时表,S3 文件中的所有行都在 xyz 表中,但我根本没有看到临时表。这是正确的行为吗?

谢谢

是的

,临时表仅在创建它的会话中可见,并在连接关闭时删除。这是一种常见的数据库行为。您可以从不同的连接同时创建具有相同名称的临时表,并且不会发生名称冲突。在您的情况下,最好创建一个常规表,然后在需要时将其删除。

UPD:我不知道你的lambda是如何设置的。很有可能,如果您甚至看不到空表,则SQL代码在事务中运行,因此整个事情都会回滚。如果函数超时,您仍然不会看到填充的表,因为连接已失效。问题可能不在于您的 lambda,而在于您的副本设置,因为 5+ 分钟副本对于 Redshift 来说非常奇怪。文件大小是多少,群集配置是什么?您可能会尝试将太大的文件放入多节点群集中,而不将其分解为块。

最新更新