我在S3中存储了一些数据。我需要定期从S3到Redshift集群克隆/复制这些数据。要进行批量复制,我可以使用复制命令从S3复制到redshift。
同样,有任何简单的方法可以定期将数据从S3复制到Redshift。
由于
答案 0 :(得分:1)
尝试使用AWS Data Pipeline,它具有各种模板,用于将数据从一个AWS服务移动到另一个AWS服务。 “将数据从S3加载到Redshift”模板将数据从Amazon S3文件夹复制到Redshift表中。您可以将数据加载到现有表中,也可以提供SQL查询来创建表。 Redshift表必须与Amazon S3中的数据具有相同的架构。
Data Pipeline支持按计划运行管道。你有一个用于安排的cron样式编辑器
答案 1 :(得分:0)
我相信Kinesis Firehose是完成这项工作的最简单方法。只需创建一个Kinesis Forehose流,将其指向Redshift集群中的特定表,然后将数据写入该流,就可以完成:)
完整的设置过程在这里: https://docs.aws.amazon.com/ses/latest/DeveloperGuide/event-publishing-redshift-firehose-stream.html
答案 2 :(得分:0)
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 :(得分:0)
仅当可公开访问redshift时,Kinesis选项才有效。
答案 4 :(得分:0)
您可以在 lambda 中使用复制命令。您可以配置 2 个 lambda。一个将为您即将到来的新数据创建一个清单文件,另一个将从该清单中读取以使用 Redshift 数据 api 将其加载到 redshift。