Как очистить файлы S3, используемые AWS Firehose после загрузки файлов?

AWS Firehose использует S3 как временное хранилище перед копированием данных в красный смещение. Как только данные переведены в красное смещение, как очистить их автоматически, если это удастся.

Я удалил эти файлы вручную, он вышел из состояния, жалуясь, что файлы были удалены, мне пришлось снова удалить и заново создать Firehose, чтобы возобновить работу.

Удаление этих файлов через 7 дней по правилам S3 подойдет? или Есть ли какой-либо автоматический способ, которым Firehose может удалить успешные файлы, которые были перемещены в красное смещение.


person Kannaiyan    schedule 14.09.2017    source источник


Ответы (2)


Обсуждая с Support AWS,

Подтверждено, что эти промежуточные файлы безопасно удалять через 24 часа или до максимального времени повтора.

Правило жизненного цикла с автоматическим удалением в S3 Bucket должно решить проблему.

Надеюсь, это поможет.

person Kannaiyan    schedule 30.09.2017

Когда вы закончите загрузку целевой таблицы, выполните что-то подобное (приведенный ниже фрагмент типичен для сценария оболочки):

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 рекурсивный, вы можете поместить это где-нибудь в начале скрипта, чтобы проверить и удалить файлы, созданные при предыдущем запуске. Это сохранит файлы, созданные до следующего запуска, и его следует предпочесть, поскольку файл будет действовать как резервная копия на случай, если последняя загрузка не удалась (или вам понадобится плоский файл последней загрузки для любых других целей).

person Yusuf Hassan    schedule 14.09.2017
comment
Не связанный ответ. Вопрос про пожарную часть, а не про жизненный цикл s3. Я бы рекомендовал удалить его. - person Kannaiyan; 20.09.2017
comment
Вопрос в Firehose, а не в том, как удалить файлы на S3. Firehose использует S3 как временное хранилище для передачи данных по назначению. Как только процесс был завершен, он никогда не очищает его. Я удалил некоторые из этих файлов, он пожаловался, что файлы отсутствуют, и мне пришлось удалить пожарный шланг и воссоздать его, чтобы заставить его работать. Вот в чем вопрос. - person Kannaiyan; 20.09.2017