@канал Привет! Пришло время приступить к итоговой работе! В фокусе проекта будет https://pokeapi.co/ API по покемонам. Соберём их всех!
##Требования к результату
- Сколько покемонов в каждом типе (type в терминах API), насколько это меньше чем у следующего по рангу типа? А насколько больше, чем у предыдущего?
- Сколько у разных атак (moves в терминах API) использующих их покемонов? + показать дельту от следующей и предыдущей по популярности атаки.
- Составить рейтинг покемонов по сумме их характеристик (stats в терминах API). Например, если у покемона есть только 2 статы: HP 20 & attack 25, то в финальный рейтинг идёт сумма характеристик: 20 + 25 = 45.
- Показать количество покемонов по типам (строки таблицы, type в терминах API) и поколениям (колонки таблицы, generations в терминах API).
- Каждый день запускать проверку на количество поколений (generations в терминах API) и вести логи результатов проверок.
###Технологические требования
- Завести GIT под финальный проект с оформленной документацией и структурой. Сам README содержит структуру папок и по ТОП 10 строк таблиц заданий a-d из требований к результату.
- Использовать цепочку технологий: Pokemon API => Python & MWAA => S3 => snow pipe => Snowflake => DWH
- На Python грузить данные в 2 потока, максимум 5 запросов в секунду от каждого.
- Спроектировать DWH, используя минимум 2 слоя (staging, storage) и dimensional model (dimension-tables, fact-tables, star or snowflake schema).
- Оркестрацией занимается Airflow.
###Критерии оценки
- Корректный ответ на вопросы заданий из требований к результату. Влияние - до половины итоговой оценки за проект.
- Рациональность алгоритмов и процессов. Например, нет смысла получать через PYTHON а потом доводить до Snowflake данные по покемонам, которые не будут участвовать в ответах на поставленные вопросы. До четверти оценки за итоговый проект.
- Общий стиль проекта: нейминги, читаемость кода, оформление скриптов. До четверти оценки за итоговый проект.
Сроки сдачи: приём работ закрывается в понедельник 20-го июня.