Learning Platform
Урок 15.03 · 8 мин
Продвинутый
RoadmapCareerNext steps

Если ты дошёл сюда — снимаю шляпу. Ты не просто прочитал теорию: ты сейчас умеешь решать аналитические задачи, которые в крупных компаниях получают junior data analyst в первый месяц работы. И ты понимаешь, почему SQL работает именно так — не на уровне «копипаст со StackOverflow», а на уровне реляционной модели и алгебры.

Что у тебя в руках после этого курса

Ты можешь:

  • Прочитать любой SQL-запрос на 100 строк и понять, что он делает — раскладывая его на цепочку операций реляционной алгебры.
  • Спроектировать схему для нового сервиса так, чтобы она прошла нормализацию до 3NF и не страдала от анти-паттернов.
  • Использовать оконные функции уверенно — для top-N per group, running totals, rank-by-category, cohort-анализа.
  • Понимать NULL-семантику и трёхзначную логику, не попадая в типичные ловушки.
  • Читать EXPLAIN на уровне «здесь Index Scan, здесь Hash Join, здесь Sort — и понимаю, чего это стоит».
  • Знать, когда использовать рекурсивные CTE, когда транзакции с SAVEPOINT, когда денормализацию через materialized view.

Это полноценная middle-позиция в большинстве компаний, где есть PostgreSQL.

Что ты ещё НЕ знаешь — и где это получить

SQL — это огромная область. Этот курс закрыл фундамент и большую часть прикладной части. Дальше — три направления, в которые имеет смысл расти.

Internals (как СУБД устроена изнутри)

Если ты хочешь дойти до senior DE / DBA или просто понять, почему один запрос на 1M строк работает миллисекунды, а другой — час, тебе нужно знать:

  • Как страницы B-tree устроены и почему LIKE '%text' не использует индекс.
  • Что такое MVCC, как PostgreSQL хранит несколько версий одной строки, что делает VACUUM.
  • Как работает планировщик: cost estimation, статистика, селективность.
  • Когда оптимизатор ошибается и как ему «подсказать».
  • Что такое SSI (Serializable Snapshot Isolation) и как PostgreSQL добивается полной сериализуемости без блокировок.

Это будет курс SQL Internals: Middle to Senior на этой же платформе — он выйдет следующим, и сделан как прямое продолжение этого. До железа, без воды.

Distributed / Big Data SQL

PostgreSQL — это single-node. В реальном DE-стеке вы часто работаете с распределёнными аналитическими движками:

  • ClickHouse — OLAP-движок с колоночным хранением. Идеально для миллиардов строк с агрегациями. У нас есть отдельный курс.
  • Apache Spark / DataFusion — distributed обработка для ETL и ad-hoc аналитики. Тоже отдельные курсы на платформе.
  • Apache Kafka + ksqlDB — стриминг + SQL поверх потоков. Курс по Kafka покрывает основы.

SQL, который ты выучил, — лингва-франка всех этих систем. Синтаксис в них почти одинаковый, отличается семантика, оптимизатор и хранение.

Smaller engines for local work

  • DuckDB — «SQLite для аналитики». Запускается локально, читает CSV/Parquet, идеально для Jupyter-блокнотов и быстрых exploration. Использует тот же синтаксис.
  • pglite (с которым ты работал весь курс) — тот же PostgreSQL, но в WASM. Используется в браузерах, edge-сценариях, embedded-аналитике.

Что почитать дальше

Если хочешь читать книги по теме (бесплатные + платные):

  • «PostgreSQL Internals» (Egor Rogov, free PDF) — лучшее введение в нутро Postgres.
  • «Use The Index, Luke» (Markus Winand, free) — единственная книга, которую обязан прочитать любой, кто пишет SQL.
  • «Designing Data-Intensive Applications» (Martin Kleppmann) — не про SQL, но про распределённые системы вокруг него. Обязательно.
  • «SQL Antipatterns» (Bill Karwin) — каталог типичных ошибок, чем длиннее живёшь с SQL, тем чаще обращаешься.
SQL Internals: с чего начать погружение Data Modeling: схема как проектирование, не как DDL dbt I: инженерия данных на SQL

Финал

Закончи всё одним тестом — не ради оценки, а ради чувства, что ты прошёл курс целиком:

Свободный sandbox. Все таблицы вселенной (default+full). Напиши любой запрос — что-нибудь, что тебе любопытно узнать о магазине. Это твоя последняя страница курса.

PostgreSQL

Удачи. До встречи в SQL Internals.

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 3