首页 > 解决方案 > 如何处理 Lambda 在 S3 上添加的文件并能够将数据转储到 redshift

问题描述

我想知道如何在我的 S3 存储桶上拥有可由我的 lambda 函数处理的示例文件,然后能够将数据转储到 redshift 中。

我知道我们可以使用以下 aws 文档中的 COPY 命令将数据从 S3 加载到 Redshift:https ://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-data.html

S3 上的文件在被 Lambda 函数处理后使用 Redshift 的过程是什么?

标签: amazon-web-servicesamazon-s3aws-lambdaamazon-redshift

解决方案


  • 配置 S3 存储桶以在上传新文件时触发您的 Lambda 函数。
  • Lambda 函数可以将文件从 S3 复制到 Lambda 环境的/tmp文件夹,然后执行所需的任何处理。
  • 处理完成后,如果您要执行 RedshiftCOPY命令,则 Lambda 函数需要首先将新文件复制到 S3 中的不同位置,可能是完全不同的存储桶,然后将COPY命令发送到 Redshift 集群。或者,Lambda 函数可以打开与 Redshift 集群的连接并INSERT直接发出语句。

如果您想进一步解耦该过程,您可以让 Lambda 函数简单地将最终输出复制到另一个 S3 存储桶并退出。COPY然后让第二个 S3 存储桶触发向 Redshift发出命令的第二个 Lambda 函数。


推荐阅读