Друзья, с наступающим Новым годом! 🎄 Год получился насыщенным и местами непростым, но живым. Спасибо, что были рядом, читали, реагировали, писали в личку и поддерживали 🙌 Для себя в этом году я ещё раз понял простую вещь: решают не “рывки”, а маленькие шаги каждый день. Я ухожу на каникулы и вернусь уже в январе. Хорошо отдохните, перезагрузитесь и пусть 2026 принесёт спокойствие, силы и победы! ✨
Дмитрий Кузьмин | Инженерия данных
Путь Data engineer от Junior до Lead. Делюсь мыслями, рабочими кейсами, обучением. Блог для junior - middle DE. Мой профиль: @dim4eg91 Сайт: https://kuzmin-dmitry.ru Практикум Data engineer: https://kuzmin-dmitry.ru/de_practicum
Графики
📊 Средний охват постов
📉 ERR % по дням
📋 Публикации по дням
📎 Типы контента
Лучшие публикации
20 из 20В реальном Data Engineering ты почти никогда не строишь “весь пайплайн с нуля”. Обычно тебе прилетает один кусок, максимум два: 🎯загрузить источник в STG так, чтобы оно не ломалось и не дубилось 🎯собрать витрину под BI/DS 🎯сделать инкремент вместо вечного “пересчитаем всё” 🎯разрулить ключи и качество данных 🎯понять, почему падают джобы и что с оркестрацией И почти все проблемы начинаются не в SQL или Spark, а на стыках: где меняется гранулярность, где не те ключи, где инкремент пересчитывае...
Друзья, привет ☀️ Хочу поделиться с вами новостями по разработке DE практикума. С прошлого апдейта я закрыл два больших куска курса: модуль про качество данных и модуль про Spark jobs. Параллельно укрепил «ядро» репозитория, чтобы стенд работал стабильнее, а новичок не тонул в вечном “а где смотреть, если упало”. Что именно добавилось. 🎯В модуле про Data Quality проверки перестали быть ручными “прогонами на удачу”. Теперь это нормальный шаг пайплайна: ключи, NULL, дубли, объёмы, диапазоны дат. ...
Первая рабочая неделя после праздников получилась неожиданно продуктивной. Зашёл в репозиторий практикума и увидел: за всё время разработки уже 105 коммитов — не ожидал такой цифры. В переводе на родной: я по чуть-чуть допиливаю проект: где-то упрощаю шаги для лучшего понимая, правлю инструкции и добавляю проверки, чтобы приходилось меньше гадать и был более понятный путь. Из последнего — собрал в единый чек лист по проблемам при поднятии кластера и проверке подключений к инструментам. Что улучш...
Как я сделал стенд ближе к реальной работе Последние несколько дней у меня прошли в пересборках, отладке, миграции Docker на другой диск и странных падениях. Я переставил PyCharm, и новый интерфейс мне, кстати, очень понравился. Особенно прикольно контрастная тема - выколи глаз. Какие результаты: ✅ в стенде стабильно поднялись контейнеры Airflow ✅ и появился S3-слой через MinIO (как учебный data lake) Это уже меняет проект: 1) Появилась оркестрация, а не ручные запускалки До этого любой пайплайн...
Развилка в SQL: WHERE или агрегация с CASE? Есть таблица с событиями/заказами, где есть: ⭕️dt — string в формате YYYY-MM-DD (и ещё это partition key) ⭕️product — название продукта, иногда бывает 'unknown' Нужно по месяцам посчитать, сколько раз встречался unknown продукт. И тут два логичных решения — но они дают разный результат. Вариант 1 — вывести все месяцы и посчитать unknown (включая месяцы, где unknown = 0) select substr(dt, 1, 7) as ym, sum(case when product = 'unknown' then 1 else 0 end)...
Что нужно знать по SQL для Data Engineer: 3 приёма, которые я использую постоянно. Я собрал 3 приёма, которые у меня почти всегда встречаются в рабочих запросах. Если их освоить — вход в DE становится сильно спокойнее, а ты - увереннее. 1️⃣ CTE (WITH) — защита от раздутия метрик при JOIN. Самая частая ошибка — соединить две таблицы и получить сумму в 2–3 раза больше. Происходит потому что по одному id может быть несколько строк, отсюда JOIN размножает строки. Сначала схлопнуть правую таблицу до ...
⚡️ Python для DE: что знать, где использовать и как он реально облегчает жизнь Спойлер: можно и без него, но будет сложнее. Зачем вообще учить 🎯 Его часто спрашивают на собесах. Обычно это база: списки/словари, функции, строки, файлы, чуть-чуть pandas/pySpark (редко). 🎯 Он не сложный и окупается быстро. Особенно когда ты уже пишешь расчёты в Spark — Python там прям рядом. Где я сам использую Python (в связке со Spark) Мой основной стек сейчас: Spark + HDFS + Hive. Раньше я писал почти всё на s...
Друзья, привет! Как ваши каникулы? 🥇После нового года не хотелось вылеживать на диване, поэтому старался поддерживать форму и ходить в зал. Также несколько раз гонял на каток прокачивать скилл. Чуть-чуть освоил торможение, повороты и задний ход (прям совсем чуть-чуть, но уже могу сдавать назад). 🗓 Пару вечеров я выделил под DE-практикум, хотя это было трудно: — дописал урок по загрузке из S3; — расширил учебный DAG в Airflow. ⌛ В первый рабочий день после праздников я снова забыл пароль от раб...
В чем я всё больше убеждаюсь, так это в том, что SQL — это ядро входа в data engineering. Это то самое, на чём потом держится всё остальное. В data engineering почти каждый день одна и та же работа: берёшь данные, которые приехали криво или не так, как ожидалось, и приводишь их в нормальное рабочее состояние. А кривизна там стандартная: дубли, пропуски, странные даты, сломанные связи, бывает что вообще 0 строк или сломался источник для витрины. И вот тут важный момент для тех, кто идёт из аналит...