Redshift从S3复制最新的csv文件

时间:2016-10-31 05:50:38

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

我有一个S3存储桶存储每日日志文件,名为" Log_YYYY_MM_DD"。 另外,我在Redshift中有一个表只存储最新日志的数据。 例如:

  • 在S3中,我有" Log_Date0.csv"," Log_Date1.csv"," Log_Date2.csv"
  • 并且红移表应该只包含" Log_Date2.csv"
  • 中的数据

如何设置每日数据管道,以便redshift自动复制最新的日志包含并重写表格?

谢谢

1 个答案:

答案 0 :(得分:0)

Amazon Redshift无法自动复制"文件。它只会在发出SQL COPY命令时加载文件。

因此,您需要为TRUNCATE表创建必要的命令,然后COPY来自Amazon S3的数据。

您可以编写cron作业,使用psql v8.0.2(匹配Redshift)来运行SQL命令。或者,您可以使用可以为您加载数据的第三方ETL产品。

要在将新文件添加到Amazon S3存储桶时触发将信息自动加载到Amazon Redshift,您可以:

  • 创建 AWS Lambda函数,通过psql / JDBC连接将COPY命令发送到Redshift
  • 配置S3存储桶以在ObjectCreated
  • 时触发Lambda函数

请参阅:A Zero-Administration Amazon Redshift Database Loader