【问题标题】:How to process files that are added on S3 by Lambda and be able to dump data into redshift如何处理 Lambda 在 S3 上添加的文件并能够将数据转储到 redshift
【发布时间】:2021-03-25 07:15:56
【问题描述】:

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

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

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

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-lambda amazon-redshift


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

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

    【讨论】:

    • 这个答案很好而且正确。但是,应在将值直接插入 Redshift 时添加警告说明。这确实有效,但如果以这种方式进行频繁的大型更新,这将对 Redshift 造成相当大的负担。它并非旨在以这种方式有效地移动数据,并且这样做会影响领导节点,并可能导致集群范围内的减速。
    • 谢谢你,正是我要找的东西,不胜感激 :)
    猜你喜欢
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 2017-10-07
    • 2019-12-08
    • 2013-06-02
    • 2020-10-12
    • 2016-10-15
    • 1970-01-01
    相关资源
    最近更新 更多