/base_airflow

trying out base Airflow

Primary LanguagePython

Airflow + ExchangeRates + PostgreSQL

I. скопировать репозиторий

git clone https://github.com/Sasha-Mikhailov/base_airflow.git
cd base_airflow

II. указать коннект для внутренней базу для Airflow: оставить стандартную (из докер-контейнера рядом) или указать conn_string для своей. Указывается в docker-compose.yaml

III. Запустить «ансамбль» докер-контейнеров, подождать запуска (и инициилизации, если первый запуск):

docker-compose up

IV. Должен заработать webserver для Airflow. Зайти на http://localhost:8080 с логином-паролем airflow

image

V. запустить DAG'и:

  1. get_current_rate — регулярный запуск, запрашивающий текущий курс
  2. get_historical_rates - исторический пересчёт за конкретный период

image

Таски

Регулярный запуск запрашивает текущий курс и пишет результат в базу.

Исторический пересчёт принимает на вход параметры через Airflow Variables:

  • дату начала перода
  • окончание периода
  • код валюты из
  • код валюты в

image

при записи данных в базу предварительно удаляет строки за тот же период (в целях идемпотентности).

Проверить данные в базе — подключиться по коннектам, указанным в п. II.

Метаданные

Метаданные для таблицы храняться тут же в коде dags/common/meta.py. При первом запуске проверяёт наличие таблицы и создаёт, если не находит такой