1

AWS Firehose在將數據複製到紅移前使用S3作爲間歇存儲。一旦數據傳輸到紅移,如果成功,如何自動清除它們。如何清理加載文件後由AWS Firehose使用的S3文件?

我手動刪除了這些文件,它出於抱怨文件被刪除的狀態,我不得不再次重新創建Firehose以恢復。

使用S3規則在7天后刪除這些文件將工作嗎?或者有沒有自動化的方式,Firehose可以刪除移動到紅移的成功文件。

回答

0

與支持AWS討論,

證實,它是安全的後24小時內或最大重試時間刪除這些中間文件。

在S3 Bucket上自動刪除的生命週期規則應該解決此問題。

希望它有幫助。

1

一旦你完成加載目標表,執行類似的東西(下面的代碼片段是典型的shell腳本):

aws s3 ls $aws_bucket/$table_name.txt.gz 
    if [ "$?" = "0" ] 
    then 
      aws s3 rm $aws_bucket/$table_name.txt.gz 
    fi 

這會檢查你剛剛加載的表是否存在在s3或不會,並會放棄它。作爲cronjob的一部分執行它。

如果您的ETL/ELT不是遞歸的,您可以將此片段寫入腳本的末尾。填充表格後,它會在s3上刪除文件。但是,在執行此部分之前,請確保您的目標表已填充。

如果你的ETL/ELT是遞歸的,你可以把它放在腳本的開頭,檢查並刪除上一次運行中創建的文件。這將保留直到下一次運行創建的文件,並且應該是首選的,因爲如果最後一次加載失敗(或者需要最後一次加載的平面文件用於任何其他目的),文件將充當備份。

+1

沒有相關答案。問題是關於消防站而不是關於s3生命週期。我會建議刪除它。 – Kannaiyan

+0

問題在Firehose上,而不是如何刪除S3上的文件。 Firehose使用S3作爲臨時存儲來將數據推送到目的地。一旦這個過程完成,它永遠不會清理它。我刪除了一些這些文件,它抱怨文件丟失,不得不刪除firehose並重新創建它來工作。這就是問題所在。 – Kannaiyan

相關問題