2016-10-31 81 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

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

相關問題