如何从 lambda 函数异步传递红移查询?

Posted

技术标签:

【中文标题】如何从 lambda 函数异步传递红移查询?【英文标题】:How to asynchronously pass redshift query from lambda function? 【发布时间】:2020-12-03 04:35:56 【问题描述】:

我想从一个 lambda 函数中执行一组 redshift 中的复制命令,在该函数中,我将大约 100 GB 的文件从 S3 复制到 redshift 中的表中。我不能为此使用 Redshift Data API(因为我现在无法为集群提供秘密 arn,而且在我的情况下获取临时凭据也不理想)。

我曾尝试使用 psycopg2 库,但一旦 lambda 函数超时,执行也会停止。

有什么方法可以将查询异步传递给 redshift,并且当 lambda 函数超时时,查询仍会继续在 redshift 中执行?

【问题讨论】:

我给了你答案the last time you asked this question。 【参考方案1】:

对不起,没有。这是 ODBC / JDBC 连接的基础——如果连接被删除,事务将被中止。几年前,我有一个小的 EC2 重复 Lambda SQL 到 Redshift,这样 Lambda 就可以在不关闭连接的情况下结束。效果很好,但在无服务器解决方案的中心有一个服务器并不完全正确。如果你愿意,你可以往下走。

这就是 Redshift Data API 向前迈出一大步的原因

【讨论】:

以上是关于如何从 lambda 函数异步传递红移查询?的主要内容,如果未能解决你的问题,请参考以下文章

如何将事件信息从 aws API Gateway get 传递给 Lambda?

从 Python Lambda 函数连接 Athena SQL 查询中的变量

lambda查询

将 SQL 查询转换为红移

亚马逊红移中的上次更新查询计数

如何优化与自身连接表的红移查询?