【问题标题】:Running Big Queries on Athena using Lambda使用 Lambda 在 Athena 上运行大查询
【发布时间】:2020-05-21 10:03:54
【问题描述】:

我们知道 Lambda 会在执行 15 分钟后超时。我正在寻找一种方法来执行一个非常庞大的数据集上的 Athena 查询。从 Lambda 调用查询会引入 Lambda 在查询处理之前超时的问题。我的最终目标是调用查询并知道查询何时完成,以便处理结果。可以使用状态机查询 Athena 吗?或者 Lambda 是否仅通过调用 athena 而不是等待结果来运行,我将在我希望查询运行的持续时间之后查询 athena 以获取结果?任何其他想法将不胜感激。

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-athena aws-step-functions


    【解决方案1】:

    使用 Athena,您可以发起一个查询,结果会返回一个唯一的 Athena 查询执行 ID。 Athena 异步执行查询。 Athena 最终将查询结果存储在 S3 中。您可以稍后通过传递原始查询执行 ID 进行第二次 API 调用来检索这些结果。

    Working with Query Results, Output Files, and Query History

    【讨论】:

    • 所以只需调用 athena 查询并在调用后让我的 lambda 超时,几个小时后检查结果应该可以工作
    • 没有。您的 Lambda 不会超时。调用 Athena 查询,根据需要保留查询 ID,或者简单地将其作为 Lambda 响应的一部分返回,然后退出 Lambda。它的工作已经完成。
    • 好的,所以雅典娜查询将在后台运行?我的假设是 lambda 执行将暂停,直到查询运行,就像单线程操作一样。
    • 是的。如果您查看 API,您会看到您“开始”执行查询。
    • 使用 start_qeury_execution 的调用是异步的 - 不是阻塞的。查询将在“后台”继续,发起查询的 Lambda 可以立即退出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多