Этот репозиторий предоставляет инфраструктуру на базе Docker для создания DAG в Apache Airflow и хранения их в PostgreSQL.
- Docker Compose: Файл
docker-compose.yaml
для развертывания всех нужных контейнеров. - PostgreSQL: Отдельный контейнер
data_postgres-1
для базы данных.
- Кастомный файл конфигурации
airflow.cfg
для настройки Apache Airflow.
Парсинг шутки.
- Расписание: Каждый час
- Источник данных:
https://official-joke-api.appspot.com/jokes/random
- Таблица с результатами:
airflow_studies.jokes
- Обработка Конфликтов: Учет возможных конфликтов по ключу
id
из api
Генерация личности.
- Расписание: Каждые 5 минут
- Источник данных:
https://randomuser.me/api/
- Таблицы с результатами:
randomuser.user
,randomuser.location
,randomuser.login
- Обработка Конфликтов: Учет возможных конфликтов по ключу
uuid
из api
Проект представляет собой 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.*
.