# План развития курса «Lakehouse без магии» Статус: подключение Spark исправлено; следующая работа — практика настройки сессии. Последнее обновление: 2026-09-15. Здесь собираем отзывы студентов, выбираем следующие улучшения и объясняем их порядок. Подробные задания, критерии приёмки и актуальный статус исполнения хранятся в [Gitea Issues](https://git.dementev.space/ddmitry/mini-lakehouse-lab/issues). Текущие рамки курса задаёт [PRD](../docs/course_prd.md), а состав уроков — [программа](../docs/course_program.md). Статус каждой работы указан ниже. При реализации изменения сначала обновляем соответствующий канонический документ, затем учебные материалы и ссылки на них. ## Обратная связь ### Базовая настройка Spark-сессии - **Источник:** отзыв Арсения Деева, переданный автором курса и зафиксированный 2026-09-15. На момент отзыва студент дошёл до модуля 4. - **Наблюдение студента:** курс подходит начинающим, но не хватает базовой настройки Spark-сессии без сложного тюнинга. - **Учебный пробел:** студент использует подготовленную сессию; ему нужна практика, чтобы понять, какие настройки потребуются вне готового ноутбука. - **Решение:** добавить короткую обязательную практику после модуля 2, перед работой с raw-данными в модуле 3. До её разработки проверить воспроизводимость создания сессий. Отзыв относится к уже пройденной части курса. Замечания по модулям 5–8 пока не получены. ## Ближайшие работы ### 1. Проверить и исправить создание Spark-сессий **Статус:** выполнено, [MR #3](https://git.dementev.space/ddmitry/mini-lakehouse-lab/pulls/3). **Задача:** [#1 — подключение Spark-сессий в новом ядре](https://git.dementev.space/ddmitry/mini-lakehouse-lab/issues/1). В новых процессах модуль 1 подключался к кластеру, а модули 2–8 запускали Spark локально (`local[*]`). В исправлении все восемь ноутбуков берут адрес кластера из `spark/spark-defaults.conf`. **Проверено:** инициализация каждого ноутбука в отдельном процессе, вычисление на кластере, повторный `getOrCreate()`, запись и чтение тестовой Iceberg-таблицы. Результаты проверок и их ограничения приведены в комментарии к #1. ### 2. Добавить практику «Как настроен Spark в нашем стенде» **Статус:** запланировано; можно приступать после завершения #1. **Задача:** [#2 — практика базовой настройки SparkSession](https://git.dementev.space/ddmitry/mini-lakehouse-lab/issues/2). Практику разместить в начале модуля 3. Ориентир — 20–30 минут; фактическую длительность проверить при прохождении. Студент должен научиться: - объяснять роли `SparkSession`, `SparkContext`, driver и executors на примере стенда; - читать код с `master`, `appName` и `getOrCreate`; - находить источник настройки: конфигурационный файл, параметры запуска или код; - проверять фактический master и выбранные настройки каталога Iceberg и MinIO; - различать настройки, меняемые во время работы, и настройки, требующие нового запуска; - понимать, что повторное выполнение ячейки может использовать уже существующую сессию. **Практика и checkpoint:** студент заполняет небольшой шаблон создания сессии, задаёт подключение к кластеру и имя приложения, использует подготовленные настройки каталога, проверяет фактическое подключение и читает небольшую учебную Iceberg-таблицу. Таблица должна создаваться самой практикой: демонстрационные таблицы модуля 2 могут быть удалены при его завершении. Студент объясняет, какие настройки он задал сам, какие предоставил стенд и что потребуется повторить в новом ядре. При реализации обновить learning outcomes и scope в PRD, содержание и checkpoint модуля 3 в программе, ноутбук и связанные справочные материалы. Сохранить структуру из восьми модулей. **Граница темы:** базовая настройка подключения и жизненный цикл сессии. Подробный подбор памяти, числа executors, shuffle и GC остаётся за рамками этой доработки. ### 3. Собрать замечания по оставшейся части курса **Статус:** ожидается продолжение обратной связи. По мере прохождения Арсением остальных модулей добавлять конкретные наблюдения в этот документ. После полного прохода выбрать следующие доработки с учётом повторяющихся затруднений, самостоятельности студента и общей длительности курса. Новые issues создавать, когда понятны проблема, ожидаемый результат и способ его проверки. ## Отложенные идеи - Небольшой дополнительный опыт с числом партиций и наблюдением выполнения в Spark UI. Вернуться к нему после проверки объёма базовой практики; потребуется объяснить распределённое выполнение. - Другие возможные расширения перечислены в [разделе 7 программы](../docs/course_program.md#7-что-не-входит-в-первую-версию-курса). Их включение и порядок пока не определены. Номер и дата следующего релиза пока не назначены. ## Как обновлять этот план Для нового предложения записывать: источник и этап прохождения → наблюдение → учебный пробел → предлагаемое изменение → проверяемый результат → статус и ссылка на issue. После реализации добавлять ссылку на итог задачи и кратко отмечать, что изменилось для студента. Подробные критерии и ход исполнения сохранять в issue. ## Выпущенные улучшения - [#1](https://git.dementev.space/ddmitry/mini-lakehouse-lab/issues/1): все восемь ноутбуков подключаются к Spark-кластеру при создании сессии в новом процессе; настройки собраны в `spark/spark-defaults.conf`.