ДДмитрий Кузьмин | Инженерия данных

Дмитрий Кузьмин | Инженерия данных

@kuzmin_dmitry91💻 Технологии🇷🇺 Русский📅 март 2026 г.

Путь Data engineer от Junior до Lead. Делюсь мыслями, рабочими кейсами, обучением. Блог для junior - middle DE. Мой профиль: @dim4eg91 Сайт: https://kuzmin-dmitry.ru Практикум Data engineer: https://kuzmin-dmitry.ru/de_practicum

📊 Полная статистика📝 Все посты
1.5K
Подписчики
1.2K
Ср. охват
78.8%
Вовлечённость
20
Постов
~0.2
В день

Графики

📊 Средний охват постов

📉 ERR % по дням

📋 Публикации по дням

📎 Типы контента

Лучшие публикации

20 из 20
Kkuzmin_dmitry91
kuzmin_dmitry91
26 дек., 11:57

Друзья, с наступающим Новым годом! 🎄 Год получился насыщенным и местами непростым, но живым. Спасибо, что были рядом, читали, реагировали, писали в личку и поддерживали 🙌 Для себя в этом году я ещё раз понял простую вещь: решают не “рывки”, а маленькие шаги каждый день. Я ухожу на каникулы и вернусь уже в январе. Хорошо отдохните, перезагрузитесь и пусть 2026 принесёт спокойствие, силы и победы! ✨

👁 1.6K📷 photo
Kkuzmin_dmitry91
kuzmin_dmitry91
5 февр., 08:46

В реальном Data Engineering ты почти никогда не строишь “весь пайплайн с нуля”. Обычно тебе прилетает один кусок, максимум два: 🎯загрузить источник в STG так, чтобы оно не ломалось и не дубилось 🎯собрать витрину под BI/DS 🎯сделать инкремент вместо вечного “пересчитаем всё” 🎯разрулить ключи и качество данных 🎯понять, почему падают джобы и что с оркестрацией И почти все проблемы начинаются не в SQL или Spark, а на стыках: где меняется гранулярность, где не те ключи, где инкремент пересчитывае...

👁 1.6K
Kkuzmin_dmitry91
kuzmin_dmitry91
15 февр., 08:34

Друзья, привет ☀️ Хочу поделиться с вами новостями по разработке DE практикума. С прошлого апдейта я закрыл два больших куска курса: модуль про качество данных и модуль про Spark jobs. Параллельно укрепил «ядро» репозитория, чтобы стенд работал стабильнее, а новичок не тонул в вечном “а где смотреть, если упало”. Что именно добавилось. 🎯В модуле про Data Quality проверки перестали быть ручными “прогонами на удачу”. Теперь это нормальный шаг пайплайна: ключи, NULL, дубли, объёмы, диапазоны дат. ...

👁 1.6K
Kkuzmin_dmitry91
kuzmin_dmitry91
16 янв., 09:05

Первая рабочая неделя после праздников получилась неожиданно продуктивной. Зашёл в репозиторий практикума и увидел: за всё время разработки уже 105 коммитов — не ожидал такой цифры. В переводе на родной: я по чуть-чуть допиливаю проект: где-то упрощаю шаги для лучшего понимая, правлю инструкции и добавляю проверки, чтобы приходилось меньше гадать и был более понятный путь. Из последнего — собрал в единый чек лист по проблемам при поднятии кластера и проверке подключений к инструментам. Что улучш...

👁 1.4K📷 photo
Kkuzmin_dmitry91
kuzmin_dmitry91
25 дек., 08:54

Как я сделал стенд ближе к реальной работе Последние несколько дней у меня прошли в пересборках, отладке, миграции Docker на другой диск и странных падениях. Я переставил PyCharm, и новый интерфейс мне, кстати, очень понравился. Особенно прикольно контрастная тема - выколи глаз. Какие результаты: ✅ в стенде стабильно поднялись контейнеры Airflow ✅ и появился S3-слой через MinIO (как учебный data lake) Это уже меняет проект: 1) Появилась оркестрация, а не ручные запускалки До этого любой пайплайн...

👁 1.4K
Kkuzmin_dmitry91
kuzmin_dmitry91
14 янв., 09:40

Развилка в 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)...

👁 1.4K
Kkuzmin_dmitry91
kuzmin_dmitry91
28 янв., 09:24

Что нужно знать по SQL для Data Engineer: 3 приёма, которые я использую постоянно. Я собрал 3 приёма, которые у меня почти всегда встречаются в рабочих запросах. Если их освоить — вход в DE становится сильно спокойнее, а ты - увереннее. 1️⃣ CTE (WITH) — защита от раздутия метрик при JOIN. Самая частая ошибка — соединить две таблицы и получить сумму в 2–3 раза больше. Происходит потому что по одному id может быть несколько строк, отсюда JOIN размножает строки. Сначала схлопнуть правую таблицу до ...

👁 1.4K📷 photo
Kkuzmin_dmitry91
kuzmin_dmitry91
20 янв., 09:11

⚡️ Python для DE: что знать, где использовать и как он реально облегчает жизнь Спойлер: можно и без него, но будет сложнее. Зачем вообще учить 🎯 Его часто спрашивают на собесах. Обычно это база: списки/словари, функции, строки, файлы, чуть-чуть pandas/pySpark (редко). 🎯 Он не сложный и окупается быстро. Особенно когда ты уже пишешь расчёты в Spark — Python там прям рядом. Где я сам использую Python (в связке со Spark) Мой основной стек сейчас: Spark + HDFS + Hive. Раньше я писал почти всё на s...

👁 1.4K
Kkuzmin_dmitry91
kuzmin_dmitry91
13 янв., 08:41

Друзья, привет! Как ваши каникулы? 🥇После нового года не хотелось вылеживать на диване, поэтому старался поддерживать форму и ходить в зал. Также несколько раз гонял на каток прокачивать скилл. Чуть-чуть освоил торможение, повороты и задний ход (прям совсем чуть-чуть, но уже могу сдавать назад). 🗓 Пару вечеров я выделил под DE-практикум, хотя это было трудно: — дописал урок по загрузке из S3; — расширил учебный DAG в Airflow. ⌛ В первый рабочий день после праздников я снова забыл пароль от раб...

👁 1.4K
Kkuzmin_dmitry91
kuzmin_dmitry91
25 февр., 08:46

В чем я всё больше убеждаюсь, так это в том, что SQL — это ядро входа в data engineering. Это то самое, на чём потом держится всё остальное. В data engineering почти каждый день одна и та же работа: берёшь данные, которые приехали криво или не так, как ожидалось, и приводишь их в нормальное рабочее состояние. А кривизна там стандартная: дубли, пропуски, странные даты, сломанные связи, бывает что вообще 0 строк или сломался источник для витрины. И вот тут важный момент для тех, кто идёт из аналит...

👁 1.4K

Типы хуков

Нейтральный16 | 1.1K просм.
Статистика2 | 983 просм.
Провокация1 | 1.6K просм.
Вопрос1 | 1.4K просм.

Длина постов

Очень длинные (1000+)13 | 1.2K просм.
Короткие (<200)2 | 1.1K просм.
Длинные (500-1000)1 | 1.4K просм.
Средние (200-500)1 | 1.6K просм.

Влияние эмодзи

1.5K
С эмодзи (2)
1.1K
Без эмодзи (18)
+30.6% охвата

Типы контента

📷
5
photo
1.3K просм.
📝
15
text
1.1K просм.
Дмитрий Кузьмин | Инженерия данных (@kuzmin_dmitry91) — Telegram-канал | PostSniper