Содержание курса
1. Аналитический SQL “как в проде”: правила игры
4 урока
17
9
0м
0
Закрытый
1.1
Введение
↗
5
4
-
0
Закрытый
1.2
Роль SQL в прод-пайплайне и типовые источники проблем
↗
5
3
-
0
Закрытый
1.3
Стиль и структура запроса: CTE, нейминг, детерминизм
↗
4
1
-
0
Закрытый
1.4
SQL-диагностика качества данных: уникальность, полнота, цело
↗
3
1
-
0
2. Grain, ключи и кардинальности для корректных JOIN
3 урока
8
3
0м
0
Закрытый
2.1
Grain таблицы и последствия его нарушения
↗
2
1
-
0
Закрытый
2.2
Кардинальности 1:1, 1:N, N:M и ожидаемая мощность результата
↗
4
1
-
0
Закрытый
2.3
Ключи: натуральные, суррогатные, составные; поиск минимально
↗
2
1
-
0
3. Сложные JOIN: стратегия, отладка, интервалы
4 урока
8
4
0м
0
Закрытый
3.1
JOIN-типология: INNER/LEFT/FULL + SEMI/ANTI через EXISTS
↗
2
1
-
0
Закрытый
3.2
Отладка размножения строк: поэтапный контроль кардинальности
↗
2
1
-
0
Закрытый
3.3
JOIN по диапазонам (valid_from/valid_to) и join 'на дату'
↗
2
1
-
0
Закрытый
3.4
Latest snapshot join: актуальная запись по ключу
↗
2
1
-
0
4. Оконные функции продвинутого уровня
4 урока
9
4
0м
0
Закрытый
4.1
PARTITION/ORDER: детерминизм и типовые ошибки окон
↗
2
1
-
0
Закрытый
4.2
Ранжирование: row_number/rank/dense_rank и top-N в группе
↗
3
1
-
0
Закрытый
4.3
lag/lead: дельты, шаги воронки, поиск пропусков
↗
2
1
-
0
Закрытый
4.4
ROWS/RANGE фреймы: rolling и cumulative метрики
↗
2
1
-
0
5. Дедупликация и golden record
4 урока
8
4
0м
0
Закрытый
5.1
Типы дублей и SQL-диагностика
↗
2
1
-
0
Закрытый
5.2
Дедуп через окна: row_number + фильтр
↗
2
1
-
0
Закрытый
5.3
Дедуп через anti-join/EXISTS
↗
2
1
-
0
Закрытый
5.4
Golden record: объединение конфликтующих источников
↗
2
1
-
0
6. Инкрементальные витрины и идемпотентность
4 урока
8
4
0м
0
Закрытый
6.1
Полная пересборка vs инкремент: критерии выбора
↗
2
1
-
0
Закрытый
6.2
Watermark и late arrivals: event_time vs load_time
↗
2
1
-
0
Закрытый
6.3
Upsert-паттерны: MERGE или insert+update
↗
2
1
-
0
Закрытый
6.4
Идемпотентность и контроль качества инкрементальной загрузки
↗
2
1
-
0
7. Историзация и SCD (Type 1/2) в витринах
3 урока
7
3
0м
0
Закрытый
7.1
SCD1 vs SCD2: выбор по бизнес-вопросам
↗
2
1
-
0
Закрытый
7.2
Valid-time таблицы и join 'на момент времени'
↗
3
1
-
0
Закрытый
7.3
Срез на дату и история изменений: два представления
↗
2
1
-
0
8. Производительность и EXPLAIN
3 урока
7
3
0м
0
Закрытый
8.1
Как читать EXPLAIN: где деньги в плане
↗
3
1
-
0
Закрытый
8.2
Оптимизация запросов: предфильтрация, проекция, порядок JOIN
↗
2
1
-
0
Закрытый
8.3
Индексы/партиции/статистики: что должен понимать аналитик
↗
2
1
-
0
9. Анти-паттерны аналитического SQL
3 урока
8
3
0м
0
Закрытый
9.1
JOIN-анти-паттерны: скрытый CROSS, WHERE после LEFT, неверны
↗
3
1
-
0
Закрытый
9.2
DISTINCT и 'GROUP BY на глаз': почему это опасно
↗
3
1
-
0
Закрытый
9.3
NULL-ловушки: NOT IN, сравнения дат/таймзон, неявные касты
↗
2
1
-
0
10. Проектирование витрин (data mart) под аналитику проду
3 урока
7
3
0м
0
Закрытый
10.1
Факты и измерения: гранулярность, conformed dimensions
↗
2
1
-
0
Закрытый
10.2
Слойность и единые определения метрик: staging → intermedia
↗
3
1
-
0
Закрытый
10.3
Retention и воронка: когорты, окна времени, edge cases
↗
2
1
-
0
11. Комплексный практикум “мини-прод”
4 урока
11
5
0м
0
Закрытый
11.1
Staging → Intermediate: очистка, дедуп, обогащение
↗
4
1
-
0
Закрытый
11.2
Финальная витрина + инкремент + late arrivals
↗
2
1
-
0
Закрытый
11.3
Контроль качества: SQL-тесты и диагностика отклонений
↗
2
1
-
0
Закрытый
11.4
Финал и благодарности
↗
3
2
-
0