Dozhd
Администратор
- Регистрация
- 17 Янв 2014
- Сообщения
- 157.345
- Реакции
- 387.584
Складчина: Практикум по Data Engineering: сквозной ETL на Spark + Postgres + Airflow + BI [Дмитрий Кузьмин]
Соберёшь полноценный DE-пайплайн на своём ноутбуке:
S3-lake → Spark → DWH → Airflow → BI
Один проект, который можно показать на собеседовании.
Для тех, кто сильный в SQL, но на собесах упирается в “где пайплайны, инкременты, оркестрация и качество”.
Программа:
0. Окружение: Docker-стенд, проверка сервисов
поднимаем стенд docker compose up и проверяем сервисы (Spark UI, Airflow, Postgres, MinIO)
учимся читать логи контейнеров и находить причину “не стартует”
базовая настройка .env и проверка доступа по портам
быстрый чек-лист “диагностика стенда” (типовые поломки)
Артефакт: рабочий docker-compose.yml + инструкции + скрины UI сервисов
1. RAW → STG: загрузка датасетов, идемпотентность
раскладываем исходные CSV по ingest_date в S3 (MinIO)
делаем replace-pattern/идемпотентную загрузку в STG
вводим контракт: схема, типы, обязательные поля
sanity-check запросы и первые проверки качества
Артефакт: структура RAW/STG + скрипты загрузки + набор sanity-check
2. CORE: факты/измерения, event-даты, инкременты
проектируем CORE: факт + измерения, ключи, связи
event-time vs ingest-time: где что использовать и почему
инкрементальные обновления (SCD/апдейты по ключам где уместно)
базовые индексы/ограничения в Postgres под CORE
Артефакт: DWH-слой CORE (DDL + инкрементальные загрузки)
3. Spark. Основы
первая Spark-сессия: чтение/запись, DataFrame API
базовые трансформации + агрегаты
работа через pyspark.sql и Spark SQL
чтение данных из S3 (MinIO) и запись parquet
Артефакт: первый рабочий ноутбук + mini-job чтение - трансформация - запись
4. Витрины: денормализация, партиционирование
собираем marts под типовые бизнес-вопросы (продажи/заказы/доставка)
денормализация: что тащим в витрину и почему
партиционирование/кластеризация (на уровне хранения и запросов)
контроль “small files” и базовые правила хранения
Артефакт: marts-таблицы + объяснение решений (почему такой grain/партиции)
5. Качество и SLA: дубликаты, пропуски, аномалии
проверки на дубликаты/пропуски/аномалии (простые, но рабочие)
таблица результатов DQ-check’ов (история прогонов)
SLA пайплайна: что меряем и как объяснять “почему отчёт не обновился”
стоп-кран: когда пайплайн должен падать, а когда просто предупреждать
Артефакт: DQ-схема + набор проверок + лог результатов
6. Spark Batch: трансформации, партиционирование, оптимизация
перенос логики из ноутбука в spark-submit job (шаблон джобы)
explain(True): читаем план и видим узкие места
cache/persist, shuffle partitions, контроль skew на базовом уровне
запись parquet “правильно”: партиции, режимы записи, контроль файлов
Артефакт: 1–2 production-style Spark jobs + чек-лист оптимизаций
7. Оркестрация (Airflow): DAG's
собираем DAG: зависимости, ретраи, расписание, параметры
разделяем задачи по слоям, делаем понятный граф
алерты/уведомления на падения (база)
дебаг Airflow: логи тасок, где ломается, как чинить
Артефакт: рабочий DAG + скрины графа/ранов + описание пайплайна
8. Observability: метрики пайплайнов, алерты
какие метрики реально нужны (время прогонов, лаг, объёмы, ошибки)
как “считать здоровье”: success-rate, latency, freshness
алерты: когда будить, а когда не спамить
“почему отчёт не обновился” как диагностировать по сигналам
Артефакт: набор метрик + правила алертов + описание мониторинга
9. Построение отчётов в BI
подключение BI к витрине, один понятный дашборд
5–7 метрик + фильтры/срезы (не цирк, а реально для интервью)
как рассказывать историю проекта: данные → слой → витрина → графики
Артефакт: дашборд + “история проекта” (готовый текст для резюме/собеса)
Продажник:
СКАЧАТЬ
Соберёшь полноценный DE-пайплайн на своём ноутбуке:
S3-lake → Spark → DWH → Airflow → BI
Один проект, который можно показать на собеседовании.
Для тех, кто сильный в SQL, но на собесах упирается в “где пайплайны, инкременты, оркестрация и качество”.
Программа:
0. Окружение: Docker-стенд, проверка сервисов
поднимаем стенд docker compose up и проверяем сервисы (Spark UI, Airflow, Postgres, MinIO)
учимся читать логи контейнеров и находить причину “не стартует”
базовая настройка .env и проверка доступа по портам
быстрый чек-лист “диагностика стенда” (типовые поломки)
Артефакт: рабочий docker-compose.yml + инструкции + скрины UI сервисов
1. RAW → STG: загрузка датасетов, идемпотентность
раскладываем исходные CSV по ingest_date в S3 (MinIO)
делаем replace-pattern/идемпотентную загрузку в STG
вводим контракт: схема, типы, обязательные поля
sanity-check запросы и первые проверки качества
Артефакт: структура RAW/STG + скрипты загрузки + набор sanity-check
2. CORE: факты/измерения, event-даты, инкременты
проектируем CORE: факт + измерения, ключи, связи
event-time vs ingest-time: где что использовать и почему
инкрементальные обновления (SCD/апдейты по ключам где уместно)
базовые индексы/ограничения в Postgres под CORE
Артефакт: DWH-слой CORE (DDL + инкрементальные загрузки)
3. Spark. Основы
первая Spark-сессия: чтение/запись, DataFrame API
базовые трансформации + агрегаты
работа через pyspark.sql и Spark SQL
чтение данных из S3 (MinIO) и запись parquet
Артефакт: первый рабочий ноутбук + mini-job чтение - трансформация - запись
4. Витрины: денормализация, партиционирование
собираем marts под типовые бизнес-вопросы (продажи/заказы/доставка)
денормализация: что тащим в витрину и почему
партиционирование/кластеризация (на уровне хранения и запросов)
контроль “small files” и базовые правила хранения
Артефакт: marts-таблицы + объяснение решений (почему такой grain/партиции)
5. Качество и SLA: дубликаты, пропуски, аномалии
проверки на дубликаты/пропуски/аномалии (простые, но рабочие)
таблица результатов DQ-check’ов (история прогонов)
SLA пайплайна: что меряем и как объяснять “почему отчёт не обновился”
стоп-кран: когда пайплайн должен падать, а когда просто предупреждать
Артефакт: DQ-схема + набор проверок + лог результатов
6. Spark Batch: трансформации, партиционирование, оптимизация
перенос логики из ноутбука в spark-submit job (шаблон джобы)
explain(True): читаем план и видим узкие места
cache/persist, shuffle partitions, контроль skew на базовом уровне
запись parquet “правильно”: партиции, режимы записи, контроль файлов
Артефакт: 1–2 production-style Spark jobs + чек-лист оптимизаций
7. Оркестрация (Airflow): DAG's
собираем DAG: зависимости, ретраи, расписание, параметры
разделяем задачи по слоям, делаем понятный граф
алерты/уведомления на падения (база)
дебаг Airflow: логи тасок, где ломается, как чинить
Артефакт: рабочий DAG + скрины графа/ранов + описание пайплайна
8. Observability: метрики пайплайнов, алерты
какие метрики реально нужны (время прогонов, лаг, объёмы, ошибки)
как “считать здоровье”: success-rate, latency, freshness
алерты: когда будить, а когда не спамить
“почему отчёт не обновился” как диагностировать по сигналам
Артефакт: набор метрик + правила алертов + описание мониторинга
9. Построение отчётов в BI
подключение BI к витрине, один понятный дашборд
5–7 метрик + фильтры/срезы (не цирк, а реально для интервью)
как рассказывать историю проекта: данные → слой → витрина → графики
Артефакт: дашборд + “история проекта” (готовый текст для резюме/собеса)
Продажник:
СКАЧАТЬ
Для просмотра скрытого содержимого вы должны зарегистрироваться
Возможно, Вас ещё заинтересует:
- Как навести порядок в делах с помощью ИИ [Андрей Зубков] + Искусство вопросов для успешного взаимодействия с ChatGPT [Артем Демиденко]
- Второй мозг с ИИ. Как управлять знаниями, проектами и решениями [Александр Костин]
- Музыка и рисунки для детей и родителей [Юлия Казанцева, Анастасия Георгиевская]
- Арканы денег и кармический кеш. Джйотиш, психология и неприличные богатства. 11 шагов к финансовому нирване [Николай Щербатюк]
- Top Creators Club (март 2026) [Анна Роде]
- Top Creators Club (апрель 2026) [Анна Роде]