avatar
rzv Data Engineering
@rzv_de
30.04.2026 14:30
#термин_дня

Термины в DE, которые легко перепутать

🔸 Часть слов в инжиниринге данных значат совсем разное в зависимости от контекста. Подобрал семь таких — на которых сам спотыкался.

миграция — либо изменение структуры таблицы (Alembic, Flyway, Liquibase), либо переезд с одного инструмента на другой (с Oracle в Greenplum). Мне в контексте DE чаще встречался второй смысл, но с бэкендерами часто говорили о разном.

схема — либо структура колонок и типов внутри таблицы, либо namespace в базе (public.users vs raw.users). Во фразе «у нас в схеме dwh поменялась схема таблицы orders» оба значения встречаются подряд.

база данных — либо объект внутри СУБД (CREATE DATABASE foo), либо сама СУБД (Postgres, Greenplum, Clickhouse). Отсюда вопросы вроде «у нас одна база или несколько» — и непонятно, про что вообще речь.

транзакция — либо транзакция БД (BEGIN/COMMIT, ACID), либо бизнес-транзакция (платёж, перевод денег) в обсуждении требований. Иногда так ещё называют отдельную запись в логе операций — третий смысл, который всплывает в разговоре с аналитиками.

ключ — primary key (уникальный идентификатор строки), business key (уникальный с точки зрения бизнеса, типа email), surrogate key (искусственный, auto-increment или hash), partition key в Kafka (определяет, в какую партицию записать сообщение), hash key в Data Vault. Все «ключи», но решают разные задачи.

снэпшот — либо backup БД на момент времени, либо dbt snapshot для отслеживания SCD type 2, либо filesystem-снэпшот (ZFS, LVM, Btrfs), либо Iceberg/Delta Lake snapshot (версия таблицы для time travel).

partition — в Kafka это шард топика, по которому раскладываются сообщения для параллельного чтения консьюмерами; в Greenplum — секция таблицы, физически отдельный кусок данных, который можно дропнуть или подменить через EXCHANGE PARTITION; в Spark — кусок DataFrame, который обрабатывает один task внутри executor'а.
🔥 21
4
3 26 1.2K
avatar
rzv Data Engineering
@rzv_de
18.04.2026 14:27
Не пытайся изучить все новые сверкающие инструменты

Не сможешь.

Успокаивающая FOMO карта технологий (на 2024 год, с тех пор ещё больше):

https://api.mattturck.com/landscape/mad2024.pdf

p.s. да, полезно со временем выучить по одному инструменту из каждой категории, но это не значит что до тех пор нельзя работать работу

p.p.s. да, инструменты в основном зарубежные и редко встречаются на РУ рынке. но тут и там встречаются "убийцы гринпламов" и "вам срочно нужно узнать о технологии Х"

Не нужно. Lakehouse (Iceberg + Trino) всё чаще встречается в вакансиях, его можно. Остальное не нужно
👍 14
5
🤯 1
2 12 2.1K
avatar
rzv Data Engineering
@rzv_de
09.04.2026 08:10
Призываю пользоваться реферальной системой в компании

🔸 Многие любят кэшбеки, скидки, промо-коды и прочие плюшки. Но при этом не все знают, что в IT компаниях часто дают бонусы за помощь в найме подходящих разработчиков.

🔸 Так называемая "реферальная система" работает примерно так:
• в компании есть открытая вакансия (не обязательно по твоей специальности)
• ты можешь порекомендовать специалиста на эту вакансию во внутреннем портале, заполнив форму с резюме и контактами
• ты не участвуешь в процессе собеседований этого конкретного кандидата
• если человека нанимают и испыталка успешно пройдена, выплачивают бонус

Бонусы бывают от 50 до 150 тыс рублей, в зависимости от сеньорности кандидата, размера компании и проблемности вакансии.

🔸 Почему за это платят?
• ускоряется найм, т.к. по рекомендациям обычно приходят более подготовленные спецы
• сокращаются затраты на найм, т.к. нужно меньше платить за ATS, рекрутёрам, тратить время разработчиков и лидов на собесы

Т.е. если ты работаешь в компании, можешь небольшим вложением времени (5-10 мин на человека) добавить к ЗП неплохую премию.
А если ты ищешь работу, это хороший способ обойти первичные барьеры и поговорить с живыми людьми, повысить шанс трудоустройства.

Гарантий никаких, но и санкций каких-то я за это не вижу)

Давайте поможем друг другу!

Оставляй в комментариях свой тг-никнейм и роли, на которые открыты реферальные позиции
Кто в поиске - присылайте им в личку резюме, сопроводительное, контакты и короткую мотивацию, почему вас можно рекомендовать.

p.s. Слышал, что есть мнение: "По рефералке нужно рекомендовать только тех, кого я лично знаю и за кого готов поручиться". Я его не понимаю, давай обсудим в комментах, если для тебя это важно
👍 13
🔥 7
1
👎 1
1
2 17 2.7K
avatar
rzv Data Engineering
@rzv_de
31.03.2026 08:12
Ещё немного о Trino, который становится всё более популярным :)

🔸 У него много готовых коннекторов "из коробки". Для обращения в запросе к разным источникам достаточно сконфигурировать их как разные "каталоги".

🔸 Из интересных, помимо поддержки основных СУБД:
• Black hole (аналог /dev/null)
• Elasticsearch/Opensearch/Prometheus (агрегируем инфу по логам напрямую)
• Faker (ура, генератор данных для тестов)
• TPC-DS/TPC-H (ура, встроенные бенчмарки)
• Google sheets
• JMX/System (обращение к системным данным по всему кластеру Трино)
• Memory
• Thrift (вместо ODBC/JDBC)

🔸 Также есть плагины:
• exchange-filesystem
• exchange-hdfs
• functions-python
• geospatial
• kafka
• loki
• ml
• openlineage
• ranger
• teradata-functions

🔸 Так что если взять связку dbt + Trino, вы можете управлять практически чем угодно из одного места. Конечно, у каждого коннектора есть свои ограничения, маппинг типов данных не всегда удобен именно для текущего проекта с существующим легаси. Но мне нравится движение в эту сторону)
22
4
6 16 2.6K
avatar
rzv Data Engineering
@rzv_de
16.03.2026 07:59
Мне не нравятся существующие курсы по Python:
• абстрактные задачи из алгебры или геометрии
• перегружены историей языка и мнением автора в текстовых описаниях
• задачи не столько прививают навык и закрепляют материал, сколько дают дофамин от решения
• рассчитаны на 3 месяца или полгода

А ещё я не нашёл ни одного курса Python для дата инженеров!
Есть для дата саентистов, для аналитиков, для бэкендеров. Не порядок, надо исправлять.

🔸 Поэтому я написал свой курс по python.
Заходи смотреть пробный урок
Пробный урок

Ссылка на курс с промокодом 10% для подписчиков канала
Прошу оплачивать через неё, иначе степик забирает 40%)

Оставил в курсе только то, что сам использовал на позициях middle и senior DE.
Нет разделения на "начинающих" и "продолжающих".
Дойдёшь до конца — хватит для работы в роли DE.
🔥 25
😁 4
2
2
1
15 48 3.1K
avatar
rzv Data Engineering
@rzv_de
10.02.2026 15:54
Мой PR в образ andruche/greenplum приняли!

Забавно, что именно после ухода из найма я начал "контрибьютить в open source")

🔸 В чём вклад?
Раньше было захардкожено 2 сегмента. Теперь можно сбилдить любое число от 1 до 16.

Также есть предварительно собранные версии на 2, 4, 8 сегментов:
$ docker run --name gp7 -p 5432:5432 -d andruche/greenplum:7
$ docker run --name gp7 -p 5432:5432 -d andruche/greenplum:7-4seg
$ docker run --name gp7 -p 5432:5432 -d andruche/greenplum:7-8seg

$ docker run --name gp6 -p 5432:5432 -d andruche/greenplum:6
$ docker run --name gp6 -p 5432:5432 -d andruche/greenplum:6-4seg
$ docker run --name gp6 -p 5432:5432 -d andruche/greenplum:6-8seg


https://github.com/andruche/docker-greenplum/pull/6

Хочешь пощупать образ с настроенным PXF к S3?
Приходи на проект) rzvde.pro
🔥 17
9
😁 2
4 7 3.3K
avatar
rzv Data Engineering
@rzv_de
03.02.2026 16:11
Продолжаю помогать растущим DE каналам, потому что в своё время так же помогли мне)

От автора:

"""
Если вы только входите в data engineering или уже «крутитесь» в рабочих процессах заходите @marat_notes

Разбираю в ютубе моменты работы дата-инженера и какие паттерны помогут пройти алгособесы без зубрёжки. Всё это в циклах #КакРаботаютДанные (ETL, Airflow, Spark) и #ГрокаемАлгособесы с диаграммами, кодом и пояснениями (материалы на гитхаб).

Плюс честная рефлексия: как не выгорать в IT и жить свою счастливую жизнь.
Подписывайтесь — будет полезно и технически, и по жизни.
"""
Telegram
Марат и его записки программиста
Коротко о сложном: Инжиниринг данных, бэкенд, ИИ и личный опыт. Автор: Марат, 15 лет в разработке Vk: https://vkvideo.ru/@club231048746 GitHub: https://github.com/MaratNotes/marat_notes
7
👍 2
🔥 1
7 8 3.1K
avatar
rzv Data Engineering
@rzv_de
02.02.2026 11:31
Перезагружай цепочку дагов в Airflow с лёгкостью

Много лет работаю с Airflow, только недавно узнал о ``ExternalTaskMarker``. Допустим, нужно перезагружать несколько дагов "по цепочке". Для этого после загрузки DAG1 хотелось бы автоматически очищать соответствующий запуск в DAG2.

Оказывается, если в DAG2 создать сенсор на такой маркер в DAG1, то "Clear marker task" с опцией Recursive будет делать ровно это. По крайней мере для дагов с аналогичным расписанием в start_date + schedule.

Осталось только добавить идемпотентность вида "overwrite partition", "replace s3 object", "delete + insert" и тд - и задача решена)

p.s. Маркер добавлен, вроде, ещё аж в 2.0.0. И, судя по недавнему issues, сломан в 3.1.6 :D
🔥 17
4
👍 1
22 2.6K
avatar
rzv Data Engineering
@rzv_de
26.01.2026 07:50
rzv Data Engineering Фото: Анонс стрима в следующую среду: "Разбираемся с партицированием, распределением данных и SCD на примере Greenplum" Jan 21 • 19:00 – 21:00 мск • View details & RSVP https://calendar.app.google/VNdKUZxQMmx2Agy18 Запись будет выложена позже на YouTube. Пройдёмся сверху-вниз по сервису https://gpskew.rzvde.pro , обсудим нюансы и отвечу на вопросы Запись: https://youtu.be/r04U6c1d5Tk
Выложил запись, можно смотреть)

Новое видео на youtube, но не по мок-собесам.
Делитесь, поддерживайте лайком и комментарием, если хочется больше такого

https://youtu.be/r04U6c1d5Tk?si=tQwMTkETZamddZuj
YouTube
ПОНЯТНО про распределение, партиции и SCD2 на примере Greenplum | rzv_de
ПОДРОБНО про распределение, партицирование данных и SCD2 на примере Greenplum Обучающий сайт, по которому снят вебинар: https://gpskew.rzvde.pro 00:00:00 — Введение 00:03:18 — Распределение данных и skew 00:15:16 — Параллелизм и балансировка нагрузки 00:20:51 — Движение данных при джойнах 00:25:58 — Реплицированные таблицы 00:32:27 — Distribution vs Partitioning 00:40:51 — Медленно меняющиеся измерения (SCD) 00:52:56 — Полуинтервалы и temporal joins 01:05:55 — Сателлиты и оконные функции 01:23:06 — Вопросы и ответы Если хочешь больше контента по инжинирингу данных от сеньора из индустрии -- подписывайся на авторский канал: https://t.me/rzv_de Для записи на интервью пиши: https://t.me/razvodov_de_mentor Помогу начать работу в DE или повысить ЗП: https://rzvde.pro Материалы для самостоятельной подготовки и полезный чат: https://boosty.to/rzv_de Делись с заинтересованными, если понравилось и хочешь ещё. Пиши, если чего-то не хватило и что-то нужно доработать.
🔥 17
2
3 34 2.8K
avatar
rzv Data Engineering
@rzv_de
20.01.2026 17:47
Напоминаю, что стрим будет завтра вечером. Заходи, задавай вопросы, будем разбираться вместе)
👍 6
2 2 3.1K
avatar
rzv Data Engineering
@rzv_de
13.01.2026 12:45
Анонс стрима в следующую среду:

"Разбираемся с партицированием, распределением данных и SCD на примере Greenplum"

Jan 21 • 19:00 – 21:00 мск • View details & RSVP https://calendar.app.google/VNdKUZxQMmx2Agy18

Запись будет выложена позже на YouTube. Пройдёмся сверху-вниз по сервису https://gpskew.rzvde.pro , обсудим нюансы и отвечу на вопросы

Запись: https://youtu.be/r04U6c1d5Tk
🔥 14
👍 8
23 4.4K
avatar
rzv Data Engineering
@rzv_de
06.01.2026 16:01
rzv Data Engineering #вести_с_полей Напоминалка про NULL в sql Null не содержит значения (мы не знаем, какое значение атрибута было "в том месте и в то время"), но хранит тип данных. На продакшене, если добавляешь новую колонку "на будущее" или гармонизируешь данные из разных источников, вместо select ... , null as new_int_col , null as new_date_col , null as new_ts_col стоит писать select ... , (cast null as integer) as new_int_col , (cast null as date) as new_date_col , (cast null as timestamp with time zone) as new_ts_col Иначе жди проблемы интеграций "ниже по потоку" или при union all'ах. p.s. Ну и помни, что в SQL boolean может иметь три значения, и null != False != True :)
Как тебе последние посты? Больше такого или меньше? Пиши в комменты

Самый популярный за прошлый год -- про типы данных в NULL, может делать более прикладной контент?)

До "в чём разница между HAVING и WHERE" скатываться не буду)

upd: а 👍 это "больше такого" делать или "меньше, лучше попроще"?)

upd2: а ты сходи и на посты выше пореагируй активнее, чтобы я понял что тебе такое нравится и такого надо больше)
👍 42
🤔 1
12 3.2K
avatar
rzv Data Engineering
@rzv_de
06.01.2026 08:00
Живой пример моделирования данных с SCD2 в аналитике небольшой учебной платформы 2/2

А вот мой вариант решения
https://www.db-fiddle.com/f/iG51oyoBWkfK9q1HdFUuyz/0

🔸 Что хорошо:
- некоторые запросы можно (и нужно) переиспользовать
- данные честные, с учётом нюансов (не учитываюся те, кто ещё не завершил этап)
- с небольшой доработкой можно учесть случаи вроде "возвращения на предыдущий этап" или "бросил обучение"
- автоматизирован максимум того, что можно вычислить -- не нужно обновлять какие-то данные руками
- даёт наглядную статистику в табличках, к которым легко подключить дашборды

p.s. Текущая версия работает в google sheets + data lens = никакой бигдаты :(

p.p.s. Зато быстрое прототипирование и удобный ввод данных :)

p.p.p.s. Тот самый случай, когда "временное решение" остаётся надолго и становится основным
👍 6
🔥 3
1
1 11 1.5K