- Зачем: модули 2–8 в новом процессе выбирали local[*] вместо Spark-кластера.
- Что: master перенесён в общий spark-defaults.conf, smoke требует точный адрес кластера, документация и планы синхронизированы.
- Проверка: фактическая инициализация всех восьми ноутбуков, повторный getOrCreate, распределённые вычисления, Iceberg/MinIO write-read-cleanup и docker compose config прошли.
- Зачем: объяснения CREATE OR REPLACE и rollback расходились с поведением Iceberg 1.10.0 и ломали повторный запуск упражнений.
- Что: исправлены материалы и планы модулей 2, 4, 5, 7 и 8; одноразовые таблицы сбрасываются через DROP TABLE PURGE.
- Проверка: JSON и Python AST валидны; на Spark 3.5.1, Iceberg 1.10.0, JDBC/MinIO и Trino 478 подтверждены rollback, replace, time travel и повторный сброс до одного snapshot-а.
- Зачем:
- демо-ячейки последующих модулей не должны зависеть от домашних заданий предыдущих — модуль 5 использует lookup в демо-коде для JOIN.
- Что:
- модуль 4: секция 8 из домашки (5 пустых ячеек) превращена в демо с заполненным кодом (чтение CSV, CTAS).
- модуль 4: новая домашка (секция 9) — осмотр metadata lookup-таблицы, сравнение с основной.
- модуль 4: секции перенумерованы (9→10, 10→11), завершение упоминает обе bronze-таблицы.
- модуль 5: assert-сообщение для lookup обновлено (убрана ссылка на «самостоятельное задание»).
- планы модулей 4 и 5: обновлены дизайн-решения, структура секций и раздел рисков.
- Проверка:
- прогнать готовые ячейки модуля 4 → lookup-таблица создаётся автоматически → модуль 5 проходит без ошибок.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Зачем:
- нужен согласованный draft модуля про первую Iceberg-таблицу и переход от raw к bronze.
- Что:
- добавлен план `module-04-bronze-with-iceberg.md` с deliverables, структурой ноутбука и checkpoints.
- зафиксированы решения по CTAS, инспекции metadata Iceberg и зависимости модуля 5 от bronze-таблицы.
- Проверка:
- план вручную сверен с `docs/course_program.md` и `docs/course_prd.md`.
- runtime-проверка ноутбука и SQL-операций на стенде не выполнялась.