From e5615c941977a85a278ff2e6bac8042838181fc6 Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Sun, 23 Nov 2025 13:18:34 +0300 Subject: [PATCH 1/7] =?UTF-8?q?=D0=A0=D0=B0=D1=81=D1=88=D0=B8=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=20=D1=80=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=20=D1=81=20GreenP?= =?UTF-8?q?lum?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 74 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 55 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 2e2a34a..cf423f4 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,45 @@ +# О роадмапе + +Этот роадмап — конспект моих подходов к обучению Data Engineering. +Он подойдёт тем, кто хочет: +- системно войти в профессию с нуля или близкого к нулю уровня; +- закрыть пробелы в базе (SQL, Git, Python, DWH, Airflow, GreenPlum); +- подготовиться к собеседованиям и первым рабочим задачам. + +Роадмап можно проходить самостоятельно или вместе со мной в формате менторства. +Если хотите идти с поддержкой ментора — напишите в Telegram: [@dementev_dev](https://t.me/dementev_dev). + +## Оглавление + +- [Основные знания](#основные-знания) +- [Практика и инструменты](#практика-и-инструменты) +- [Карьера и менторство](#карьера-и-менторство) +- [Расширенные навыки](#расширенные-навыки) +- [Софт скиллы](#софт-скиллы) +- [Дополнительные материалы](#дополнительные-материалы) + +Рекомендуемый способ использования: +- двигаться по разделам последовательно, не перепрыгивая через базу; +- выполнять практику и домашки, а не только смотреть материалы; +- возвращаться к разделам по мере появления реальных задач. + # Основные знания -> Этот роадмап можно проходить самостоятельно или вместе со мной в формате менторства. -> Если хотите идти с поддержкой ментора — напишите в Telegram: [@dementev_dev](https://t.me/dementev_dev). +## Git и базовые инструменты -## База по Git +### База по Git Что такое контроль версий, когда используется, ПОЧЕМУ и как мы в обучении будем использовать. Как создать репозиторий на GitHub, сохранять в нем изменения. - [Что такое Git для Начинающих / GitHub за 30 минут / Git Уроки - Youtube](https://www.youtube.com/watch?v=VJm_AjiTEEc) - Книга [Pro Git](https://git-scm.com/book/ru/v2) - читать главу 1 -Основы Markdown +### Основы Markdown - [Язык Markdown и файл README | Git и GitHub для начинающих - Youtube](https://www.youtube.com/watch?v=8lEDTrr-G4U) - [Markdown и его возможности: простой способ оформления текста](https://kurshub.ru/journal/blog/markdown-chto-eto/) - [Синтаксис Markdown: подробная шпаргалка для веб-разработчиков / Skillbox Media](https://skillbox.ru/media/code/yazyk-razmetki-markdown-shpargalka-po-sintaksisu-s-primerami/) Домашки по остальным темам тренируемся делать в Git, там же пишем документацию. + ## SQL ### База по SQL Книга: [PostgreSQL. Основы языка SQL](https://postgrespro.ru/education/books/sqlprimer) - Глава 1 "Введение в базы данных и SQL" + ДЗ @@ -101,11 +126,8 @@ Цель - LiveCoding простых задач Python, далее нужно будет для создания DAG Airflow ## Технические навыки -### Запись встреч -OBS Studio -[Настройка записи экрана](https://docs.google.com/document/d/1qd8uRYlAaZp9c5zpvCVBOvYQCEukGHI9PEPjnjahI1k/) -### Git +### Продвинутый Git - Сжатый, но емкий видеогайд: [GIT, GitHub, GitLab. Полный АКТУАЛЬНЫЙ гайд ЗА ПОЛТОРА ЧАСА. Без этого выгонят с работы - Youtube](https://www.youtube.com/watch?v=0Y-fneoUIO8) - Книга: [Pro Git](https://git-scm.com/book/ru/v2) - главы - 2 Основы Git @@ -131,6 +153,12 @@ OBS Studio Понимание этих концепций помогает быстрее адаптироваться в новых проектах и правильно интерпретировать требования. +### Запись встреч +OBS Studio +[Настройка записи экрана](https://docs.google.com/document/d/1qd8uRYlAaZp9c5zpvCVBOvYQCEukGHI9PEPjnjahI1k/) + +# Практика и инструменты + ## Airflow Apache Airflow — инструмент для оркестрации ETL-процессов. @@ -143,11 +171,26 @@ Apache Airflow — инструмент для оркестрации ETL-про - [Учебник по Airflow](https://github.com/dementev-dev/airflow-manual) +## Greenplum +Разбираем, чем Greenplum отличается от PostgreSQL и зачем нужны MPP-хранилища. + +Предварительно: +- Простое введение: [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 от datafiner](https://datafinder.ru/products/uchebnyy-kurs-po-greenplum) — взять только отдельные главы. + +Практика (минимум, чтобы уверенно чувствовать себя на собеседованиях): +- [DE Starter Kit — Airflow + Greenplum + CSV](https://github.com/dementev-dev/airflow-greenplum) + +Сложные варианты с виртуалками — только если менти сильно захочет, в базовый путь не включаем. + ## Курсовая работа ### Стенд в Docker Compose - Apache Airflow - Источник данных - TelecomX -- Postgres +- GreenPlum - ETL - Исходные коды всего - в Git @@ -159,6 +202,8 @@ Apache Airflow — инструмент для оркестрации ETL-про Это помогает избегать «тормозящих» решений на собеседованиях и в реальных пайплайнах. +# Карьера и менторство + ## Менторство по этому роадмапу Если вы нашли этот роадмап в интернете и хотите пройти его не в одиночку, а с поддержкой ментора, можно присоединиться ко мне. @@ -207,7 +252,6 @@ Apache Airflow — инструмент для оркестрации ETL-про Мы кратко знакомимся с: -- **Greenplum** — MPP-хранилищем на базе PostgreSQL для распределённых запросов; - **Apache NiFi** и **Kafka** — инструментами для построения потоковых и интеграционных пайплайнов; - **ClickHouse** — колоночной СУБД для высоконагруженной аналитики; - **dbt** — подходом к трансформации данных как кода. @@ -216,14 +260,6 @@ Apache Airflow — инструмент для оркестрации ETL-про Этого достаточно, чтобы уверенно говорить об инструменте на собеседовании и понимать его место в архитектуре — а всё остальное при необходимости осваивается уже на проекте. -## Greenplum -Дать теоретический материал - разница с Postgres. -Предварительно: [Учебный курс по Greenplum](https://datafinder.ru/products/uchebnyy-kurs-po-greenplum) - дать только отдельные главы -Контейнер с GreenPlum, несколько домашек по нему, чтобы прочувствовать работу распределенных запросов. -- [sergeyosechkin/greenplum Tags | Docker Hub](https://hub.docker.com/r/sergeyosechkin/greenplum/tags) -- [Как собрать Docker-образ Greengage DB | Greengage DB Docs](https://greengagedb.org/ru/docs-gg/current/use_docker.html) -В сложности с виртуалками - только если менти сильно захочет. Не буду рекомендовать. - ## ClickHouse Бесплатный курс https://yandex.cloud/ru/training/clickhouse Платный курс [ClickHouse для аналитика – Stepik](https://stepik.org/course/100210/promo?search=6551441002) @@ -249,7 +285,7 @@ dbt (data build tool) — инструмент для трансформации - [Гайд как писать отзывы](https://boosty.to/m0rtymerr/posts/b04040ec-0f46-4524-9c75-188a513140ad?share=post_link) - [Гайд по Антистрессу](https://youtu.be/bu0YiXOKaoU) -# Тех. материалы несортировано +# Дополнительные материалы - [ananevsyu/SandBox_DB_public: Песочница для изучения различных технологий связанных с инженерией данных](https://gitflic.ru/project/ananevsyu/sandbox_db_public) - Клон проекта [dementev_dev/sandbox_db_public-форк](https://gitflic.ru/project/dementev_dev/sandbox_db_public-fork) - [Индексы в БД - Youtube](https://www.youtube.com/watch?v=DyqtBiDrz3g) From 805141a0b9410f9a3f446a8c5a9c6e224d4cd865 Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Sun, 23 Nov 2025 13:30:15 +0300 Subject: [PATCH 2/7] =?UTF-8?q?=D0=A1=D0=BC=D0=B5=D0=BD=D0=B0=20=D1=82?= =?UTF-8?q?=D0=BE=D0=BD=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20?= =?UTF-8?q?=D0=BE=D0=B1=D1=80=D0=B0=D1=89=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index cf423f4..0f2da32 100644 --- a/README.md +++ b/README.md @@ -121,9 +121,9 @@ - [Tproger: «Наглядная шпаргалка по операциям с DataFrame»](https://tproger.ru/articles/pandas-data-wrangling-cheatsheet) -Полезно, но дороговато и не обязательно: хорошее комбо SQL + Python: ["Поколение Python": профи + ООП + SQL – Stepik](https://stepik.org/course/233341/promo?search=7181036958) +Полезно, но дороговато и не обязательно: хорошее комбо SQL + Python — ["Поколение Python": профи + ООП + SQL – Stepik](https://stepik.org/course/233341/promo?search=7181036958) -Цель - LiveCoding простых задач Python, далее нужно будет для создания DAG Airflow +Цель — уверенно решать простые задачи на Python в формате live-coding; дальше эти навыки пригодятся для создания DAG Airflow. ## Технические навыки @@ -181,7 +181,7 @@ Apache Airflow — инструмент для оркестрации ETL-про - Бесплатный, но большой учебный курс от Yandex: https://yandex.cloud/ru/training/greenplum - [Учебный курс по Greenplum от datafiner](https://datafinder.ru/products/uchebnyy-kurs-po-greenplum) — взять только отдельные главы. -Практика (минимум, чтобы уверенно чувствовать себя на собеседованиях): +Практика (минимум, который мы делаем вместе, чтобы уверенно чувствовать себя на собеседованиях): - [DE Starter Kit — Airflow + Greenplum + CSV](https://github.com/dementev-dev/airflow-greenplum) Сложные варианты с виртуалками — только если менти сильно захочет, в базовый путь не включаем. @@ -220,7 +220,7 @@ Apache Airflow — инструмент для оркестрации ETL-про со словами «Хочу пройти роадмап с ментором» — дальше всё обсудим. ## Подготовка к собеседованиям -Думаем, как "сделать" опыт, от 2 лет +Цель блока — сформировать «опыт от 2 лет» и уметь корректно его показать в резюме и на собеседовании. ### Помощь в подготовке резюме @@ -265,15 +265,20 @@ Apache Airflow — инструмент для оркестрации ETL-про Платный курс [ClickHouse для аналитика – Stepik](https://stepik.org/course/100210/promo?search=6551441002) ## NiFi -Плейлист [Apache NiFi с нуля за 3 часа. Конструктор вместо кода - Youtube](https://youtube.com/playlist?list=PL4MpKy3QjNp_rOEEibc4Ro8UK4g8vLX6_&si=W_hidjHmBOZ_aUfS) - первые 4 видео. Дальше - по желанию. -Делаем отдельный docker compose Postgres + Nifi -В NiFi собираем генератор данных +Плейлист [Apache NiFi с нуля за 3 часа. Конструктор вместо кода - Youtube](https://youtube.com/playlist?list=PL4MpKy3QjNp_rOEEibc4Ro8UK4g8vLX6_&si=W_hidjHmBOZ_aUfS) — первые 4 видео, дальше — по желанию. + +Практика (делаем вместе): +- собираем отдельный стенд в Docker Compose с Postgres и NiFi; +- в NiFi настраиваем простой генератор данных. ## Kafka [Лучший Гайд по Kafka для Начинающих За 1 Час - Youtube](https://www.youtube.com/watch?v=hbseyn-CfXY) -Добавляем к предыдущему docker compose Kafka. -Строим поток данных NiFi->Kafka -Kafka->NiFi->Postgres + +Практика: +Практика (делаем вместе): +- расширяем предыдущий стенд, добавляя Kafka; +- строим поток данных: NiFi → Kafka; +- добавляем обратный поток: Kafka → NiFi → Postgres. ## dbt dbt (data build tool) — инструмент для трансформации данных в хранилище. @@ -295,10 +300,9 @@ dbt (data build tool) — инструмент для трансформации - [Алгоритмы: теория и практика. Методы – Stepik](https://stepik.org/course/217/info) - [Алгоритмы: теория и практика. Структуры данных – Stepik](https://stepik.org/course/1547/promo) - [Apache Hadoop для самых маленьких: HDFS, RACK-AWARENESS, репликация и Data Locality - Youtube](https://youtu.be/0fsY5bW2l84) -- [■ Книга. Введение в Apache Kafka для системных аналитиков и проектировщиков интеграций](https://systems.education/kafka) +- [Книга. Введение в Apache Kafka для системных аналитиков и проектировщиков интеграций](https://systems.education/kafka) - [Перевод документации dbt на русский язык](https://docs.getdbt.tech/) ## Записи ОМ - [Как пройти собеседование на программиста | Ультимативный гайд с ‪@om_nazarov‬ - Youtube](https://www.youtube.com/watch?v=tzSdiYZ52kI) - [Как стать программистом в 2025 | «Ультимативный гайд» с ‪@om_nazarov‬](https://www.youtube.com/watch?v=6151ekTOl38) -- From e37c1ed1cc58ce23865f0a453a990d57ac4f3cd9 Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Sun, 23 Nov 2025 17:36:06 +0300 Subject: [PATCH 3/7] =?UTF-8?q?=D0=9A=D1=80=D0=B8=D1=82=D0=B5=D1=80=D0=B8?= =?UTF-8?q?=D0=B8=20=D0=BF=D1=80=D0=BE=D0=B9=D0=B4=D0=B5=D0=BD=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B8=20=D1=80=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index 0f2da32..fdc4f90 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,11 @@ - Краткая теория про [DWH](https://halltape.github.io/HalltapeRoadmapDE/DWH/) - повторим еще раз, в другом изложении - Хорошее общее введение в модели данных дано в статье и докладе от Yandex: [Как мы внедрили свою модель хранения данных — highly Normalized hybrid Model. Доклад Яндекса](https://habr.com/ru/companies/yandex/articles/557140/) +**Когда блок SQL считаем пройденным:** +- вы уверенно пишете запросы с JOIN, агрегатами, подзапросами и CTE; +- можете объяснить простую модель данных (3NF/звезда) и прочитать схему DWH; +- решаете типовые задачи уровня SQL live-coding без долгих пауз. + ## Python @@ -125,6 +130,12 @@ Цель — уверенно решать простые задачи на Python в формате live-coding; дальше эти навыки пригодятся для создания DAG Airflow. +**Когда блок Python считаем пройденным:** +- вы без подсказок пишете небольшие скрипты с циклами, функциями, обработкой ошибок и работой с коллекциями; +- умеете читать и модифицировать чужой код, в том числе с использованием pandas и DataFrame; +- уверенно проходите простой live-coding по Python для DE: прочитать CSV/JSON, отфильтровать, сгруппировать данные и посчитать агрегаты. +- можете отвечать как на простые вопросы собеседований (циклы, списки, словари), так и продвинутые (итераторы, декораторы, управление памятью, базовые понятия ООП) + ## Технические навыки ### Продвинутый Git @@ -170,6 +181,10 @@ Apache Airflow — инструмент для оркестрации ETL-про Материалы: - [Учебник по Airflow](https://github.com/dementev-dev/airflow-manual) +**Когда блок Airflow считаем пройденным:** +- вы можете объяснить, что такое DAG, задачи, операторы и сенсоры, и как между ними задаются зависимости; +- на базе учебного стенда подготавливаете, отлаживаете и запускаете свои DAG'и с расписанием и несколькими шагами (например, загрузка данных и последующие трансформации); +- уверенно смотрите логи, находите место падения и понимаете, как перезапустить задачу. ## Greenplum Разбираем, чем Greenplum отличается от PostgreSQL и зачем нужны MPP-хранилища. @@ -186,6 +201,11 @@ Apache Airflow — инструмент для оркестрации ETL-про Сложные варианты с виртуалками — только если менти сильно захочет, в базовый путь не включаем. +**Когда блок Greenplum считаем пройденным:** +- вы понимаете, как данные распределяются по сегментам, что такое skew и как его увидеть; +- на базе учебного стенда (например, DE Starter Kit) можете загружать и выгружать данные в Greenplum, выполнять запросы и разбирать планы выполнения (`EXPLAIN`); +- можете объяснить, в чём практическая разница между MPP-хранилищем и одиночным Postgres на уровне типичных задач DE и собеседований. + ## Курсовая работа ### Стенд в Docker Compose - Apache Airflow From 26a35b05604179e5c7d79485aea598e3f2311516 Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Sun, 23 Nov 2025 17:47:05 +0300 Subject: [PATCH 4/7] =?UTF-8?q?DoD=20=D0=BF=D0=BE=20=D1=80=D0=B0=D0=B7?= =?UTF-8?q?=D0=B4=D0=B5=D0=BB=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index fdc4f90..4ef16e0 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,11 @@ Домашки по остальным темам тренируемся делать в Git, там же пишем документацию. +**Когда блок Git и базовые инструменты считаем пройденным:** +- вы уверенно создаёте репозиторий, коммитите изменения и отправляете их на GitHub; +- умеете работать с ветками: создавать, переключаться, делать merge/PR и разруливать простые конфликты; +- оформляете базовую документацию в Markdown (README, заголовки, списки, ссылки, кодовые блоки). + ## SQL ### База по SQL Книга: [PostgreSQL. Основы языка SQL](https://postgrespro.ru/education/books/sqlprimer) - Глава 1 "Введение в базы данных и SQL" + ДЗ @@ -168,6 +173,12 @@ OBS Studio [Настройка записи экрана](https://docs.google.com/document/d/1qd8uRYlAaZp9c5zpvCVBOvYQCEukGHI9PEPjnjahI1k/) +**Когда блок технических навыков считаем пройденным:** +- вы понимаете базовый GitFlow: как организована работа с ветками в команде и как ваши коммиты попадают в прод; +- используете Docker для учебных стендов: запускаете контейнеры, смотрите логи и при необходимости перезапускаете сервисы; +- ориентируетесь в основных методологиях разработки (Scrum/Kanban/водопад) и понимаете, как в них живут задачи и отчётность; +- при необходимости умеете настроить запись экрана/созвонов, чтобы сохранять материалы обучения. + # Практика и инструменты ## Airflow @@ -196,7 +207,7 @@ Apache Airflow — инструмент для оркестрации ETL-про - Бесплатный, но большой учебный курс от Yandex: https://yandex.cloud/ru/training/greenplum - [Учебный курс по Greenplum от datafiner](https://datafinder.ru/products/uchebnyy-kurs-po-greenplum) — взять только отдельные главы. -Практика (минимум, который мы делаем вместе, чтобы уверенно чувствовать себя на собеседованиях): +Практика: - [DE Starter Kit — Airflow + Greenplum + CSV](https://github.com/dementev-dev/airflow-greenplum) Сложные варианты с виртуалками — только если менти сильно захочет, в базовый путь не включаем. @@ -264,7 +275,10 @@ Apache Airflow — инструмент для оркестрации ETL-про - [Как успешно пройти испытательный срок в IT | «Ультимативный гайд» c @digital_ninja - Youtube](https://www.youtube.com/watch?v=r1lWP5rYVdk) - [Испытательный срок - доклад - Boosty](https://boosty.to/m0rtymerr/posts/40e7f17e-022b-495c-8d03-dabbe4383b8e) - +**Когда блок подготовки к собеседованиям считаем пройденным:** +- у вас есть актуальное резюме под DE с понятными примерами проектов вместо «пустого» опыта; +- вы умеете искать и отбирать вакансии на HH и Habr Карьера, адаптируя отклики под конкретную позицию; +- вы прошли хотя бы пару мок-собеседований, получили обратную связь и по результатам доработали резюме и стратегию поиска. # Расширенные навыки Эти темы выходят за рамки базового минимума для старта в Data Engineering, но дают более полное представление об экосистеме. @@ -287,7 +301,7 @@ Apache Airflow — инструмент для оркестрации ETL-про ## NiFi Плейлист [Apache NiFi с нуля за 3 часа. Конструктор вместо кода - Youtube](https://youtube.com/playlist?list=PL4MpKy3QjNp_rOEEibc4Ro8UK4g8vLX6_&si=W_hidjHmBOZ_aUfS) — первые 4 видео, дальше — по желанию. -Практика (делаем вместе): +Практика: - собираем отдельный стенд в Docker Compose с Postgres и NiFi; - в NiFi настраиваем простой генератор данных. @@ -295,7 +309,6 @@ Apache Airflow — инструмент для оркестрации ETL-про [Лучший Гайд по Kafka для Начинающих За 1 Час - Youtube](https://www.youtube.com/watch?v=hbseyn-CfXY) Практика: -Практика (делаем вместе): - расширяем предыдущий стенд, добавляя Kafka; - строим поток данных: NiFi → Kafka; - добавляем обратный поток: Kafka → NiFi → Postgres. @@ -305,6 +318,11 @@ dbt (data build tool) — инструмент для трансформации Мы рассматриваем его как альтернативу «ручному» написанию сложных CTE и для понимания современного подхода к моделированию данных как кода. +**Когда блок расширенных навыков считаем пройденным:** +- вы можете на собеседовании кратко объяснить, когда уместны NiFi/Kafka, ClickHouse и dbt, и чем они дополняют базовый стек (Postgres, Airflow, Greenplum); +- понимаете типичные сценарии: потоковые интеграции и очереди (Kafka/NiFi), аналитические витрины и отчёты на ClickHouse, трансформации данных в dbt; +- не боитесь увидеть эти инструменты в описании вакансии и можете поддержать содержательный разговор об их месте в архитектуре. + # Софт скиллы - [Все ветви дохода в IT / Полный гайд по деньгам](https://youtube.com/live/JHClTWwK1EM) - [Гайд как писать отзывы](https://boosty.to/m0rtymerr/posts/b04040ec-0f46-4524-9c75-188a513140ad?share=post_link) From e53fa0b9d43d09be966673f61c7bbc021d960c62 Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Sun, 23 Nov 2025 17:58:17 +0300 Subject: [PATCH 5/7] =?UTF-8?q?=20=D0=9E=D1=87=D0=B5=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=D0=BD=D0=B0=D1=8F=20=D1=87=D0=B8=D1=81=D1=82=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BC=D0=B5=D0=BB=D0=BA=D0=B8=D1=85=20=D1=88=D0=B5=D1=80=D0=BE?= =?UTF-8?q?=D1=85=D0=BE=D0=B2=D0=B0=D1=82=D0=BE=D1=81=D1=82=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 4ef16e0..3a3c0d9 100644 --- a/README.md +++ b/README.md @@ -82,14 +82,13 @@ Цель — не стать архитектором, а **уметь читать и объяснять структуру данных**, чтобы писать осмысленные запросы и трансформации. -Материалы: +Материалы (включая демо DWH-модель из этого репозитория): - [Яндекс Практикум: что такое нормализация, простыми словами (для самых начинающих)](https://practicum.yandex.ru/blog/chto-takoe-normalizaciya-dannyh/) - [Базы данных. 1,2,3 нормальные формы. - Youtube](https://www.youtube.com/watch?v=zwQzL80U51c) - [Введение в структуру хранилища данных](dwh-modeling/README.md) - Теория про Slowly Changing Dimensions: [SCD](dwh-modeling/SCD.md) - Еще про Data Vault: - - [Введение в Data Vault - Хабр](https://habr.com/ru/articles/348188/) - - [Основы Data Vault - Хабр](https://habr.com/ru/articles/502968/) + - Конспект и примеры из этого репозитория: [DataVault.md](dwh-modeling/DataVault.md) - [DataVault за 10 минут - Youtube](https://www.youtube.com/watch?v=9oQs_wJ045I) - Статья [«Что такое Data Vault: моделирование КХД для архитектора Big Data»](https://bigdataschool.ru/blog/what-is-data-vault/) — обзор, плюсы/минусы, контекст применения. - [Гибкие методологии проектирования Data Vault и Anchor Modeling | Евгений Ермаков | karpov.courses](https://www.youtube.com/watch?v=fNGIOb8SJvU) @@ -119,7 +118,7 @@ - [Tproger: «ООП простыми словами»](https://tproger.ru/experts/oop-in-simple-words) - Введение в [ООП](https://metanit.com/python/tutorial/7.1.php) - [Яндекс Учебник: «Объектная модель Python: классы, поля и методы»](https://education.yandex.ru/handbook/python/article/obuektnaya-model-python-klassy-polya-i-metody) - - [Real Python: OOP in Python (tutorial)](https://realpython.com/python3-object-oriented] + - [Real Python: OOP in Python (tutorial)](https://realpython.com/python3-object-oriented-programming/) - Jupyter Lab - [Блог Практикума: «Что такое Jupyter Notebook: как установить и открыть»](https://practicum.yandex.ru/blog/chto-takoe-jupyter-notebook/) - Готовая реализация Jupyter Lab, включающая в себя Spark, в Docker: https://github.com/dementev-dev/jupyter-spark-docker @@ -205,7 +204,7 @@ Apache Airflow — инструмент для оркестрации ETL-про - Оно же, но текстом: https://halltape.github.io/HalltapeRoadmapDE/GREENPLUM/ - [Визуализатор распределения Greenplum](https://gpskew.rzvde.pro/) - Бесплатный, но большой учебный курс от Yandex: https://yandex.cloud/ru/training/greenplum -- [Учебный курс по Greenplum от datafiner](https://datafinder.ru/products/uchebnyy-kurs-po-greenplum) — взять только отдельные главы. +- [Учебный курс по Greenplum от datafinder](https://datafinder.ru/products/uchebnyy-kurs-po-greenplum) — взять только отдельные главы. Практика: - [DE Starter Kit — Airflow + Greenplum + CSV](https://github.com/dementev-dev/airflow-greenplum) @@ -257,13 +256,12 @@ Apache Airflow — инструмент для оркестрации ETL-про - Видео от ОМ по составлению резюме - [Как накрутить опыт в резюме | «Ультимативный гайд» ‪@digital_ninja‬](https://www.youtube.com/watch?v=EPuogJuYsvY) - - [Как писать резюме, чтобы его читали - доклад - Boosty](https://boosty.to/m0rtymerr/posts/71b02a6b-8116-466a-b945-b2ed793abd8f) + - [Как писать резюме, чтобы его читали - доклад - Boosty](https://boosty.to/m0rtymerr/posts/71b02a6b-8116-466a-b945-b2ed793abd8f) - [Как грамотно продать себя на собеседовании / Созвон сообщества - Boosty](https://boosty.to/m0rtymerr/posts/7289cd23-60c6-4010-bb1c-a5b28dac399a) -- Попытки менти написать, моя обратная связь - итеративно +- Попытки менти написать резюме, моя обратная связь — итеративно. ### Навыки поиска работы с HH и Habr карьера -- [Как накрутить опыт в резюме | «Ультимативный гайд» ‪@digital_ninja‬](https://www.youtube.com/watch?v=EPuogJuYsvY) - [Как подтвердить опыт без трудовой / Хабр против работяг](https://www.youtube.com/watch?v=GHqABzA1zi8) - [Как успешно пройти испытательный срок в IT | «Ультимативный гайд» c @digital_ninja - Youtube](https://www.youtube.com/watch?v=r1lWP5rYVdk) - Видео по прохождению собесов от ОМ. From 04573efda18bbb2c01ab02c7487f69908afbcb04 Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Sun, 23 Nov 2025 18:16:18 +0300 Subject: [PATCH 6/7] =?UTF-8?q?=D0=A0=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=20=D0=BA=D1=83=D1=80=D1=81=D0=BE=D0=B2=D1=83?= =?UTF-8?q?=D1=8E=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 3a3c0d9..c1e4533 100644 --- a/README.md +++ b/README.md @@ -217,12 +217,23 @@ Apache Airflow — инструмент для оркестрации ETL-про - можете объяснить, в чём практическая разница между MPP-хранилищем и одиночным Postgres на уровне типичных задач DE и собеседований. ## Курсовая работа +К финалу роадмапа мы собираем небольшую end-to-end курсовую работу — свой первый «боеподобный» data-проект. + ### Стенд в Docker Compose -- Apache Airflow - - Источник данных - TelecomX -- GreenPlum -- ETL -- Исходные коды всего - в Git +- Apache Airflow — оркестратор; + - источник данных — TelecomX (или аналогичный открытый датасет); +- Greenplum — основное хранилище; +- вспомогательный Postgres (по желанию); +- ETL-скрипты и DAG'и; +- исходные коды всего — в отдельном Git-репозитории. + +В качестве альтернативы файловому источнику можно использовать генератор данных для демо-базы `bookings` от Postgres Pro: https://github.com/postgrespro/demodb. +Его удобнее всего встроить в стенд DE Starter Kit (Airflow + Greenplum) как отдельный сервис Postgres с регулярно генерируемыми данными и уже оттуда забирать их в Greenplum (в том числе через PXF, если хочется усложнить архитектуру). + +**Когда блок курсовой работы считаем пройденным:** +- у вас есть отдельный репозиторий с docker-compose, DAG'ами Airflow, SQL-скриптами и README по проекту; +- стенд поднимается локально, DAG'и успешно прогоняются на тестовых данных от загрузки сырья до витрин; +- вы можете на собеседовании за 5–10 минут рассказать архитектуру курсового проекта, его цели и показать ключевые части кода. ## Понятие сложности алгоритмов В Data Engineering редко требуется писать сложные алгоритмы, но важно понимать, как оценивать эффективность кода: From 4bec6217cf179ad53d2c8e975c7f1e0de334208b Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Sun, 30 Nov 2025 12:02:30 +0300 Subject: [PATCH 7/7] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=BE=20=D1=85=D0=BE=D0=B4=D1=83=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D1=87=D0=B8=D1=82=D1=8B=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9228c24..d3d9be4 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ Что такое контроль версий, когда используется, ПОЧЕМУ и как мы в обучении будем использовать. Как создать репозиторий на GitHub, сохранять в нем изменения. - [Что такое Git для Начинающих / GitHub за 30 минут / Git Уроки - Youtube](https://www.youtube.com/watch?v=VJm_AjiTEEc) +- [Git: Конфликты для Начинающих // Git Cherry Pick, Git Revert, Git Reset - Youtube](https://www.youtube.com/watch?v=F7FnnfnB9YY) - Книга [Pro Git](https://git-scm.com/book/ru/v2) - читать главу 1 ### Основы Markdown @@ -42,7 +43,7 @@ **Когда блок Git и базовые инструменты считаем пройденным:** - вы уверенно создаёте репозиторий, коммитите изменения и отправляете их на GitHub; -- умеете работать с ветками: создавать, переключаться, делать merge/PR и разруливать простые конфликты; +- имеете представление о работе с ветками: создание, переключение, что такое merge/PR и разруливание простых конфликтов; - оформляете базовую документацию в Markdown (README, заголовки, списки, ссылки, кодовые блоки). ## SQL @@ -108,7 +109,7 @@ - Если совсем не знакомы с Python, начинаем с курса ["Поколение Python": курс для начинающих – Stepik](https://stepik.org/course/58852/info) - Изучаем глубже и "оттачиваем" live coding: ["Поколение Python": курс для продвинутых – Stepik](https://stepik.org/course/68343/info) -- Продолжение "базы", спрашиваемой на собеседованиях, по Python: ["Поколение Python": курс для профессионалов](https://stepik.org/course/82541/promo). Курс очень полезный, но платный. +- Продолжение "базы", спрашиваемой на собеседованиях, по Python: ["Поколение Python": курс для профессионалов](https://stepik.org/course/82541/promo). Курс очень полезный, но платный. Вместо него можно почитать "продвинутые" темы дальше. - "Продвинутые" темы: - [Полезные функции](https://pyneng.readthedocs.io/ru/latest/book/10_useful_functions/index.html) - [Работа с файлами в формате CSV, JSON, YAML](https://pyneng.readthedocs.io/ru/latest/book/17_serialization/index.html) @@ -150,7 +151,7 @@ - 3 Ветвление в Git - 5 Распределённый Git - 6 GitHub -- [Курс работы с Git и GitLab - ЭФКО ЦПР | YouTube плейлист](https://www.youtube.com/playlist?list=PLbf8m52BvqlFlblJqQKPuEU26pwgqe7zK) +- [Курс работы с Git и GitLab - ЭФКО ЦПР | YouTube плейлист](https://www.youtube.com/playlist?list=PLbf8m52BvqlFlblJqQKPuEU26pwgqe7zK). Настоятельно рекомендую проделать за лектором все те действия что он показывает. Целевой уровень знания - понимание процесса GitFlow. Как создать ветку, влить изменения в другие ветки. Понимание, зачем. На собесах обычно не спрашивают, но нужно в работе. @@ -171,7 +172,8 @@ ### Запись встреч OBS Studio -[Настройка записи экрана](https://docs.google.com/document/d/1qd8uRYlAaZp9c5zpvCVBOvYQCEukGHI9PEPjnjahI1k/) +- Руководство по OBS: [OBS Studio - Настройка ОБС для Записи Игр и Стрима | Настройка Микрофона в Обс и т.д - Youtube](https://www.youtube.com/watch?v=bj8VEphZ65U) +- [Как записывать собеседования](https://docs.google.com/document/d/1qd8uRYlAaZp9c5zpvCVBOvYQCEukGHI9PEPjnjahI1k/) **Когда блок технических навыков считаем пройденным:** - вы понимаете базовый GitFlow: как организована работа с ветками в команде и как ваши коммиты попадают в прод;