Я – Дата Инженер | Евгений Виндюков
4.53K subscribers
337 photos
33 videos
12 files
233 links
💵 Как стать Data Engineer
🗄 Смотри Roadmap в закрепе!
_____________________________
Автор @halltape
Все вопросы по рекламе @k_shredinger
Download Telegram
Forwarded from Госпожа аналитик 💚 Ия Зотова (Ия Зотова️)
🎞 DATA ENGINEER: Накрутка опыта и база для старта в DE
Гость: Эдвард, Senior/Team Lead Data Engineer в Сбер

Эдвард в интервью поделится:
• Как начал свою карьеру DE из инженера-энергетика
• Про 14 отказов на собесах и их восприятие
• Кто такие джуны и сеньоры
• Как вырос до тим лида и рос в зарплате
• Какие базовые навыки нужны для вкатывания

Можно сказать получился праздничный выпуск 😁
Всех леди поздравляю с этим прекрасным днем!
🌷🌸🌸🌸

✈️ Подписывайтесь на наши каналы:
• Ия, Team Lead DA: https://t.iss.one/Lady_Analyst
• Евгений, DE: https://t.iss.one/halltape_data

Если было полезно, весело, то поддержите наш канал донатами:
💲 https://pay.mysbertips.ru/92484472
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥145💯3👍2
🔥 СВОЙ СЕРВЕР БЕСПЛАТНО 1 ГОД!

➡️ https://console.cloud.ru/

Можно создать свой сервер в облаке и развернуть там docker с вашим ботом, пет проектом и так далее. Дарят 4 000 бонусов. К серверу можно подключиться с помощью SSH через ваш любимый VSCode или PyCharm. Я развернул своего TELEGRAM БОТА для проверки. Все работает стабильно.
Может получится развернуть что-то посерьезнее, если памяти хватит. Я про несколько контейнеров в составе того же docker-compose. Надо будет попробовать.

Там для получения бонусов надо зарегестрироваться через СберID. Еще кстати предлагают использовать GitVerse. Это прям копия GitHub, GitLab, BitBucket (место, где можно хранить ваш код). По интерфейсу конечно все еще сырое, но импорт из своего гитхаба сделать можно. Репозиторий также клонируется на сервер без всяких проблем.

Рекомендую не терять возможность и протестировать свои приложения. Используя удаленный сервер вы научитесь:
1. Подключаться по SSH
2. Использовать docker контейнер
3. Загружать свой код через систему git (делать commit, push, pull)
4. Работа с командной строкой (нужно будет устанавливать самому docker, git)

По опыту я использовал виртуалки от Amazon Lightsail и Timeweb Cloud. У Амазона не очень понятный интерфейс нежели чем у второго. Да и оплата только иностранными картами. Его по большей части использовал для VPN.

У TimeWeb все понятно, просто и быстро. Поэтому, если не требуются зарубежные сервера, то используйте местных.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥11🔥4👌4🐳3👍2
🧐 HDFS Чтение данных

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

Мы сидим на ClientNode. Когда нам нужно прочитать файл с DataNode, нам нужно получить адреса всех блоков от NameNode и пойти искать их у DataNode. Причем мы получаем список ip адресов, где лежат блоки и их реплики. Ну вдруг один из дисков сгорел. Тогда мы сможем обратиться к его реплике, которая лежит на другом диске.

Также вместе с адресами блоков, NameNode отдает 3 хеш суммы. Хеш сумма – это "закодированная" строчка. Нельзя сказать, что она зашифрована, т.к. зашифрованные строчки можно расшифровать. Хеширование, все равно что разбить вазу кувалдой. В обратную сторону не работает. Зато результат всегда одинаковый. Хеш суммы, хранящиеся на NameNode сравниваются с хеш суммами на DataNode (Чтобы проверить к тому ли блоку мы обращаемся).

Хеширование может выглядеть буквально так: 2(3hfF3fhreu@#4vFGE3424g34r34r234rfew34fFGRTHR4vewf
Причем это может быть хешем от предложения "Хадуп - что-то про данные", или целой страницей добротного текста А4.
Если мы что-то хешируем, то это всегда будет давать один и тот же хеш. Он будет одинаковый для одного и того же объекта.

Т.е. когда система записывала в первый раз блок данных, она создала хеш сумму и передала ее NameNode. По идее, если блок не был поврежден, то и хеш сумма не поменяется. Поэтому, в случае, если хеш сумма не совпадет, тогда блок помечается, как corrupted. Все! Его использовать нельзя. Система переходит к его реплике и асинхронно параллельно воссоздает тот первый блок.

А зачем там 3 хеша? Чтобы избежать коллизий. Ведь есть вероятность, что хеш может совпасть. Может блоки попадутся такие, у которых при хешировании реально сойдутся звезды и хеш суммы будут идентичными. Поэтому берется сразу три хеш суммы и только когда ВСЕ ТРИ совпадают, тогда считается, что все ок.

#hdfs - весь цикл постов про hdfs
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥7🔥4🍾31🎄1
🧐 HDFS Запись Данных

Итак повторим, когда мы читаем данные, мы сравниваем три хеш суммы. В случае, если не совпали, помечаем блок, как corrupted и переходим к его реплике. Адреса блоков хранит NameNode

При записи данных ClientNode обращается к NameNode, передает ей размер файла, коэффициент репликации и запрашивает адреса на DataNode, куда можно записывать наши данные. NameNode выдает список DataNode.

ClientNode разбивает файл на блоки, согласно размеру блока. Дальше идет к первой DataNode и пишет первую реплику. И только! ClientNode пишет только первые реплики (оригиналы) файла. Вторые, третьи и последюущие копии пишут DataNode сами. При этом сигналы о том, что все успешно записалось, DataNode отправляют самостоятельно на NameNode в асинхронном режиме. Здесь же отправляются хеш суммы и адреса.

Также каждые 504 часа проводится "обход" hdfs на анализ состояния блоков. Если находится поврежденный блок, то этот сигнал отправляется на NameNode, а та в свою очередь дает команду на создание новой реплики.

#hdfs - весь цикл постов про hdfs
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥84💯31
#вакансия #системныйаналитик #middle

Всем привет! В команду занимающуюся разработкой martech инструментов для маркетинга КИБ Сбербанка, ищу Системного аналитика.

Позиция: Системный Аналитик
Занятость: полная
Формат: Москва, Офис\Гибрид

Проекты команды:
Система разметки маркетинговыми тегами SberTagManager. Она помогает аналитикам\маркетологам оперативно настраивать сбор действий пользователя на сайтах сбера
Сервис загрузки аудиторий в рекламные площадки. Он позволяет построить сегмент пользователей на основе внутренних данных и отправить его в рекламные кабинеты для дальнейшего запуска рекламы
Обязанности:
Сбор требований
Подготовка ТЗ
Изучение работы системы или ее аналогов
Взаимодействие с разработчиками во время создания фичей
Подготовка релизной документации
Обработка запросов на доработки системы
Обучение пользователей работе с инструментами
Разработка бизнес-требований, концепции системы, методик, разделов пользовательской и проектной документации, регламентов
Постановка задач и сопровождение разработки

Требования:
Опыт работы от 1 года
Нотации (BPMN/UML или другие)
Опыт участия в проектах по интеграции, понимание интеграций: REST, SOAP, брокеры, очереди
Знание форматов обмена данными
Знание SQL (базовый)
Опыт работы в Jira, Confluence

Условия
Льготные условия кредитования и ипотеки;
Скидки на продукты компаний-партнеров;
Бесплатная подписка СберПрайм+;
Обучение за счет Компании: онлайн курсы в Виртуальной школе Сбера и неограниченный доступ к библиотеке, обучение в Корпоративном университете, Тренинги, митапы и возможность получить новую квалификацию.

Вопросики и резюме: @Monroro или на [email protected]
👍7👌1💯1
🧐 Что такое HDFS? [ВИДЕО ГАЙД]

https://youtu.be/ySDGh_1d87g?si=Y3BOTteP9QOcmWaL
Записал с коллегами часовое видео про то, что такое HDFS!

Вы уже видели мои посты про файловую систему Hadoop. Но я рассказал вам довольно поверхностно и далеко не все. Крайне рекомендую посмотреть именно видео. Там я уделяю внимание многим интересным вещам, а также мои коллеги дата инженеры делятся своими наблюдениями.

🎁🎁🎁🎁🎁 Подписывайтесь на YouTube канал, ставьте лайки и оставляйте комментарии!

КСТАТИ
#hdfs - весь цикл постов про hdfs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥7💯1
🟢 ROADMAP для Data Engineer!

Иди прямо по списку, чтобы стать Data Engineer!

📣 ССЫЛКА НА НОВЫЙ ROADMAP!!!

Знание языков, библиотек:
1
. SQL (Пройти полностью)
2. Python 1 (Пройти полностью)
3. Python 2 (Пройти 30-50%)
4. Pandas (Пройти полностью)
5. Pandas (Пройти 30-50%)

Знания технологий:
1. 🤖 Linux команды [Hexlet] - научись бегло пользоваться терминалом
2. 👩‍💻 Docker [40 минут Youtube] - научись собирать простые образы и контейнеры
3. Airflow [Youtube канал English] - разверни свой первый сложный Airflow docker-compose
4. 🧐 HDFS [Hadoop 1 час Youtube] - посмотри, как хранятся большие данные
5. SPARK [Хабр] - научись переписывать запросы с SQL, pandas на spark
5. 📝 Регулярки [Хабр] - протестируй на реальных данных

😈 Пройди ГЛАВНОГО БОССА!
Собери свой ETL pipeline, используя мой docker-compose!

👩‍💻 Все твои проекты лучше оформить на GitHub

👩‍💻 Ты все выучил? Тогда начинай решать задачи

👩‍💻 Что спросят на собесах?
Вот теоретические вопросы, а вот задачи.
А вот ответы.

💰 Готов собеседоваться? Все про резюме.
А вот тут найдешь работу:
🟡https://t.iss.one/analysts_hunter
🟡https://t.iss.one/addlist/UDbX0oiQVE03ZmYy
🟡https://t.iss.one/data_engineer_jobs

📺 Кто я и как попал в IT?
СМОТРИ интервью со мной!

🅱️🩸🩸🩸🩸
https://boosty.to/halltape_data

😘 Мой Youtube!
Мои видео про Data Enginner!

Прочее:
💎 Слитые курсы [Telegram]
💎 Roadmap [Karpov courses]
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥95👍1513👏64
🔗 ТОП ChatGPT или когда уже заменят этих программистов!

Мой список GPT, которыми я пользуюсь:
1. You.com
2. OpenChat
3. Mistral
4. Julius - может читать загружаемые данные

Причем Julius – это прям Jupyter Notebook, где в ячейках на Input сидит ChatGPT и читает ваш промпт, а в ячейках на вывод пишется и автоматически запускается код. Т.е. например я загрузил CSV файл, попросил проанализировать, и в ответ GPT начинает писать код на pandas и тут же его запускает. По факту конечно GPT не анализирует ваши данные, он лишь пишет код и дает команду на запуск. В ответ получает json с датафреймом, который можно распечатать в той же ячейке. А это считайте, как текст. Ну а с текстом chat работать умеет. Тут он просто его пересказывает.

Чисто в теории я уже думаю, что нет проблем запустить таким образом и spark приложение. Будет подольше, но в целом логика та же. Т.е. все что нужно – это дать нейронке читать содержимое ячеек пользователя.

Следующий шаг – дать возможность нейронке именно обучаться на данных. Очевидно, что это будет занимать куда больше времени. Но что если дать обучить на условном сэмпле одного дня в 1Тб, а дальше уже писать код, ориентированный на специфику хранения данных.

Если есть мысли на это счет, wellcome в комменты. А также можете поделиться своими ссылками на полезные AI

https://awclub.github.io/catalog/ - Библиотека всех AI
Please open Telegram to view this post
VIEW IN TELEGRAM
🍾7🐳4🔥32
Чтоб всем такой уверенности:)))
😁30🤣16👍2🔥2
➡️ Если разберешься в этом, то точно устроишься!

Статистика прохождения курсов на stepik показывает, что люди бросают учебу на половине курса. Будьте исключением!

Я собрал проект, который умеет скачивать данные, обрабатывать и складывать их в БД! И все можно автоматизировать, а также запустить удаленно и чтобы оно работало без вас!

https://github.com/halltape/HalltapeETL

Собрал в docker простой ETL pipeline. На самом деле я собрал реальный пример одного из инструментов, каким я пользуюсь на работе. Мы почти также собираем данные из Яндекса и складываем их в ClickHouse! Поэтому считайте, что у вас в руках реальный работающий комбайн.

Airflow забирает данные со SpaceX API и сохраняет их в json и CSV, а также грузит все это в колоночный Clickhouse.
Внутри Airflow настроен Clickhouse connector, есть pandas. Также можно использовать PostgreSQL в качестве классической базы данных. Чтобы данные и dags не терялись, настроены volumes.

Каждый может склонировать репозиторий к себе локально и написать свой собственный pipeline. Ограничений нет. Можно придумать самый настоящий DWH + реализовать OLTP - OLAP схему.

Если есть идеи, как добавить сюда еще и BI систему, то буду рад PULL REQUEST! Например Yandex Data Lens теперь open source!

Требования:
1. Установленный Docker Desktop
2. Терминал bash
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25💯21🍾1
🩸 Вы точно хуже! Или это другие виноваты?

Все мои заголовки - чтобы вы обратили внимание. Но здесь я постараюсь в очередной раз накинуть вам мотивации! А потом разнести, а потом опять взбодрить.

Разработчики нужны! Проектов и идей много! Работу можно теперь найти не только на hh или Хабр Карьера, но и в телеге. Я для кого в roadmap сделал целую папку с тематическими каналами! Можно найти непосредственно lead команды! А если он ищет разработчика, то вы только сэкономите свое и чужое время на поиск! Нетворкинг - наше всё! Времена, когда вы откликались на вакансию на красном сайте и просто нервно ждали, проходят! Вы уже через меня можете найти работу! В скором времени я расскажу про реферальную программу! Это просто пушка! Возможностей стало только больше. Конкуренцию выигрывает тот, кто использует максимум инструментов!

Но, чтобы выделиться, вам нужно теперь привести свое резюме в порядок. Я вижу, что у некоторых людей за плечами есть опыт, которого не было у меня. Но почему-то это люди до сих пор не залетели в IT! Это и неуверенность и плохое резюме и страх провала. А где-то даже отсутствие хоть одного pet проекта. Вы как себя продавать будете? Даже опыт написания телеграм бота куда лучше, чем ничего. Без опыта вы по прежнему никому не нужны. Джуниор - это тяжесть, это косяки, это медленное выполнение задач, несамостоятельность. Вы такого строителя будете брать к себе дом строить? А почему его должна брать компания?

Приводите свое резюме в порядок! Пять человек из тысячи посмотрит на ваш проект. Два человека его полистают, и один возьмет вас на работу! Вам нужно всеми силами показать, что вы готовы взяться за работу и помогать команде. Общительность и коммуникабельность - это вообще одно из самых важных качеств. Можно убиваться по оптимизации вашего кода. Только вот он никому не нужен и пользоваться этим никто не будет. Кому вы такой умный нужны? А время потрачено, бабки уплочены.
🔥13💯76
К чему я? Пожалуйста, я знаю, что после работы очень трудно сесть за код, за теорию. Дети, ипотеки, гулянки, друзья, личная жизнь, инстаграм.. Что-то из этого придется пустить по одному месту. А если вам уже не двадцать, то и время начинает играть против вас. Купите год у себя, отказом от каких-то развлекух. Через год тусанете, как следует и дальше жизнь станет реально проще! Не будет этой непреодолимой стены.

Тем, у кого нет семьи, будет легче. Тем, у кого есть финансовая подушка и возможность не работать, будет легче. Эти люди будут обгонять тех, у кого все вышеперечисленное есть. Те, кто продадут себя подороже, выиграют и будут зарабатывать больше тех, кто постеснялся и промолчал. Готовьтесь к тому, что только удачное стечение обстоятельств позволит вам вскарабкаться на вершину. А это делается только увеличением попыток в разных местах.

Не надо придумывать велосипед и накручивать себе несуществующее. Если паритесь, что вы старый для IT, тогда вбивайте в Гугл «Реально ли залететь в IT в 30,40,50».

Если не знаете, как составить резюме, берете готовые из чатов и списывайте. Учитесь у тех, кто недавно залетел в IT. Если вы знаете, как надо лучше, то зачем вы сидите в этом чате. Отложите все свои принципы и ответьте себе на вопрос «почему до сих пор ничего не сделано».

Если что, я тоже вам тут не гуру дата инжиниринга и у меня тоже есть ошибки и на работе и пробелы в компетенциях. И это аффектит на мои задачи. Зато я отлично увидел свои сильные стороны, которые могут очень хорошо меня прокачать в другом направлении.

Поэтому берем себя в руки и не сдаемся!
33🔥9💯5👍2
☕️ Фейковое резюме!

Открыл LinkedIn, чтобы принять очередные инвайты от людей и сразу наткнулся на пост про фейковое резюме.

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

Выгодно всегда быть молодым и опытным. Что конечно полный оксюморон (город под подошвой).

Я за всю жизнь делал очень мало откликов. Как правило, HR пишут мне сами. Поэтому мне тема с закидыванием резюме без ответа не сильно близка. Хотя, когда я был инженером-электротехником - такое случалось. Не самая приятная ситуация..

К чему я это. Пост в LinkedIn может быть напичкан драматургией. Такие истории больше собирают лайков. Как и та история с парнем, который автоматизировал chatGPT в Tinder. Это вызывает эмоции. Очень странно, если талантливого МФТИшника не зовут на собесы. Или они расчитывать, что им будет писать из самого Google?

Постарайтесь сначала взглянуть на свое резюме, а потом только делать вывод о состоянии рынка. Как правило, именно качество резюме и влияет на то, что вас не зовут. Рынок пока еще живой. Да и пока он никуда не денется.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥143👍3🤯3❤‍🔥1
🧐 А стрим все набирает просмотры!

https://youtu.be/75Vu8NqH_cU?si=kukmJX1yJL8rIolb

Стрим про DE
все еще набирает своих зрителей и это конечно радует!

😘 Если кто не смотрел или пришел не с этого видоса, то рекомендую посмотреть. Я постарался там изложить все в доступном виде, кто такой Дата Инженер и чем он занимается.

➡️ Если есть пожелания по стриму или вопросы по работе, пишите их в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍43
#️⃣#️⃣#️⃣

СБЕР Вакансия
Junior Data Engineer
https://hh.ru/vacancy/96653693?customDomain=1

Hadoop, GreenPlum, SQL

Пробуйте сюда залетать. Требований четких нет. Скорее всего будете много писать именно на SQL. Майло пайтона и никакого spark. По Hadoop крайне рекомендую смотреть мой deep dive по HDFS!

По GreenPlum не подскажу. Но важнее уметь решать задачи на SQL. Остальное можете прочитать, как теорию!
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥8💯2
🏃‍♂️ Миллиард петабайт меньше чем за секунду!

Как прочитать данные быстрее скорости света, даже если они весят миллиард петабайт или больше?

😄 Я конечно опять кликбейтен, но доля правды здесь есть. Вот с чем я столкнулся:

У меня есть таблица за целый год и один день весит 1Гб. Когда я хочу узнать, какая там крайняя дата, то делаю аггрегацию поля с датой типа MAX(date).

И тогда мой spark или sql начинает делать FULL SCAN таблицы и высчитывать максимальную дату, бегая по всему диску и считывая данные. Надо ли говорить, что я никогда этого не дождусь. А как быть то?

✉️ Для этого таблицу стоит партиционировать по полю с датой. Это значит, что данные по каждому дню собираются в одном месте на диске (на самом деле даже папка создается под каждый день). Т.е. если вы загрузили 7 дней данных, при этом при сохранении использовали метод partitionBy('date'), то данные аккуратно складывались в соответствующие папки.

Да, при таком хранении вы заметно быстрее начнете считывать данные, но и это не предел. Я же говорил о скорости света!

Когда Spark партиционирует данные из таблицы, то он буквально создает папки, которые называются также, как и поле. Т.е. если партиционировали по датам, то папки будут называться

'2024-04-01'
'2024-04-02'
'2024-04-03'


И поэтому в spark мы можем спросить напрямую: "Покажи мне все названия папок".
SHOW PARTITIONS

Тогда он выведет табличку с названиями папок. Это ведь просто метаданные весом с пушынку. Ну и дальше вы добавляете MAX(date) и получаете моментальную крайнюю дату.

Это можно использовать, в случае, если вы ходите в источник и спрашиваете у него последнюю дату, за которую обновились данные. Чтобы не считать огромные массивы, можете просто проверять партиции.

🚀 Аналогично можно обновлять и вашу витринку (тоже партиционированную), сравнивая даты в источнике и в вашей витрине. Скорость будет просто космическая. Ресурсы не будут тратиться от слова совсем!

Кто не понял прикола с Кай Метовым, то вот оригинал
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥243👌1💯1