sql - 随时间变化的 Lambda 和 SQL 查询
问题描述
我想部署多个 Lambda 函数,每个函数都发出 Athena SQL 查询。此查询可能会根据所涉及的表的架构更改而更改。
我正在考虑在 s3 中创建一个 sql 文件,或者在每次查询更改时重新部署这个 s3 lambda 函数。这个用例有什么推荐的方法吗?
解决方案
这取决于以下哪个更重要。
- 修改SQL语句的速度
- Lambda 函数执行速度
您可以让 Lambda 函数访问 S3 存储桶以在每次调用时获取 SQL 文件,但这会非常低效且成本更高。您可以通过使用缓存策略在将其拉下之前检查文件是否已更改(通过哈希/校验和)来稍微改进这一点。
更好的方法是将 SQL 包含在函数中,并在您想要更改 SQL 时简单地重新部署。如果没有进一步的上下文,我不能说这是否适合您的需求(也许您需要能够非常快速地交换 SQL。)部署 Lambda 函数可能会非常快,但是如果设置正确(更新单个函数不到 1 分钟)。
可能还有第三种方法,您可以参数化您的 Lambda 函数和 SQL 命令,这样您就不需要频繁更改 SQL,只需将不同的参数传递给函数。
推荐阅读
- r - 直方图的标签帮助
- javascript - 在 Codeigniter 框架中使用 jQuery 获取 Selectpicker 中的当前值
- python - 循环遍历 OHLC 数据时,Tkinter 冻结
- reactjs - 如何使用 map() 方法从数组中渲染图像?
- c# - 监视具有大量子文件夹的文件夹的更改?
- c++ - 仅读取文件末尾的最后 3 个字符并将它们保存为 int
- git - 如何更改 Git 中的日志条目?
- drone - 在 gitlab 的子路径下看不到和激活项目
- html - 将值重新分配到 Angular 中的列表的问题
- reactjs - 如何使用不可变 js 传递初始状态值