【问题标题】:Stream data from S3 bucket to redshift periodically定期将数据从 S3 存储桶流式传输到红移
【发布时间】:2016-07-29 09:09:52
【问题描述】:

我有一些数据存储在 S3 中。我需要定期将这些数据从 S3 克隆/复制到 Redshift 集群。要进行批量复制,我可以使用复制命令从 S3 复制到 redshift。

同样有任何简单的方法可以定期将数据从 S3 复制到 Redshift。

谢谢

【问题讨论】:

    标签: amazon-s3 amazon-redshift


    【解决方案1】:

    尝试使用 AWS Data Pipeline,它具有用于将数据从一项 AWS 服务移动到另一项的各种模板。 “将数据从 S3 加载到 Redshift”模板将数据从 Amazon S3 文件夹复制到 Redshift 表中。您可以将数据加载到现有表中或提供 SQL 查询来创建表。 Redshift 表必须与 Amazon S3 中的数据具有相同的架构。

    数据管道支持按计划运行的管道。你有一个用于调度的 cron 样式编辑器

    【讨论】:

    • 您好,虽然管道可用于按计划复制数据,但我想它会复制整个数据。我们需要增量复制数据,即复制一次的数据不应该再次复制。我在管道中找不到任何文档来执行此操作?有没有 。我也在阅读 Lambda Functions 。他们能来这里救援吗?
    【解决方案2】:

    AWS Lambda Redshift Loader 是一个很好的解决方案,只要新文件出现在 Amazon S3 上的预配置位置,它就会在 Redshift 上运行 COPY 命令。

    链接:

    https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader/ https://github.com/awslabs/aws-lambda-redshift-loader

    【讨论】:

      【解决方案3】:

      我相信 Kinesis Firehose 是完成这项工作的最简单方法。只需创建一个 Kinesis Forehose 流,将其指向 Redshift 集群中的特定表,将数据写入流,完成 :)

      此处的完整设置过程: https://docs.aws.amazon.com/ses/latest/DeveloperGuide/event-publishing-redshift-firehose-stream.html

      【讨论】:

      • 现在有更好的选择将 s3 数据移动到 redshift 集群。一旦数据到达 s3,它应该自动移动 redshift .. 有任何来自 aws 的解决方案。请分享
      【解决方案4】:

      Kinesis 选项仅在 redshift 可公开访问时才有效。

      【讨论】:

        【解决方案5】:

        您可以使用带有 lambda 的复制命令。您可以配置 2 个 lambda。一个将为您即将到来的新数据创建一个清单文件,另一个将从该清单中读取以使用 Redshift 数据 api 将其加载到 redshift。

        【讨论】:

          猜你喜欢
          • 2021-01-09
          • 2017-05-29
          • 1970-01-01
          • 2019-10-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-01-03
          相关资源
          最近更新 更多