Нет конкретного оператора воздушного потока, который мог бы полностью удовлетворить ваши потребности, однако, что касается моего, я вижу два варианта (способа), как потенциально решить эту проблему:
- Базовый подход c, используя AWS CLI util, вызывая команду cp в потоке воздуха BashOperator , использующий инструменты Bash для копирования целевого файла S3 в локальный пункт назначения, этот метод уже обсуждался в этом стеке поток , но в несколько ином сценарии.
- Помимо операторов, Airflow содержит гибкий механизм, называемый Hooks , который широко расширяется Функциональность операторов за счет реализации канала связи с внешними платформами. Существует модуль S3_hook , который предназначен для выполнения операций, связанных с AWS S3, первоначально основанных на библиотеке AWS
boto3
. Однако, вероятно, вы не найдете подходящего метода в списке содержимого, в котором вы могли бы быть интересны. Но недавно я обнаружил S3_to_hive_operator , после проверки всей структуры и source код, я нашел execute()
Python функцию, которая запускает метод boto3
download_fileobj () , загружая файл из корзины S3 на локальный диск. Следовательно, вы можете использовать пользовательский Airflow Operator , предоставляя ему частично измененную функцию execute()
в конкретном методе S3_hook
.
Надеюсь, что это может быть полезно для ваших исследований.