2016-10-31 54 views
0

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

  • 在S3中,我有 “Log_Date0.csv”, “Log_Date1.csv”, “Log_Date2.csv”
  • 而红移表应该只包含数据 “Log_Date2.csv”

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

谢谢

回答

0

Amazon Redshift不能“自动复制”文件。它只会在发出SQL COPY命令时加载文件。

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

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

要触发的信息的自动加载到亚马逊红移当一个新的文件被添加到一个Amazon S3桶,可以:

  • 创建AWS lambda函数发送该COPY命令经由到红移一个PSQL/JDBC连接
  • 配置S3桶触发lambda函数时ObjectCreated

参见:A Zero-Administration Amazon Redshift Database Loader

+0

嗨,John,感谢您的评论。我的问题是,如何让Redshift从S3存储桶中的最新文件中“复制数据”。 –

+0

或者,我的意思是每当有新文件添加到S3存储桶中时,如何触发某些内容以将其添加到红移中。 –

+0

我已将一些信息添加到答案中。 –

相关问题