Перейти к содержимому
Skein

data-engineering

Data engineering

Работа с данными в больших объёмах — как дёшево хранить огромные массивы и строить по ним аналитику и поиск. Продвинутый уровень; сначала изучи обычные базы данных.

9 юнитов·41 уроков·~40 ч

Начать трек →
00

С нуля

Перед senior-материалом: что вообще такое дата-инжиниринг и горстка слов, которые остальной трек считает уже знакомыми.
01

Oltp vs olap

План

OLTP против OLAP: разделение нагрузок, определяющее data engineering

Row-store OLTP и column-store OLAP оптимизируют противоположные формы: крошечные индексированные записи против огромных…

Собрано: 44% Срок: когда профинансируют Поддержать юнит →
02

Elt vs etl

План

ELT против ETL: где выполняется Transform и почему индустрия перевернулась

ETL трансформирует до загрузки в отдельном движке; ELT грузит сырьё в склад и трансформирует в SQL. Дешёвый колоночный…

Собрано: 38% Срок: когда профинансируют Поддержать юнит →
03

Parquet

План

Parquet: почему аналитика хранит колонки, а не строки

Parquet — колоночный, самоописывающий формат: в футере лежат min/max-статистики на каждую row group, поэтому фильтр…

Собрано: 45% Срок: когда профинансируют Поддержать юнит →
04

Materialized views

План

Материализованные представления: меняем устаревание и место на диске на скорость чтения

Материализованное представление хранит результат дорогого запроса вместо пересчёта при каждом чтении. Главное решение —…

Собрано: 70% Срок: когда профинансируют Поддержать юнит →
05

Event sourcing

План

Event sourcing: append-only лог как источник истины

Храни неизменяемый поток событий, меняющих состояние, а не само состояние — текущее состояние это свёртка лога слева.…

Собрано: 56% Срок: когда профинансируют Поддержать юнит →
06

Search

План

Полнотекстовый поиск: инвертированный индекс, анализ и почему ранжирование важнее совпадения

LIKE ''''%term%'''' сканирует каждую строку и игнорирует релевантность. Полнотекстовый поиск переворачивает задачу:…

Собрано: 51% Срок: когда профинансируют Поддержать юнит →
07

Vectors

План

Векторный поиск: треугольник recall–latency–память за RAG

Семантический поиск ранжирует эмбеддинги по расстоянию, но точный kNN — это O(N·d) и умирает на масштабе. ANN-индексы…

Собрано: 47% Срок: когда профинансируют Поддержать юнит →
08

Putting it together

План

Собираем вместе: система ломается на стыках, а не в хранилищах

Проследи один продукт через OLTP, склад, dbt, MV, лог событий, поиск и vector index. Каждое хранилище корректно;…

Собрано: 70% Срок: когда профинансируют Поддержать юнит →

Проекты по этому треку

Guided-проекты, которые закрепляют изученное здесь.

◆ Проекты

Фильтр Блума

Собери пространственно-эффективное вероятностное множество, отвечающее на запросы членства за O(1) с настраиваемой вероятностью ложных срабатываний, — и разберись, почему ложных отрицаний в нём быть не может принципиально.

◆ Проекты

Кодирование Хаффмана

Собери lossless-компрессор с нуля: постройте оптимальное дерево prefix-free кодов снизу вверх, выведи битовые строки и докажи, что round-trip точен, а результат короче кодирования фиксированной шириной.

◆ Проекты

Идемпотентный ETL-конвейер

Конвейеры не падают аккуратно — они падают в три часа ночи, на середине загрузки, и кто-то их перезапускает. Этот проект учит одному свойству, которое отличает любительский скрипт от настоящей дата-инженерии: прогон, который можно повторить сколько угодно раз и всё равно получить ровно одну копию каждой строки. Ты построишь пакетную загрузку, идемпотентный load, watermark для инкрементальных выгрузок и проверки качества данных, которые останавливают мусор, прежде чем он отравит всё ниже по течению.

◆ Проекты

Оптимизатор отчётной схемы

Отчётность — это место, где база либо оправдывает себя, либо нет: запросы широкие, таблицы большие, а «тормозит» — самый частый баг в продакшен-аналитике. Ты смоделируешь домен продаж и событий, напишешь честные медленные версии запросов для дашборда, а затем ускоришь их индексами и материализованными представлениями — и прочитаешь EXPLAIN ANALYZE, чтобы доказать ускорение, а не гадать о нём. Это сердце трека: превратить расплывчатое «отчёт подтормаживает» в измеренное, обоснованное изменение плана.

Следующий трек

AI / LLM

Как строить функции поверх больших языковых моделей — подавать им свои данные, давать вызывать твой код и проверять, что ответы и правда хорошие.