Skip to content

Этот репозиторий предоставляет инфраструктуру на базе Docker для создания DAG в Apache Airflow и хранения их в PostgreSQL. Реализованы несколько небольших DAG'ов.

Notifications You must be signed in to change notification settings

kirillFedorov1/simple-airflow-dags

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Airflow с PostgreSQL

Этот репозиторий предоставляет инфраструктуру на базе Docker для создания DAG в Apache Airflow и хранения их в PostgreSQL.

Структура Контейнеров

  • Docker Compose: Файл docker-compose.yaml для развертывания всех нужных контейнеров.
  • PostgreSQL: Отдельный контейнер data_postgres-1 для базы данных.

Конфигурация

  • Кастомный файл конфигурации airflow.cfg для настройки Apache Airflow.

1. joke.py

Парсинг шутки.

Характеристики

  • Расписание: Каждый час
  • Источник данных: https://official-joke-api.appspot.com/jokes/random
  • Таблица с результатами: airflow_studies.jokes
  • Обработка Конфликтов: Учет возможных конфликтов по ключу id из api

2. randomuser.py

Генерация личности.

Характеристики

  • Расписание: Каждые 5 минут
  • Источник данных: https://randomuser.me/api/
  • Таблицы с результатами: randomuser.user, randomuser.location, randomuser.login
  • Обработка Конфликтов: Учет возможных конфликтов по ключу uuid из api

3. earthquakes.py

Проект представляет собой DAG, который автоматически запрашивает и сохраняет ежедневные данные о землетрясениях с сайта USGS в базу данных PostgreSQL.

Характеристики

  • Расписание запуска: Ежедневно в 00:00 UTC.
  • Источник данных: USGS Earthquake API.
  • Начальная дата: Скрипт get_start_date.ipynb вычисляет начальную дату, на которую есть данные (1661-02-11).
  • Первичные ключи: Реализация на основе id из api.
  • Обработка Конфликтов: Учет возможных конфликтов по ключу id из api.
  • Индексация: Создание индексов для ускорения запросов по ключевым полям.
  • Партицирование: Партицирование слоя history: одна холодная партиция до 2000 года, далее каждый год.
  • Слои данных: Разделение на слои stage, history, dwh.
  • Нормализация данных: В слое dwh - таблицы fact.* и dim.*.

About

Этот репозиторий предоставляет инфраструктуру на базе Docker для создания DAG в Apache Airflow и хранения их в PostgreSQL. Реализованы несколько небольших DAG'ов.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published