返回顶部
首页 > 资讯 > 精选 >将数据从 S3 加载到 Snowflake,并按 1 by 1 的顺序调用 lambda
  • 569
分享到

将数据从 S3 加载到 Snowflake,并按 1 by 1 的顺序调用 lambda

2024-02-09 10:02:57 569人浏览 八月长安
摘要

问题内容 我正在尝试使用 lambda 将数据从 S3 存储桶文件夹加载到雪花表。我设置了一个 S3 触发器,其中我的文件被摄取,并在 lambda 和雪花之间形成集成,以将传入文件加

问题内容

我正在尝试使用 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的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 将数据从 S3 加载到 Snowflake,并按 1 by 1 的顺序调用 lambda

本文链接: https://lsjlt.com/news/562423.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作