2017-07-17 101 views
0

我正在使用Amazon Firehose在線傳輸數據,使用Lambda應用轉換並通過S3將數據加載到Redshift。在流水COPY命令是:使用複製命令從Amazon S3到Redshift的數據加載 - 如何在Redshift中存儲複製時間

COPY <TABLE NAME> FROM 's3 Location' CREDENTIALS 'IAM ROLE' MANIFEST json 'auto' gzip; 

我想知道確切的時間,讓S3到紅移副本由流水製作,這樣我可以在同一個存儲在紅移,並將其用於未來參考。如何在執行復制命令時獲得時間?

示例:如果我有數據管道作業,我將得到sysdate,然後將其插入到Redshift表中。我如何在S3中完成類似於Redshift Copy的操作?有沒有直接的選擇或解決方法呢?

回答

0

由於您已在使用AWS Lambda函數執行Amazon Kinesis Firehose Data Transformation,因此您應該使用Lambda函數添加日期。然後這將通過COPY命令流向正在加載的數據。

+0

感謝您的回覆john。我有興趣瞭解數據流中數據轉換和加載過程中不同點上的時間。 1.什麼時候到kinesis流 - 流日期和時間。 2. Lambda函數調用時間 - Lambda運行時間3.什麼時間數據從s3加載到Redshift - 數據加載時間。通過這種方式,我可以按照確切的時間間隔跟蹤時間延遲,併爲將來的參考保持紅移。我做了1和2,但是對於數據加載時間,我有點失落。你的幫助將不勝感激。再次感謝。 – keerthi

+0

對於數據加載時間,您應該查閱[STL_LOAD_COMMITS](http://docs.aws.amazon.com/redshift/latest/dg/r_STL_LOAD_COMMITS.html)表,但可能有點難以匹配它流水負載。 –

+0

我收到了AWS Support團隊的回覆,我應該在創建表時使用默認列與sysdate或current_time,以便當firehose執行副本列時使用當前時間更新。 – keerthi

0

我收到了AWS支持團隊的回覆,我應該在創建表時使用默認列與sysdate或current_time,以便當firehose執行副本時,列將使用當前時間通過副本命令本身進行更新。

相關問題