Чтобы найти работу, мало пройти курс и сделать классное резюме. На практике, чтобы выделиться на собеседовании, нужно понимать, что лежит под капотом каждого инструмента, а не следовать конкретному заученному алгоритму.
Чтобы попрактиковаться в этом, приходите на бесплатный вебинар, где будем разбирать реальное тестовое задание, которое дают аналитикам в Альфа Банке.
Что будем делать на вебинаре:
Вебинар проведет Денис Иванов, ведущий продуктовый аналитик
Please open Telegram to view this post
VIEW IN TELEGRAM
#соБЕСики
🔖 Вакансия: Data engineer
🔖 Компания: BNPL сервис
🔖 Предполагаемая вилка: 300-390 gross
🔖 Месяц прохожденияa собеседования: Март 2025
🔖 Формат работы: Офис\Гибрит\ Фулл. удалёнка с любой точки
🔖 Оформление: ТК, ИП, ГПХ
🔖 Требования вакансии:
⏺ SQL на хорошем уровне;
⏺ Построение DWH;
⏺ Хорошее знание Python;
⏺ Умение работать с AirFlow;
⏺ опыт настройки и использования Apache Kafka, знание Avro формата;
🔖 Стек:
GreenPlum, PostgreSQL, AirFlow, NiFi, S3? .
🔖 Этапы собеседований:
HR)➡️ Тех.собеседование по технологиям➡️ Тех.собеседование по (вся команда)
🔖 Процесс прохождения:
Начну с офигенного разговора с HR. Я еще ни разу так не кайфовал от общения с рекрутёром, мы после обсуждения опыта и вакансии, начали разговаривать на разные темы найма и всего остального. Сразу видно, что общаюсь с грамотным специалистом, плюс ко всему оказалось, что она ведет свой канал, и мне очень понравился у нее пост. Советую к прочтению, и даже очень хочу с ней провести какой-нибудь стрим на тему трудоустройства в IT.
Теперь переходим к техсобесу. На нём присутствовала вся команда. В общем и целом - каждый спросил у меня какой-либо вопрос. Очень много вопросов было по моему опыту, и как я решал те или иные задачи. Из команды уходит сотрудник, который поддерживал у них всю архитектуру построенную на NiFi, поэтому ищут спеца, который будет продолжать его поддерживать. Хотя в вакансии написано только о теоретических знаниях данного продукта. Также спрашивали об оптимизации запросов и пару вопросов задали по AirFlow.
Дальше уже я спросил, как у них устроена архитектура, на самом деле ничего сложного: стрим через NiFi, батч грузят через AirFlow, хранилище построено на GreenPlum в облаке, там же строятся витрины с помощью DBT и транслируются в PostgreSQL, где с данными проводится полноценная аналитика.
Еще должен быть этап по архитектуре, но думаю меня туда уже не позовут.😅
🔖 Вопросы технического собеседования:
⏺ Какие процессоры использовали в NiFi?
⏺ Настраивали ли схемы, если да, то в каких модулях?
⏺ Как считать данные из каталога?
⏺ Зачем при считывании CSV файлов данные переводили в AVRO формат?
⏺ В случае сбоя одного сервера с NiFi - как его перезапустить?
⏺ Чем Атрибут отличается от Контекста?
⏺ Теряет ли данные NiFi, если произошел сбой программы?
⏺ Расскажи о логировании в NiFi?
⏺ NiFi работает в кластере и считываем данные из кафки, один из серверов сгорает, и мы теряем данные, как повторно обработать потерянные данные?
⏺ Таска в AirFlow упала с ошибкой, как сделать так, чтобы не смотря на ошибку, следующая таска запустилась?
⏺ Как в AirFlow в зависимости от условия, продолжить обработку по нужной ветки ДАГа?
⏺ Как оптимизируется запрос?
⏺ Как эффективно удалить дубликаты строк в большой таблице?
⏺ Что будет делать, если в плане запроса увидели Nested Loop?
🔖 Время прохождения собеседования:
1,5 часа(разговорились о всяком) + 1 час
🔖 Итоговое мнение:
В общем и целом - такой рекрутёрский созвон я никогда не забуду, это прям эталон всех созвонов. А техсобес прошел- тоже приятно, никто на меня не давил, все общались на одном уровне, очень много говорили о реальном опыте работы. Поэтому кто шарит за NiFi... Welcome. Контакты для связи в приложении.
Кстати, ребята собираются уходить со временем от NiFi, так как проблематично найти спеца.😅
GreenPlum, PostgreSQL, AirFlow, NiFi, S3? .
HR)
Начну с офигенного разговора с HR. Я еще ни разу так не кайфовал от общения с рекрутёром, мы после обсуждения опыта и вакансии, начали разговаривать на разные темы найма и всего остального. Сразу видно, что общаюсь с грамотным специалистом, плюс ко всему оказалось, что она ведет свой канал, и мне очень понравился у нее пост. Советую к прочтению, и даже очень хочу с ней провести какой-нибудь стрим на тему трудоустройства в IT.
Теперь переходим к техсобесу. На нём присутствовала вся команда. В общем и целом - каждый спросил у меня какой-либо вопрос. Очень много вопросов было по моему опыту, и как я решал те или иные задачи. Из команды уходит сотрудник, который поддерживал у них всю архитектуру построенную на NiFi, поэтому ищут спеца, который будет продолжать его поддерживать. Хотя в вакансии написано только о теоретических знаниях данного продукта. Также спрашивали об оптимизации запросов и пару вопросов задали по AirFlow.
Дальше уже я спросил, как у них устроена архитектура, на самом деле ничего сложного: стрим через NiFi, батч грузят через AirFlow, хранилище построено на GreenPlum в облаке, там же строятся витрины с помощью DBT и транслируются в PostgreSQL, где с данными проводится полноценная аналитика.
Еще должен быть этап по архитектуре, но думаю меня туда уже не позовут.😅
1,5 часа(разговорились о всяком) + 1 час
В общем и целом - такой рекрутёрский созвон я никогда не забуду, это прям эталон всех созвонов. А техсобес прошел- тоже приятно, никто на меня не давил, все общались на одном уровне, очень много говорили о реальном опыте работы. Поэтому кто шарит за NiFi... Welcome. Контакты для связи в приложении.
Кстати, ребята собираются уходить со временем от NiFi, так как проблематично найти спеца.😅
Please open Telegram to view this post
VIEW IN TELEGRAM
Google Docs
Вакансия: Data engineer в сервис BNPL
Вакансия: Data engineer Формат работы: на выбор - офис, гибрид, удаленка (можно вне РФ) Занятость: full-time с гибким началом рабочего дня Условия: оклад 300-390К руб gross + ДМС + курсы англ языка и разговорная практика с европейским офисом + ежегодно повышаем…
На этой неделе на канале выйдет годнота💪 по простецкой оптимизации запросов в СУБД GreenPlum без всяких заумных файловых дескрипторов и ассемблеров(кто в теме тот в теме😁).
Что не мало важно, будет с десяток различных кейсов на основе, которых вы и поймете, что оптимизация запроса достаточно важная штука (особенно в GP), без которой ваши запросы будут крутиться долго и упорно!👨💻
Еще с того года планировал видос и вот настало его время))😂
Что не мало важно, будет с десяток различных кейсов на основе, которых вы и поймете, что оптимизация запроса достаточно важная штука (особенно в GP), без которой ваши запросы будут крутиться долго и упорно!
Еще с того года планировал видос и вот настало его время))😂
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Sergei Shabanov
Привет) может кто помочь с Trino, iceberg(nessie catalog)?
Данные лежат в s3 в паркетах. Как можно создать таблицы, чтобы эти данные в них появились ?
Данные лежат в s3 в паркетах. Как можно создать таблицы, чтобы эти данные в них появились ?
Когда я только начинал работать, то вообще не понимал, для чего нужно оптимизировать запросы. И спустя полгода плотной работы с GP(и по совместительству с создания первого видео по GP) я понял, что без оптимизации далеко не уйдёшь.
Это видео поможет Вам на простых примерах понять, как именно стоит оптимизировать запросы и на что обращать внимание.
Если у тебя остались вопросы по GreenPlum, оптимизации, твоим кейсам и т.д., обязательно задавай их в гугл-таблице, либо в комментариях(я сам их перенесу). На них ответит Никита Целищев — один из авторов курса от ЯП по GreenPlum.
Бот для просмотра YouTube
@NamelessNetwork_bot
Промокод: DE
(FREE 2 недели)
Так же в боте можно приобрести роутер со встроенным "ускорителем" YouTube на всех домашних устройствах по единой подписке.
Please open Telegram to view this post
VIEW IN TELEGRAM
Google Docs
Воросы по Greenplum
Forwarded from Гульжана Менажиева
«Волки»: плюсы, минусы. Или как не ошибиться при выборе наставника.
Этим постом завершаю цикл ответов на вопрос «Накручивать ли опыт?». Предыдущие 2 сообщения читайте выше.
Напомню, «волки» — это каста ИТшников, которые топят за накрутку опыта, помогают с придумыванием легенды и подготовкой к собеседованиям.
Плюсы их деятельности:
1️⃣ популяризация менторства среди свитчеров* и младших грейдов, которым сложной преодолеть эмоциональный барьер и спросить совета у старших коллег;
2️⃣ популяризация взаимопомощи;
3️⃣ своеобразная первичная ячейка профсоюзной организации.
Минусы:
1️⃣ пропаганда обмана:
— из исследования знаем, что 29% кандидатов накручивали опыт при поиске работы — это относительный показатель (работодатели держат в уме, что на каждую вакансию треть откликнувшихся кандидатов скорее всего накрутило опыт);
— в сообществе «волков» сейчас 50К+ участников, по оценкам Минцифры в ИТ отрасли трудится около 1 млн человек, т.е. не меньше 5% рынка кандидатов «волки» — это уже абсолютный показатель (его работодатели тоже учитывают при подборе);
2️⃣ однобокая мотивация участников сообщества больше зарабатывать на нескольких работах, при этом необходимость прокачки профессиональных навыков остается в тени;
3️⃣ рекурсия обмана, см картинку, некоторые джуны, найдя работу накрутив опыт, следующим шагом накручивают опыт менторства и обучают других джунов разработке и поиску работы 😁 подробнее об этом кейсе читайте у Леси Набока.
Мой читатель спросит, «как же выбрать себе ментора, и не напороться на самозванца»?!
Очень просто:
1️⃣ развивайте в себе критическое мышление и не доверяйте всему и всецело, перепроверяйте информацию;
2️⃣ обратитесь за консультациями к 4-5 наставникам старших грейдов (сеньор, тимлид, техлид, хэд, С-level), не ограничивайте кругозор на одном менторе;
3️⃣ ищите наставников в разных источниках (тематические тг-каналы и сообщества, линкедин, хабр.эксперты, getmentor и др);
4️⃣ конспектируйте рекомендации и сопоставляйте друг с другом, направьте усилия по развитию на пересекающиеся рекомендации;
5️⃣ не стесняйтесь задавать вопросы в комментариях.
__________________
* свитчер (англ. switch) — это человек, который в осознанном возрасте решил поменять профессию.
Этим постом завершаю цикл ответов на вопрос «Накручивать ли опыт?». Предыдущие 2 сообщения читайте выше.
Напомню, «волки» — это каста ИТшников, которые топят за накрутку опыта, помогают с придумыванием легенды и подготовкой к собеседованиям.
Плюсы их деятельности:
1️⃣ популяризация менторства среди свитчеров* и младших грейдов, которым сложной преодолеть эмоциональный барьер и спросить совета у старших коллег;
2️⃣ популяризация взаимопомощи;
3️⃣ своеобразная первичная ячейка профсоюзной организации.
Минусы:
1️⃣ пропаганда обмана:
— из исследования знаем, что 29% кандидатов накручивали опыт при поиске работы — это относительный показатель (работодатели держат в уме, что на каждую вакансию треть откликнувшихся кандидатов скорее всего накрутило опыт);
— в сообществе «волков» сейчас 50К+ участников, по оценкам Минцифры в ИТ отрасли трудится около 1 млн человек, т.е. не меньше 5% рынка кандидатов «волки» — это уже абсолютный показатель (его работодатели тоже учитывают при подборе);
2️⃣ однобокая мотивация участников сообщества больше зарабатывать на нескольких работах, при этом необходимость прокачки профессиональных навыков остается в тени;
3️⃣ рекурсия обмана, см картинку, некоторые джуны, найдя работу накрутив опыт, следующим шагом накручивают опыт менторства и обучают других джунов разработке и поиску работы 😁 подробнее об этом кейсе читайте у Леси Набока.
Мой читатель спросит, «как же выбрать себе ментора, и не напороться на самозванца»?!
Очень просто:
1️⃣ развивайте в себе критическое мышление и не доверяйте всему и всецело, перепроверяйте информацию;
2️⃣ обратитесь за консультациями к 4-5 наставникам старших грейдов (сеньор, тимлид, техлид, хэд, С-level), не ограничивайте кругозор на одном менторе;
3️⃣ ищите наставников в разных источниках (тематические тг-каналы и сообщества, линкедин, хабр.эксперты, getmentor и др);
4️⃣ конспектируйте рекомендации и сопоставляйте друг с другом, направьте усилия по развитию на пересекающиеся рекомендации;
5️⃣ не стесняйтесь задавать вопросы в комментариях.
__________________
* свитчер (англ. switch) — это человек, который в осознанном возрасте решил поменять профессию.
#соБЕСики
🔖 Вакансия: Data engineer
🔖 Компания: Wildberries
🔖 Сколько просил: 270 тыс. рублей
🔖 Месяц прохождения собеседования: Апрель 2025
🔖 Формат работы: Офис\Гибрид\Удалёнка
🔖 Оформление: ТК
🔖 Требования вакансии:
⏺ Разработка новых и оптимизация существующих ETL-процессов
⏺ Разработка и сопровождение сервисов, компонентов и процессов для потоковой и пакетной выгрузки данных из корпоративных систем в контур платформы данных
⏺ Продвинутый уровень владения Python и SQL;
⏺ Умение разрабатывать production-ready сервисы для деплоя в Kubernetes;
⏺ Опыт применения концепций непрерывной интеграции и доставки (CI/CD)
⏺ Опыт построения пайплайнов для потоковой и пакетной выгрузки/обработки данных
⏺ Опыт оптимизации запросов и проектирования схем данных
🔖 Стек:
Python/Go, SQL (ClickHouse, PostgreSQL), Kubernetes (K8s), Kafka
🔖 Этапы собеседований:
HR(20 минут)➡️ Тех.собеседование(1,5 часа)
🔖 Процесс прохождения:
Изначально HR вышла на меня сама, договорились созвониться. В разговоре ничего особого не было, спросила об опыте работы и инструментах, с которыми я работал. На следующий день вернулась с приглашением на техничку.
Техничка была хорошая. Собеседующий был прям классный мужик. Минут 20 мы разговаривали об опыте, с чем и как работал, потом позадавал вопросы по архитектуре хранилища, и как вообще устроено все. Позадавал теоритические вопросы, и душевно поговорили о движках ClickHouse, об их минусах и проблемах. Также поговорили об оптимизации запросов в клике. Плюс обсудили - какими задачами хочу заниматься.
Дальше в течении минут 50 решали задачки: две на SQL и одна на Python(в описании). Все решения делались по сути в текстовике на Яндекс_Код. Всё прошло гладко, разрешал спокойно гулить (я этим не пользовался), если что-то забыл. Если забывал ключевые слова, то спокойно спрашивал,что хочу сделать, и мы пропускали данное место, либо он подсказывал конструкцию. Идеология у него была такая - "Если ты знаешь, что хочешь сделать, ты это загуглишь за минуту". Очень сильно затупил на 2- ой задаче(так как вообще давно литкод не открывал), но спокойно собеседующий наводил на нужное решение(без прямых подсказок). А задачу на питоне я решил быстро, но неэффективно, и так как время поджимало, я просто словами(не без его помощи) объяснил, как это сделать эффективно.
Потом 20 минут рассказывал о задачах, с которыми придется сталкиваться. Ничего особо сложного в самой вакансии , много страшного написано, но на самом деле обычные задачи.
🔖 Вопросы технического собеседования:
⏺ Какие движки в ClickHouse знаешь?
⏺ Как сделать таблицу распределённой в кластере?
⏺ Принцип работы MergeTree движков, и как хранятся данные?
⏺ Какие проблемы есть у движка ReplacingMergeTree?
🔖 Итоговое мнение:
Собеседование было очень приятным, без лишнего давления. С интервьювером сразу нашли общий язык и чувствовалась товарищеская беседа. Узнал от него интересные факты о клике, что пошло мне только на пользу. Поговорили о проектах, с которыми работал + порешали задачки на SQL и Python, и всё это за 1,5 часа, а не за 5 этапов, как в некоторых компаниях(не буду показывать пальцем👉 😵 ).
Python/Go, SQL (ClickHouse, PostgreSQL), Kubernetes (K8s), Kafka
HR(20 минут)
Изначально HR вышла на меня сама, договорились созвониться. В разговоре ничего особого не было, спросила об опыте работы и инструментах, с которыми я работал. На следующий день вернулась с приглашением на техничку.
Техничка была хорошая. Собеседующий был прям классный мужик. Минут 20 мы разговаривали об опыте, с чем и как работал, потом позадавал вопросы по архитектуре хранилища, и как вообще устроено все. Позадавал теоритические вопросы, и душевно поговорили о движках ClickHouse, об их минусах и проблемах. Также поговорили об оптимизации запросов в клике. Плюс обсудили - какими задачами хочу заниматься.
Дальше в течении минут 50 решали задачки: две на SQL и одна на Python(в описании). Все решения делались по сути в текстовике на Яндекс_Код. Всё прошло гладко, разрешал спокойно гулить (я этим не пользовался), если что-то забыл. Если забывал ключевые слова, то спокойно спрашивал,что хочу сделать, и мы пропускали данное место, либо он подсказывал конструкцию. Идеология у него была такая - "Если ты знаешь, что хочешь сделать, ты это загуглишь за минуту". Очень сильно затупил на 2- ой задаче(так как вообще давно литкод не открывал), но спокойно собеседующий наводил на нужное решение(без прямых подсказок). А задачу на питоне я решил быстро, но неэффективно, и так как время поджимало, я просто словами(не без его помощи) объяснил, как это сделать эффективно.
Потом 20 минут рассказывал о задачах, с которыми придется сталкиваться. Ничего особо сложного в самой вакансии , много страшного написано, но на самом деле обычные задачи.
Собеседование было очень приятным, без лишнего давления. С интервьювером сразу нашли общий язык и чувствовалась товарищеская беседа. Узнал от него интересные факты о клике, что пошло мне только на пользу. Поговорили о проектах, с которыми работал + порешали задачки на SQL и Python, и всё это за 1,5 часа, а не за 5 этапов, как в некоторых компаниях(не буду показывать пальцем
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Гульжана Менажиева
Please open Telegram to view this post
VIEW IN TELEGRAM
Думаю многие задавались данным вопросом, особенно ребята которые в одной компании работаю по 2-3 года и им ни в какую не хотят поднимать ЗП.
Please open Telegram to view this post
VIEW IN TELEGRAM
#соБЕСики
🔖 Вакансия: Data Engineer (Apache NIFI)
🔖 Компания: ООО "Медиапоинт"
🔖 Сколько просил: 300 тыс. рублей
🔖 Месяц прохождения собеседования: Апрель 2025
🔖 Формат работы: Удалёнка
🔖 Оформление: ТК, ИП
🔖 Требования вакансии:
⏺ Опыт работы с Apache NIFI, как на отдельном сервере, так и в кластере;
⏺ Опыт работы в командной строке Linux;
⏺ Опыт работы с системой Docker;
⏺ Опыт построения запросов на языке SQL;
🔖 Стек:
Python, SQL (PostgreSQL, Clickhouse), NiFi, Kafka, AirFlow, Debezium, S3
🔖 Этапы собеседований:
HR(5 минут)➡ Тех.собеседование(1 час)
🔖 Процесс прохождения:
Как обычно созвонились с HRом, поговорили о вакансии и по сути сразу пригласил на техническое интервью.
На техничке поговорили о моём опыте, параллельно задавал вопрос - что да как, после чего уже перешли к полноценным вопросам собеседования. Вопросы задавались в течении 25-30 минут, большинство вопросов было по БД PostgreSQL, а потом перешли на Python.
В целом собеседующий не гасил, сразу сказал, что если не знаешь-не гадай. И если я не знаю, то в целом мне говорил правильный ответ, поэтому чёт новое из собеседования я вынес.
Новых вопросов реально много, со временем обязательно перенесу их в роадмап.
Также поговорили в целом о задачах и команде. На данный момент в команде 3 ДЕ, плюс еще будут набирать человек. Много задач по интеграции данных с внешними источниками, исследовательские работы по хранению данных, так как задача к концу года — увеличить количество хранимых данных в 10 раз.
🔖 Вопросы технического собеседования:
⏺ Какой модуль в NiFi используется для JOLT преобразований?
⏺ Как в Clickhouse устроена операция UPDATE?
⏺ Как выдаются права доступа в PostgreSQL?
⏺ Что делает утилита PGTune?
⏺ Что такое нормализация?
⏺ Какие типы индексов бывают?
⏺ Чем отличается кластеризованный индекс от некалстеризованного ?
⏺ Сколько у таблицы могут быть кластеризованных индексов?
⏺ Есть ли ограничения на создание партицированной таблицы?
⏺ Можно ли строить индекс по JSON полям?
⏺ Чем отличаются типы данных JSON и JSONb?
⏺ Чем отличаются материализованное и нематериализованное представления?
⏺ Можно ли читать данные из материализованного представления, когда выполняется команда REFRESH?
⏺ Как устроены система транзакций в PSQL?
⏺ Какие блокировки существуют?
⏺ Чем отличаются типы данных varchar от nvarchar?
⏺ Как удалить дубликаты из таблицы?
⏺ Какой объявить СТЕ? Можно ли в одной таблице применить несколько СТЕ?
⏺ Что из себя представляет СТЕ?
⏺ Можно ли в функции Python в качестве аргумента использовать функцию? Если да, то как называется такая функция?
⏺ Как записывается декоратор?
⏺ Можно ли на одну функцию нацепить несколько декораторов и как они будут считываться?
⏺ функция, которая используется в качестве аргумента, может использовать свои аргументы?
⏺ что такое декоратор Шредингера?
⏺ что представляет из себя тип данных Int в Python?
⏺ какая типизация используется в Python?
🔖 Итоговое мнение:
В целом собеседование мне понравилось, руководитель чувствуется старой закалки, но с нормальным отношением к команде, (но это только моя чуйка). Даёт полное право планировать свой день, как хочешь, главное, чтобы задача была выполнена вовремя.
В целом я все расписал по данной вакансии и собеседованию, если кому интересно или просто захотите меня поддержать — аудиозапись собеседования будет в комментариях.
Python, SQL (PostgreSQL, Clickhouse), NiFi, Kafka, AirFlow, Debezium, S3
HR(5 минут)
Как обычно созвонились с HRом, поговорили о вакансии и по сути сразу пригласил на техническое интервью.
На техничке поговорили о моём опыте, параллельно задавал вопрос - что да как, после чего уже перешли к полноценным вопросам собеседования. Вопросы задавались в течении 25-30 минут, большинство вопросов было по БД PostgreSQL, а потом перешли на Python.
В целом собеседующий не гасил, сразу сказал, что если не знаешь-не гадай. И если я не знаю, то в целом мне говорил правильный ответ, поэтому чёт новое из собеседования я вынес.
Новых вопросов реально много, со временем обязательно перенесу их в роадмап.
Также поговорили в целом о задачах и команде. На данный момент в команде 3 ДЕ, плюс еще будут набирать человек. Много задач по интеграции данных с внешними источниками, исследовательские работы по хранению данных, так как задача к концу года — увеличить количество хранимых данных в 10 раз.
В целом собеседование мне понравилось, руководитель чувствуется старой закалки, но с нормальным отношением к команде, (но это только моя чуйка). Даёт полное право планировать свой день, как хочешь, главное, чтобы задача была выполнена вовремя.
В целом я все расписал по данной вакансии и собеседованию, если кому интересно или просто захотите меня поддержать — аудиозапись собеседования будет в комментариях.
Please open Telegram to view this post
VIEW IN TELEGRAM
Знаете ли вы, что данные, прежде чем стать действительно полезными, проходят долгий путь? Он называется «конвейер данных» и в его работе принимают участие разные специалисты: дата-инженеры, дата-аналитики, BI-аналитики.
Об этапах этого процесса расскажет на вебинаре Павел Беляев — руководитель группы дата-аналитиков в компании Яндекс eLama и автор телеграм-канала.
Что разберем:
Тема богатая, тянет на целый курс, но за вебинар можно получить общее понимание процесса.
🕗 Встречаемся 15 апреля в 18:30 по МСК
Please open Telegram to view this post
VIEW IN TELEGRAM
У меня запрос в GP крутится-вертится 4,5 часа. 😢
Не порядок...🤨 Нужно оптимизировать🤔
Когда-то меня попросили показать пример работы Инженера данных, вот как раз подробно разберу одну интересную задачку(запрос на 1000 строк кода)🥲 и заодно сможете увидеть🙂 сложность написания запросов.
Нужно не только теоретические видосы снимать, но и показывать эффективность методов на практике, так что ждите, сегодня сниму и в дальнейшем обязательно выложу сюда😝 .
Не порядок...🤨 Нужно оптимизировать🤔
Когда-то меня попросили показать пример работы Инженера данных, вот как раз подробно разберу одну интересную задачку(запрос на 1000 строк кода)
Нужно не только теоретические видосы снимать, но и показывать эффективность методов на практике, так что ждите, сегодня сниму и в дальнейшем обязательно выложу сюда
Please open Telegram to view this post
VIEW IN TELEGRAM
Ну что...🙄
По итогу - вчерашний скрипт не отработал даже за 6 часов, а потом БД ушла в "transaction read-only" , и запрос конечно же упал🫠.
Это абсолютно нормальное явления для абсолютно неоптимизированных запросов. Поэтому принимаем жёсткое решение - его оптимизировать раз и навсегда.😎
В итоге - посидев несколько часов, рассматривая запрос и планы его выполнения, раскуралесив его на мелкие части, я пришел к тому, что мой запрос стал работать,🎺 пам-парам-пам🎺 — от 10 - 20 минут
Я считаю, у меня получился супер результат с учетом уменьшения времени в десятки раз.
В итоге - я записал один из возможных реальных кейсов работы DE, связанный с оптимизацией запросов.
Данный кейс поможет "вкатунам" или начинающим спецам понять, что такое оптимизация запросов, какой ход мыслей и размышлений при этом идёт. Видео получилось на 2 часа с объяснениями, понятиями и просто разговорами самим с собой.
Контент платный(через Tribute) и приобрести его можно здесь➡️ по данным ссылкам: карта, звезды
По итогу - вчерашний скрипт не отработал даже за 6 часов, а потом БД ушла в "transaction read-only" , и запрос конечно же упал🫠.
Это абсолютно нормальное явления для абсолютно неоптимизированных запросов. Поэтому принимаем жёсткое решение - его оптимизировать раз и навсегда.
В итоге - посидев несколько часов, рассматривая запрос и планы его выполнения, раскуралесив его на мелкие части, я пришел к тому, что мой запрос стал работать,
Я считаю, у меня получился супер результат с учетом уменьшения времени в десятки раз.
В итоге - я записал один из возможных реальных кейсов работы DE, связанный с оптимизацией запросов.
Данный кейс поможет "вкатунам" или начинающим спецам понять, что такое оптимизация запросов, какой ход мыслей и размышлений при этом идёт. Видео получилось на 2 часа с объяснениями, понятиями и просто разговорами самим с собой.
Контент платный(через Tribute) и приобрести его можно здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
#кейсы
Зацените один из кейсов оптимизации запросов на ГП.
Если в двух словах, есть таблица, в ней 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 раза.
Обидно, что мне сразу не пришла эта тема в голову, и потерял достаточно времени на тестирование какого-то дерьма
Если вы хотите увидеть, пример кейса полной оптимизации запроса с подробнейшим объяснением, то его можно приобрести
Please open Telegram to view this post
VIEW IN TELEGRAM
#соБЕСики
🔖 Вакансия: 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
может быть ключём словаря? Если нет, то что необходимо добавить?
В вакансии написано много текста, о котором меня даже не спрашивали. Само собеседование мне зашло, особенно понравилось, что собеседующий опирается в первую очередь на те инструменты, с которыми ты работал, и что немало важно на твоё резюме, а не просто даёт шаблонный список вопросов.
Общение было приятное и уважительное, как я уже говорил — мне зашло, понравились вопросы, которые мне задавали, то, что не знал для себя подсветил и уже в доке почитал.
Если интересно (как я волнуюсь
Please open Telegram to view this post
VIEW IN TELEGRAM
Был сегодня с Женей на митапе от Cedrusdata в офисе ЛеманаПРО. Говорили о внедрении Trino и Iceberg на замену GreenPlum, а так же опыт внедрения и работы с Nessie.
Если про Trino и Iceberg я еще слышал, то про Nessie никогда🤷♂ .
В общем и целом — это был мой первый опыт посещения офлайн митапа. Было очень круто, отдельное спасибо всем выступающим, узнал очень много нового, были вкусные бутеры🍗 , но кофе, простите, было такое себе🤢 . Жаль, что опоздал, но работу никто не отменял👨💻 , поэтому то, что пропустил — обязательно посмотрю в записи.
Отдельное внимание уделю ребятам, которые подходили и благодарили за RoadMap, которые не бросили обучение(вам отдельно уважение💪 ), а полноценно вкатились в DE(в следующий раз с вами сфоткаюсь, как с Героями, чтобы Вас все видели), также приятно было увидеть ребят с менторства и просто коллег по цеху, с которыми приятно пообщались, очень рад был всех видеть (обязательно надо будет как-нибудь пересечься и посидеть в кафехе, поболтать побольше).🥲
Обидно, что не встретился со своим ментром😭 (Да!!! Айгуль, я знаю, что ты там была, но ушла, но ничего, я знаю - ты часто ходишь на подобные мероприятия😅 ).
Когда будут фоточки, видосы и презентации в открытом доступе, обязательно сделаю презентацию на эту тему, пока любуйтесь мной и Женей + схемой архитектуры хранилища в Лемана Тех🙃 . После такого мероприятия, реально хочется потыкаться во все эти инструменты, учитывая, что они набирают популярность, особенно заинтересовала Nessie (хоть она на сегодняшний день —сыровата).
В следующий раз, когда пойду на подобный митап, анонс выложу на канале, всем добра🤗
Если про Trino и Iceberg я еще слышал, то про Nessie никогда
В общем и целом — это был мой первый опыт посещения офлайн митапа. Было очень круто, отдельное спасибо всем выступающим, узнал очень много нового, были вкусные бутеры
Отдельное внимание уделю ребятам, которые подходили и благодарили за RoadMap, которые не бросили обучение(вам отдельно уважение
Обидно, что не встретился со своим ментром
Когда будут фоточки, видосы и презентации в открытом доступе, обязательно сделаю презентацию на эту тему, пока любуйтесь мной и Женей + схемой архитектуры хранилища в Лемана Тех
В следующий раз, когда пойду на подобный митап, анонс выложу на канале, всем добра
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Инженерообязанный🫡 | Блог Дата Инженера
Был сегодня с Женей на митапе от Cedrusdata в офисе ЛеманаПРО. Говорили о внедрении Trino и Iceberg на замену GreenPlum, а так же опыт внедрения и работы с Nessie. Если про Trino и Iceberg я еще слышал, то про Nessie никогда🤷♂ . В общем и целом — это был…
А вот и оперативно запись с митапа подоспела!🧑🎓
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Lakehouse Meetup #3: Trino в Лемана Тех, Nessie в Азбуке Вкуса, круглый стол о проблемах lakehouse
Информация о митапе: https://cedrusdata.timepad.ru/event/2754553/
Программа:
18:00–18:30 Сбор гостей
18:30–18:40 Приветственное слово организаторов
18:40–19:20 Доклад "Lakehouse в Лемана Тех: от архитектуры до оптимизации"
19:20–20:00 Доклад "Опыт использования…
Программа:
18:00–18:30 Сбор гостей
18:30–18:40 Приветственное слово организаторов
18:40–19:20 Доклад "Lakehouse в Лемана Тех: от архитектуры до оптимизации"
19:20–20:00 Доклад "Опыт использования…