在运行启用了自动提交的查询期间AWS Lambda超时时,雪花会如何表现?

问题描述

我有一个lambda函数,正在雪花上运行此查询

CREATE OR REPLACE TABLE "foobar_table" AS (
    SELECT * FROM "foobar_view"
)

我想知道的是,当lambda仍然在运行此查询时15分钟后超时时,会发生什么情况。 Lambda使用自动提交功能连接到雪花,该功能会在关闭连接后提交所有更改。

到目前为止,我所观察到的一切使我感到困惑,我想知道这是否是一些UB,或者是否在文档的某个地方描述了这种情况。 Lambda函数仍在运行CREATE OR REPLACE sql时超时,我确定它尚未完成,但是由于某种原因创建了表,因此我可以在雪花中正常使用它。我以为它已经用部分数据创建了表,但这不是真的,因为表具有所有数据。如果lambda在完成查询之前已超时,我完全不知道此表在snwoflake中如何存在

解决方法

根据雪花docs,有一个名为 ABORT_DETACHED_QUERY 的参数,其内容如下:

指定由于会话的突然终止(例如,网络中断,浏览器终止,服务中断)而导致连接断开时,Snowflake对正在进行的查询执行的操作。

这是一个BOOLEAN,其默认值为FALSE,即使客户端(在您的情况下为Lambda)中止,也会导致正在进行的查询继续执行。