
🌸 Майская распродажа на Telega.in
С 12 по 18 мая — реклама со скидками до 70%!
В каталог
5.1

Инженерообязанный🫡 | Блог Дата Инженера
Блог дата-инженера. Пишу о том как легко попасть в АйТи на собственном примере, остаться. Катимся в этот мир вместе. Делюсь своим жизненным путём в мир данных, рабочими кейса, проблемами, курсами, видео и всякой всячиной😁 ☎️Для связи
Поделиться
В избранное
Купить рекламу в этом канале
Формат:
keyboard_arrow_down
- 1/24
- 3/72
1 час в топе / 24 часа в ленте
Количество:
keyboard_arrow_down
- 1
- 2
- 3
- 4
- 5
- 8
- 10
- 15
Стоимость публикации:
local_activity
5 594.40₽5 594.40₽local_mall
0.0%
Осталось по этой цене:0
Последние посты канала
play_circleВидео недоступно для предпросмотра
Дааа... Бывает и такое😅
772
10:35
11.05.2025
imageИзображение не доступно для предпросмотра
Ребят, уже чуть больше полугода🕛 веду свои телеграмм и Ютуб каналы.
Мне от всей души хочется сказать Вам огромное Спасибо😘 за поддержку моего контента. Ваши добрые и теплые слова дают воодушевление развиваться и придумывать что-то новое🤩 .
Я рад, что канал мне дал множество новых знакомств(всем привет🤝 , кто был на Митапе по Трино), знаний, умений общаться с людьми, даже в финансовом плане он меня не обделил😎 .
Это только малая часть Ваших слов благодарности (к сожалению телеграмм даёт возможность привязать только 10 скринов к сообщению, но поверьте я всё вижу), и спасибо Вам за них🤗 .
В итоге на будущее готовится неимоверное количество нового контента🔥 : подкасты, стримы, видоcы, групповые интенсивы, усовершенствование RoadMap'a, прожарки, короче на этот год, да и в целом, для развития канала я планирую много всего, а Вам остаётся только ждать⌛ !
Еще раз Всем спасибо🫡 , Всем добротных 💲 офферов💲 !
Мне от всей души хочется сказать Вам огромное Спасибо
Я рад, что канал мне дал множество новых знакомств(всем привет
Это только малая часть Ваших слов благодарности (к сожалению телеграмм даёт возможность привязать только 10 скринов к сообщению, но поверьте я всё вижу), и спасибо Вам за них
В итоге на будущее готовится неимоверное количество нового контента
Еще раз Всем спасибо
825
10:45
10.05.2025
imageИзображение не доступно для предпросмотра
Желаю Всем Мирного неба над головой и никогда не забывать своих Героев, и не забывать своё ВЕЛИКОЕ историческое прошлое!
Делюсь с Вами своими Героями:
921
08:37
09.05.2025
В этом видео:
Если у тебя есть идеи, предложения, обратная связь и т.д., можешь написать, как в комментариях под этим постом
4400
16:20
03.05.2025
imageИзображение не доступно для предпросмотра
Я расширил Roadmap для Data Engineer — теперь там есть материалы как для начинающих, так и для продвинутых DE по Spark!
📘 Для новичков:
• Папка SPARK/BASE содержит основы Spark. Что это такое, как он работает и т.д.
🚀 Для продвинутых:
• Папка SPARK/ARCHITECTURE - устройство Spark внутри
• Папка SPARK/ADVANCED охватывает темы оптимизации, join, shuffle, data skew, хинты и прочее.
Если ты только начинаешь или уже готовишься к реальным проектам — заходи, изучай, применяй! Буду рад обратной связи и предложениям по улучшению материала. 🚀
Если хочешь стать автором одного из разделов, делай fork репозитория и кидай PR!
Инструкция для новых авторов
1300
13:02
28.04.2025
А вот и оперативно запись с митапа подоспела!🧑🎓
1800
21:03
24.04.2025
imageИзображение не доступно для предпросмотра
Был сегодня с Женей на митапе от Cedrusdata в офисе ЛеманаПРО. Говорили о внедрении Trino и Iceberg на замену GreenPlum, а так же опыт внедрения и работы с Nessie.
Если про Trino и Iceberg я еще слышал, то про Nessie никогда🤷♂ .
В общем и целом — это был мой первый опыт посещения офлайн митапа. Было очень круто, отдельное спасибо всем выступающим, узнал очень много нового, были вкусные бутеры🍗 , но кофе, простите, было такое себе🤢 . Жаль, что опоздал, но работу никто не отменял👨💻 , поэтому то, что пропустил — обязательно посмотрю в записи.
Отдельное внимание уделю ребятам, которые подходили и благодарили за RoadMap, которые не бросили обучение(вам отдельно уважение💪 ), а полноценно вкатились в DE(в следующий раз с вами сфоткаюсь, как с Героями, чтобы Вас все видели), также приятно было увидеть ребят с менторства и просто коллег по цеху, с которыми приятно пообщались, очень рад был всех видеть (обязательно надо будет как-нибудь пересечься и посидеть в кафехе, поболтать побольше).🥲
Обидно, что не встретился со своим ментром😭 (Да!!! Айгуль, я знаю, что ты там была, но ушла, но ничего, я знаю - ты часто ходишь на подобные мероприятия😅 ).
Когда будут фоточки, видосы и презентации в открытом доступе, обязательно сделаю презентацию на эту тему, пока любуйтесь мной и Женей + схемой архитектуры хранилища в Лемана Тех🙃 . После такого мероприятия, реально хочется потыкаться во все эти инструменты, учитывая, что они набирают популярность, особенно заинтересовала Nessie (хоть она на сегодняшний день —сыровата).
В следующий раз, когда пойду на подобный митап, анонс выложу на канале, всем добра🤗
Если про Trino и Iceberg я еще слышал, то про Nessie никогда
В общем и целом — это был мой первый опыт посещения офлайн митапа. Было очень круто, отдельное спасибо всем выступающим, узнал очень много нового, были вкусные бутеры
Отдельное внимание уделю ребятам, которые подходили и благодарили за RoadMap, которые не бросили обучение(вам отдельно уважение
Обидно, что не встретился со своим ментром
Когда будут фоточки, видосы и презентации в открытом доступе, обязательно сделаю презентацию на эту тему, пока любуйтесь мной и Женей + схемой архитектуры хранилища в Лемана Тех
В следующий раз, когда пойду на подобный митап, анонс выложу на канале, всем добра
1700
20:13
24.04.2025
#соБЕСики
🔖 Вакансия: Data Engineer
🔖 Компания: Группа НЛМК Рабочие профессии
🔖 Сколько просил: 280-330 тыс. рублей(назвал 300 комфортно)
🔖 Месяц прохождения собеседования: Апрель 2025
🔖 Формат работы: Удалёнка
🔖 Оформление: ТК
🔖 Требования вакансии:
⏺ Построение витрин в S3 хранилище, ClickHouse;
⏺ Создание DAG-ов в Airflow;
⏺ Написание ETL пайплайнов на PySpark;
⏺ Оптимизация PySpark кода;
⏺ Внедрение DQC (Data Quality Checks)
⏺ Визуализация результатов на дашбордах (Superset, Redash);
⏺ Проведение код-ревью, рефакторинг Python кода;
🔖 Стек:
PySpark, Kafka, Airflow, DBT, flyway, Hadoop, ClickHouse, PostgreSQL, Kubernetes, Superset
🔖 Этапы собеседований:
HR(5 минут)➡ Тех.собеседование(2 часа)
🔖 Процесс прохождения:
Разговор с HR был 5 минут, спросила про опыт и сразу пригласила на техническое собеседование.
Собеседование началось с описания вакансии и чем предстоит заниматься. В двух словах команда состоит из 6 человек: 3 DevOps и 3 DE + ищут еще 2х. Задачи на ближайшее время:
1) Перевод тасок с Pandas на PySpark
2) Парсинг данных из разных источников: FTP, PSQL, Oracle, API
3) Создание локального хранилища DE метаинфы на Postgres
4) Внедрение ClickHouse для горячего хранилища данных
5) и т.д.
Следом поспрашивал за мой опыт, где я ему четко рассказал, какими я задачами занимался и с какими инструментами работал. Что мне понравилось - собеседующий спрашивал по резюме, ему реально было интересно, как и с чем я работал, как загружали данные, спрашивал - с какими сталкивался трудностями, и даже для себя я что-то подсветил. Ему вообще было все равно, с какими я работал инструментами и то , что у меня только учебных опыт со Спарком. После чего начал задавать теоретические вопросы по Spark, ClickHouse, AirFlow, Python. В целом вопросы несложные, но иногда были и такие, где нужно подумать.
🔖 Вопросы технического собеседования:
🗣 PySpark:
⏺ Что делает shuffle в PySpark?
⏺ Какие типы трансформаций бывает?
⏺ Какие проблемы могут быть с shuffle?
⏺ Что такое spill? И в чем их причины? Какие варианты решения проблем со spill-файлами?
⏺ Что такое data skewing? Как можно решить данную проблему?
⏺ В чем различие coalesce и repartition?
⏺ Чем отличается RDD от DataFrame?
⏺ Для чего в Spark используется cache?
🗣 Python:
⏺ Что такое генераторы? Какие есть варианты определения генераторов?
⏺ Что такое итератор?
⏺ Что может быть ключём словаря?
⏺ Класс вида:
может быть ключём словаря? Если нет, то что необходимо добавить?
⏺ в чем различие между return и yield?
⏺ Что обозначает ключевое слово is?
⏺ Какие есть изменяемые и неизменяемые типы данных?
⏺ Есть функция, в ней передается аргумент **qwe, что это обозначает?
⏺ Как вы дебажите код?
🗣 AirFlow:
⏺ Из каких основных частей состоит?
⏺ Что такое сенсер и для чего он нужен?
⏺ Какие операторы вы знаете?
🗣 ClickHouse
⏺ Что такое гранулярность?
⏺ В чем различие primary key и order by при создании таблицы?
⏺ Где хранится индекс?
⏺ Что такое кардинальность и как она аффектит ключ распределения?
⏺ Что такое партиции и как они совмещены с primary key?
🔖 Итоговое мнение:
В вакансии написано много текста, о котором меня даже не спрашивали. Само собеседование мне зашло, особенно понравилось, что собеседующий опирается в первую очередь на те инструменты, с которыми ты работал, и что немало важно на твоё резюме, а не просто даёт шаблонный список вопросов.
Общение было приятное и уважительное, как я уже говорил — мне зашло, понравились вопросы, которые мне задавали, то, что не знал для себя подсветил и уже в доке почитал.
Если интересно (как я волнуюсь🫠 , страдаю😨 и в целом умственно умираю🤯 ), запись собеседования можно приобрести 💲 и послушать ➡ тут.
PySpark, Kafka, Airflow, DBT, flyway, Hadoop, ClickHouse, PostgreSQL, Kubernetes, Superset
HR(5 минут)
Разговор с HR был 5 минут, спросила про опыт и сразу пригласила на техническое собеседование.
Собеседование началось с описания вакансии и чем предстоит заниматься. В двух словах команда состоит из 6 человек: 3 DevOps и 3 DE + ищут еще 2х. Задачи на ближайшее время:
1) Перевод тасок с Pandas на PySpark
2) Парсинг данных из разных источников: FTP, PSQL, Oracle, API
3) Создание локального хранилища DE метаинфы на Postgres
4) Внедрение ClickHouse для горячего хранилища данных
5) и т.д.
Следом поспрашивал за мой опыт, где я ему четко рассказал, какими я задачами занимался и с какими инструментами работал. Что мне понравилось - собеседующий спрашивал по резюме, ему реально было интересно, как и с чем я работал, как загружали данные, спрашивал - с какими сталкивался трудностями, и даже для себя я что-то подсветил. Ему вообще было все равно, с какими я работал инструментами и то , что у меня только учебных опыт со Спарком. После чего начал задавать теоретические вопросы по Spark, ClickHouse, AirFlow, Python. В целом вопросы несложные, но иногда были и такие, где нужно подумать.
class MyClass:
pass
может быть ключём словаря? Если нет, то что необходимо добавить?
В вакансии написано много текста, о котором меня даже не спрашивали. Само собеседование мне зашло, особенно понравилось, что собеседующий опирается в первую очередь на те инструменты, с которыми ты работал, и что немало важно на твоё резюме, а не просто даёт шаблонный список вопросов.
Общение было приятное и уважительное, как я уже говорил — мне зашло, понравились вопросы, которые мне задавали, то, что не знал для себя подсветил и уже в доке почитал.
Если интересно (как я волнуюсь
1400
16:04
23.04.2025
#соБЕСики
🔖 Вакансия: Data Engineer
🔖 Компания: Группа НЛМК Рабочие профессии
🔖 Сколько просил: 280-330 тыс. рублей(назвал 300 комфортно)
🔖 Месяц прохождения собеседования: Апрель 2025
🔖 Формат работы: Удалёнка
🔖 Оформление: ТК
🔖 Требования вакансии:
⏺ Построение витрин в S3 хранилище, ClickHouse;
⏺ Создание DAG-ов в Airflow;
⏺ Написание ETL пайплайнов на PySpark;
⏺ Оптимизация PySpark кода;
⏺ Внедрение DQC (Data Quality Checks)
⏺ Визуализация результатов на дашбордах (Superset, Redash);
⏺ Проведение код-ревью, рефакторинг Python кода;
🔖 Стек:
PySpark, Kafka, Airflow, DBT, flyway, Hadoop, ClickHouse, PostgreSQL, Kubernetes, Superset
🔖 Этапы собеседований:
HR(5 минут)➡ Тех.собеседование(2 часа)
🔖 Процесс прохождения:
Разговор с HR был 5 минут, спросила про опыт и сразу пригласила на техническое собеседование.
Собеседование началось с описания вакансии и чем предстоит заниматься. В двух словах команда состоит из 6 человек: 3 DevOps и 3 DE + ищут еще 2х. Задачи на ближайшее время:
1) Перевод тасок с Pandas на PySpark
2) Парсинг данных из разных источников: FTP, PSQL, Oracle, API
3) Создание локального хранилища DE метаинфы на Postgres
4) Внедрение ClickHouse для горячего хранилища данных
5) и т.д.
Следом поспрашивал за мой опыт, где я ему четко рассказал, какими я задачами занимался и с какими инструментами работал. Что мне понравилось - собеседующий спрашивал по резюме, ему реально было интересно, как и с чем я работал, как загружали данные, спрашивал - с какими сталкивался трудностями, и даже для себя я что-то подсветил. Ему вообще было все равно, с какими я работал инструментами и то , что у меня только учебных опыт со Спарком. После чего начал задавать теоретические вопросы по Spark, ClickHouse, AirFlow, Python. В целом вопросы несложные, но иногда были и такие, где нужно подумать.
🔖 Вопросы технического собеседования:
🗣 PySpark:
⏺ Что делает shuffle в PySpark?
⏺ Какие типы трансформаций бывает?
⏺ Какие проблемы могут быть с shuffle?
⏺ Что такое spill? И в чем их причины? Какие варианты решения проблем со spill-файлами?
⏺ Что такое data skewing? Как можно решить данную проблему?
⏺ В чем различие coalesce и repartition?
⏺ Чем отличается RDD от DataFrame?
⏺ Для чего в Spark используется cache?
🗣 Python:
⏺ Что такое генераторы? Какие есть варианты определения генераторов?
⏺ Что такое итератор?
⏺ Что может быть ключём словаря?
⏺ Класс вида:
может быть ключём словаря? Если нет, то что необходимо добавить?
⏺ в чем различие между return и yield?
⏺ Что обозначает ключевое слово is?
⏺ Какие есть изменяемые и неизменяемые типы данных?
⏺ Есть функция, в ней передается аргумент **qwe, что это обозначает?
⏺ Как вы дебажите код?
🗣 AirFlow:
⏺ Из каких основных частей состоит?
⏺ Что такое сенсер и для чего он нужен?
⏺ Какие операторы вы знаете?
🗣 ClickHouse
⏺ Что такое гранулярность?
⏺ В чем различие primary key и order by при создании таблицы?
⏺ Где хранится индекс?
⏺ Что такое кардинальность и как она аффектит ключ распределения?
⏺ Что такое партиции и как они совмещены с primary key?
🔖 Итоговое мнение:
В вакансии написано много текста, о котором меня даже не спрашивали. Само собеседование мне зашло, особенно понравилось, что собеседующий опирается в первую очередь на те инструменты, с которыми ты работал, и что немало важно на твоё резюме, а не просто даёт шаблонный список вопросов.
Общение было приятное и уважительное, как я уже говорил — мне зашло, понравились вопросы, которые мне задавали, то, что не знал для себя подсветил и уже в доке почитал.
Если интересно (как я волнуюсь🫠 , страдаю😨 и в целом умственно умираю🤯 ), запись собеседования можно приобрести 💲 и послушать ➡ тут.
PySpark, Kafka, Airflow, DBT, flyway, Hadoop, ClickHouse, PostgreSQL, Kubernetes, Superset
HR(5 минут)
Разговор с HR был 5 минут, спросила про опыт и сразу пригласила на техническое собеседование.
Собеседование началось с описания вакансии и чем предстоит заниматься. В двух словах команда состоит из 6 человек: 3 DevOps и 3 DE + ищут еще 2х. Задачи на ближайшее время:
1) Перевод тасок с Pandas на PySpark
2) Парсинг данных из разных источников: FTP, PSQL, Oracle, API
3) Создание локального хранилища DE метаинфы на Postgres
4) Внедрение ClickHouse для горячего хранилища данных
5) и т.д.
Следом поспрашивал за мой опыт, где я ему четко рассказал, какими я задачами занимался и с какими инструментами работал. Что мне понравилось - собеседующий спрашивал по резюме, ему реально было интересно, как и с чем я работал, как загружали данные, спрашивал - с какими сталкивался трудностями, и даже для себя я что-то подсветил. Ему вообще было все равно, с какими я работал инструментами и то , что у меня только учебных опыт со Спарком. После чего начал задавать теоретические вопросы по Spark, ClickHouse, AirFlow, Python. В целом вопросы несложные, но иногда были и такие, где нужно подумать.
class MyClass:
pass
может быть ключём словаря? Если нет, то что необходимо добавить?
В вакансии написано много текста, о котором меня даже не спрашивали. Само собеседование мне зашло, особенно понравилось, что собеседующий опирается в первую очередь на те инструменты, с которыми ты работал, и что немало важно на твоё резюме, а не просто даёт шаблонный список вопросов.
Общение было приятное и уважительное, как я уже говорил — мне зашло, понравились вопросы, которые мне задавали, то, что не знал для себя подсветил и уже в доке почитал.
Если интересно (как я волнуюсь
1400
16:04
23.04.2025
#кейсы
Зацените один из кейсов оптимизации запросов на ГП.
Если в двух словах, есть таблица, в ней 300 млн. строк. По итогу - мне нужно из данного запроса достать только определённые организации + проставить их имена. После некоторых преобразований я довел запрос к следующему виду:
Запрос выполняется 30 минут. И понимаю, что так дела не делаются, нужно еще ускорять его работу.⌛ На ум приходит идея - накатить BitMap индекс(колонка имеет маленькую кардинальность), накатываю⌚ . Жду час — не накатился. А мне витрину вот-вот отдавать нужно. И тут я вспоминаю🤯 - "Что такое IN" — это же тот же JOIN , только в профиль(обычно, под капотом, это Nested Loop JOIN).
В итоге - 30 минут меня никак не устраивают, и я создаю "суррогатную", реплицируемую на всех сегментах, временную таблицу:
И Джойню её с основной:
В данном случае "под капотом" появляется Hash JOIN , и соотвественно запрос выполняется за 8 минут, что в свою очередь ускоряет работу в 3-4 раза.
Обидно, что мне сразу не пришла эта тема в голову, и потерял достаточно времени на тестирование какого-то дерьма😖 . Но этот пример я уже запомню точно надолго и в следующий раз сделаю всё чётко и быстро.👨💻
Если вы хотите увидеть, пример кейса полной оптимизации запроса с подробнейшим объяснением, то его можно приобрести➡ тут.😎 Ну или если вдруг вы хотите поддержать мой контент💲 , тоже не обижусь😅
Зацените один из кейсов оптимизации запросов на ГП.
Если в двух словах, есть таблица, в ней 300 млн. строк. По итогу - мне нужно из данного запроса достать только определённые организации + проставить их имена. После некоторых преобразований я довел запрос к следующему виду:
select
id,
organization_id,
case
when mr.organization_id = '1'
then 'bank_1'
when mr.organization_id = '2'
then 'bank_2'
when mr.organization_id = '3'
then 'bank_3'
when mr.organization_id = '4'
then 'bank_4'
when mr.organization_id = '5'
then 'bank_5'
when mr.organization_id = '6'
then 'bank_6'
end as organization_name
from table_300_mln_str mr
where
1 = 1
and mr.organization_id in (
'1',
'2',
'3',
'4',
'5',
'6')
Запрос выполняется 30 минут. И понимаю, что так дела не делаются, нужно еще ускорять его работу.
В итоге - 30 минут меня никак не устраивают, и я создаю "суррогатную", реплицируемую на всех сегментах, временную таблицу:
create unlogged table organization as (
select '1' id, 'bank_1' org_name
union all
select '2', 'bank_2'
union all
select '3', 'bank_3'
union all
select '4', 'bank_4'
union all
select '5', 'bank_5'
union all
select '6', 'bank_6'
)
distributed replicated
И Джойню её с основной:
select
mr.id,
organization_id,
org_name
from table_300_mln_str mr
join organization o
on mr.organization_id = o.id
В данном случае "под капотом" появляется Hash JOIN , и соотвественно запрос выполняется за 8 минут, что в свою очередь ускоряет работу в 3-4 раза.
Обидно, что мне сразу не пришла эта тема в голову, и потерял достаточно времени на тестирование какого-то дерьма
Если вы хотите увидеть, пример кейса полной оптимизации запроса с подробнейшим объяснением, то его можно приобрести
1100
10:33
23.04.2025
close
Отзывы канала
Отзывов нет
Лучшие в тематике
Статистика канала
Рейтинг
5.1
Оценка отзывов
0.0
Выполнено заявок
0
Подписчики:
1.7K
Просмотры на пост:
lock_outline
ER:
46.0%
Публикаций в день:
0.0
CPV
lock_outlineВыбрано
0
каналов на сумму:0.00₽
Подписчики:
0
Просмотры:
lock_outline
Перейти в корзинуКупить за:0.00₽
Комментарий