Шаг 2 из 10

check_file

Первым оператором будет SimpleHttpOperator под названием check_file. SimpleHttpOperator входит в стандартный набор операторов Apache Airflow. Его задача — выполнить HTTP запрос и вернуть ответ. Мы его будем использовать для проверки существования файла перед его загрузкой.

Чтобы не скачивать весь файл целиком я предлагаю использовать метод HEAD. Он идентичен стандартному GET с той лишь разницей, что ответ будет без тела, вернутся лишь заголовки и статус ответа. Более подробно о нём можно почитать здесь.

Также SimpleHttpOperator отличный способ показать как работать с разделом Connections о котором я упоминал в разделе про Компоненты → Веб-сервер и UI. Ссылка на официальную документацию по этому оператору.

При инициализации оператор принимает несколько аргументов:

  • task_id — уникальное название оператора
  • method — HTTP метод, мы будем использовать HEAD
  • http_conn_id — название ключа соединения, которое мы создадим через раздел Connections. Оператору нельзя передать полную ссылку напрямую.
  • endpoint — URI, т.е. это всё, что есть в ссылке после указания домена. Например, если полная ссылка на данные за декабрь 2020 года https://nyc-tlc.s3.amazonaws.com/trip+data/yellow_tripdata_2020-12.csv, то endpoint здесь это /trip+data/yellow_tripdata_2020-12.csv или yellow_tripdata_2020-12.csv. Он меняется в зависимости от года и месяца.
  • dag — инстанс объекта DAG (если используется декоратор dag, то этот аргумент можно опустить)

Также у оператора есть и другие принимаемые аргументы, например, тело запроса, заголовки и даже есть возможность передать callable объект для обработки ответа в аргументе response_check. Но для нашего пайплайна это не нужно.

Комментарии

У меня одного ссылка из endpoint нерабочая?

Действительно, надо обновить материал.

ссылка на данные некорректна. Раньше была норм. Дело в том, что теперь данные из сервера amazon можно достать только в случае, если у тебя есть аккаунт на amazon aws. Так просто он вам зарегистрироваться не даст: для России и Беларуси они услуги не предоставляют. К тому же обязательно вводить данные банковской карты для регистрации. Даже, если не планируешь пользоваться платным сервисом. МИРовские карты он не принимает для регистрации. Сейчас попробовал через мастер кард(теперь меня заблокировало за большое количество попыток). В общем, если кто-то знает рабочие варианты обойти данную проблему, то просьба пингануть меня в ТГ: atlant64