首页 > 解决方案 > 随时间变化的 Lambda 和 SQL 查询

问题描述

我想部署多个 Lambda 函数,每个函数都发出 Athena SQL 查询。此查询可能会根据所涉及的表的架构更改而更改。

我正在考虑在 s3 中创建一个 sql 文件,或者在每次查询更改时重新部署这个 s3 lambda 函数。这个用例有什么推荐的方法吗?

标签: sqlamazon-web-servicesaws-lambda

解决方案


这取决于以下哪个更重要。

  • 修改SQL语句的速度
  • Lambda 函数执行速度

您可以让 Lambda 函数访问 S3 存储桶以在每次调用时获取 SQL 文件,但这会非常低效且成本更高。您可以通过使用缓存策略在将其拉下之前检查文件是否已更改(通过哈希/校验和)来稍微改进这一点。

更好的方法是将 SQL 包含在函数中,并在您想要更改 SQL 时简单地重新部署。如果没有进一步的上下文,我不能说这是否适合您的需求(也许您需要能够非常快速地交换 SQL。)部署 Lambda 函数可能会非常快,但是如果设置正确(更新单个函数不到 1 分钟)。

可能还有第三种方法,您可以参数化您的 Lambda 函数和 SQL 命令,这样您就不需要频繁更改 SQL,只需将不同的参数传递给函数。


推荐阅读