diff --git a/README.md b/README.md index ad4ef50..7734778 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,6 @@ - [Фундаментальная теория](#фундаментальная-теория) - [Знакомство с Greenplum](#знакомство-с-greenplum) - [Курсовая работа](#курсовая-работа) - - [Стенд в Docker Compose](#стенд-в-docker-compose) - [Понятие сложности алгоритмов](#понятие-сложности-алгоритмов) - [Карьера и менторство](#карьера-и-менторство) - [Менторство по этому роадмапу](#менторство-по-этому-роадмапу) @@ -308,40 +307,42 @@ Apache Airflow — инструмент для оркестрации ETL-про - Зачем: Это объясняет, почему Greenplum устроен именно так. Без этого вы будете пытаться работать с ним как с обычным Postgres. ### Знакомство с Greenplum -Теперь, понимая теорию, смотрим, как это реализовано в конкретном инструменте.- Простое введение: [Greenplum | Что это такое и как оно работает? - Youtube](https://www.youtube.com/watch?v=rLG9Z_HcKPY) +Теперь, понимая теорию, смотрим, как это реализовано в конкретном инструменте. + +- Простое введение: [Greenplum | Что это такое и как оно работает? - Youtube](https://www.youtube.com/watch?v=rLG9Z_HcKPY) - Оно же, но текстом: https://halltape.github.io/HalltapeRoadmapDE/GREENPLUM/ - [Визуализатор распределения Greenplum](https://gpskew.rzvde.pro/) -- Бесплатный, но большой учебный курс от Yandex: https://yandex.cloud/ru/training/greenplum -- [Учебный курс по Greenplum от datafinder](https://datafinder.ru/products/uchebnyy-kurs-po-greenplum) — взять только отдельные главы. -Практика: -- [DE Starter Kit — Airflow + Greenplum + CSV](https://github.com/dementev-dev/airflow-greenplum) +**Курс Yandex по Greenplum** — основной учебный курс, рекомендуется пройти целиком: +- [Бесплатный курс Yandex Cloud по Greenplum](https://yandex.cloud/ru/training/greenplum) +- Практику по курсу удобно делать на стенде [airflow-dwh-gp-lab](https://github.com/dementev-dev/airflow-greenplum) — `make up` поднимает рабочий Greenplum с PXF, не нужен облачный кластер. +- Стенд покрывает основные темы курса: типы таблиц (heap / appendonly), политики дистрибуции, сжатие, PXF, анализ планов выполнения (`EXPLAIN`). +- Единственное ограничение: cloud-специфичные темы (тема 2 курса — развёртывание в Yandex Cloud) на локальном стенде не покрыты. -Сложные варианты с виртуалками — только если менти сильно захочет, в базовый путь не включаем. +Дополнительно: +- [Учебный курс по Greenplum от datafinder](https://datafinder.ru/products/uchebnyy-kurs-po-greenplum) — отдельные главы для углубления. **Когда блок Greenplum считаем пройденным:** - вы понимаете, как данные распределяются по сегментам, что такое skew и как его увидеть; -- на базе учебного стенда (например, DE Starter Kit) можете загружать и выгружать данные в Greenplum, выполнять запросы и разбирать планы выполнения (`EXPLAIN`); +- на базе стенда `airflow-dwh-gp-lab` можете загружать и выгружать данные в Greenplum, выполнять запросы и разбирать планы выполнения (`EXPLAIN`); - можете объяснить, в чём практическая разница между MPP-хранилищем и одиночным Postgres на уровне типичных задач DE и собеседований. ## Курсовая работа -К финалу роадмапа мы собираем небольшую end-to-end курсовую работу — свой первый «боеподобный» data-проект. +Курсовая работа — важный майлстоун роадмапа: ваш первый end-to-end data-проект. После неё у вас есть ключевые технические навыки для старта карьеры в Data Engineering. -### Стенд в Docker Compose -- Apache Airflow — оркестратор; - - источник данных — TelecomX (или аналогичный открытый датасет); -- Greenplum — основное хранилище; -- вспомогательный Postgres (по желанию); -- ETL-скрипты и DAG'и; -- исходные коды всего — в отдельном Git-репозитории. +Курсовая выполняется на том же стенде [airflow-dwh-gp-lab](https://github.com/dementev-dev/airflow-greenplum), который вы уже использовали для практики по Greenplum. -В качестве альтернативы файловому источнику можно использовать генератор данных для демо-базы `bookings` от Postgres Pro: https://github.com/postgrespro/demodb. -Его удобнее всего встроить в стенд DE Starter Kit (Airflow + Greenplum) как отдельный сервис Postgres с регулярно генерируемыми данными и уже оттуда забирать их в Greenplum (в том числе через PXF, если хочется усложнить архитектуру). +**Что внутри:** +- Стенд содержит DWH с реализованным эталонным срезом (STG → ODS → DDS → DM) — это ваш образец для подражания. +- Задача — довести DWH до полного, реализовав недостающие загрузки по аналогии с эталоном. +- Есть готовый план от аналитика (ТЗ с маппингами и бизнес-правилами) — не нужно придумывать, что делать. +- Встроенная автоматическая проверка реализации поможет убедиться в корректности до проверки ментором. +- Ветка `main` — рабочая (с заготовками для реализации), ветка `solution` — эталон для сверки. **Когда блок курсовой работы считаем пройденным:** -- у вас есть отдельный репозиторий с docker-compose, DAG'ами Airflow, SQL-скриптами и README по проекту; -- стенд поднимается локально, DAG'и успешно прогоняются на тестовых данных от загрузки сырья до витрин; -- вы можете на собеседовании за 5–10 минут рассказать архитектуру курсового проекта, его цели и показать ключевые части кода. +- все загрузки реализованы, DWH заполняется полностью (STG → ODS → DDS → DM); +- автоматическая проверка (валидационный DAG) проходит без ошибок; +- вы можете на собеседовании за 5–10 минут рассказать архитектуру проекта, его цели и показать ключевые части кода. ## Понятие сложности алгоритмов В Data Engineering редко требуется писать сложные алгоритмы, но важно понимать, как оценивать эффективность кода: