将文件从AWS S3存储桶加载到Snowflake表



我想将文件从S3存储桶复制到Snowflake。为此,我使用Lambda函数。在S3存储桶中,我有一个文件夹,每个文件夹中都有许多CSV文件。这些CSV文件可以很小也可以很大。我创建了一个Lambda函数,它将这些文件加载到Snowflake中。问题是Lambda函数只能工作15分钟。将所有文件加载到Snowflake是不够的。你能帮我解决这个问题吗?我有一个解决方案-只用一个文件执行lambda,而不是用所有文件

正如您所说,Lambda函数的最长执行时间为15分钟,将所有文件加载到内存中不是一个好主意,因为执行时间和内存使用率都很高。

但是,如果你真的想使用Lambdas,并且你正在处理超过1GB的文件,也许你应该考虑AWS Athena或优化你的AWS Lambda函数,使用流读取文件,而不是将整个文件加载到内存中。

其他选项可能是在文件到达s3时创建一个SQS消息,并让EC2实例轮询队列并根据需要进行处理。有关更多信息,请查看此处:使用Amazon SQS和Amazon EC2 Spot实例运行经济高效的队列工作者。

最好的选择是使用AWS Lambda自动执行Snowpipe,为此请查看Snowpipes文档"使用AWS Lamb达自动执行Snowfipe"。

最新更新