Step 2 of 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. Но для нашего пайплайна это не нужно.

Comments

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

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