我正在尝试使用 lambda 将数据从 S3 存储桶文件夹加载到雪花表。我设置了一个 S3 触发器,其中我的文件被摄取,并在 lambda 和雪花之间形成集成,以将传入文件加载到我的 s3 到雪花表中。
问题是有 1000 个文件被提取到我的 S3 文件夹中,并且在我的雪花和 lambda 之间形成拥塞。我正在寻找一种方法,当 1000 个文件被摄取到我的 S3 存储桶时,lambda 应一次处理一个文件。加载第一个文件后,只有它按顺序处理下一个文件。例如:要么从雪花接收确认,要么在其上接收确认。
正确答案
您可以将 AWS Lambda 函数配置为具有预留并发- AWS Lambda:
通过设置 Reserved Concurrency = 1
,一次只会运行一个 Lambda 函数实例。根据您的 Snowflake 配置,您可以选择将其增加到 2 或 3,以更快地处理文件,而不会压垮 Snowflake。
您还可以配置批量大小,这是传递给函数的最大事件数。如果 S3 向同一 Lambda 实例发送多个文件,您的代码可以循环遍历事件并在每次调用时处理多个文件。
我只是稍微担心,如果您创建了大量对象,并且 Lambda 函数受到并发数 1 的限制,则 S3 对 Lambda 的调用多次重试后可能会导致超时。如果是这样,您应该:
- 配置 S3 以将事件发送到 Amazon SQS 队列(而不是直接发送到 Lambda 函数),并且
- 配置 Lambda 以从 SQS 队列中提取消息
这样,消息将安全地排队,而不是由于大量文件积压而(可能)超时。
以上就是将数据从 S3 加载到 Snowflake,并按 1 by 1 的顺序调用 lambda的详细内容,更多请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容- Java 中 int 数组如何实现拷贝?(java int数组拷贝怎么实现)
- Java FX 在可访问性方面都有哪些重要的考虑呢?(java javafx在可访问性方面有哪些考虑 )
- Java 的 domain 具体有哪些合法的格式呢?(Java的domain有哪些合法格式)
- Java 中 shuffle 函数的参数该如何设置?(Java中shuffle函数的参数设置)
- Java 重构到底有哪些作用呢?(Java重构有什么用)
- 在 Java 中如何利用 Vector 来定义二维数组?(java中怎么用vector定义二维数组)
- 为何 Java 环境变量配置总是难以成功?(java环境变量配置为什么不成功)
- 如何配置 Java 文件上传接口?(java文件上传接口怎么配置)
- 如何在 JAVA 中直接读取文件流内容?(JAVA怎么直接读取文件流内容)
- 如何将 Java 文件转换为可执行文件?(java文件如何变成可执行文件)