дата инженеретта


Гео и язык канала: Россия, Русский
Категория: Технологии


мелкое — крупно,
в глубоком разговоре
мудрость приходит
по вопросам сюда: @aigul_sea

Связанные каналы  |  Похожие каналы

Гео и язык канала
Россия, Русский
Категория
Технологии
Статистика
Фильтр публикаций


В начале лета я рассказывала, как начала проходить курс по алгосам, сейчас делюсь с вами промежуточными впечатлениями🙂

👩‍💻 Первый месяц я активно садилась за задачи раз или два в неделю - этого было вполне достаточно. Сам смысл курса подается не как "пока самостоятельно не решите 100 задач на литкоде, из-за компа не выходите", а как "сначала смотрим объяснение и решение, потом идем кодить, если не запомнили - смотрим еще раз и повторяем"

В рамках одного 10-минутного видоса разбирается одна задача, иногда с несколькими вариантами решения, в конце анализируется сложность по времени и памяти. Что я заметила - когда мне голосом объясняют суть задачи, мне становится в разы понятнее. Поэтому мой типичный флоу занятий такой: я смотрю 1-2 минутки с объяснением условия, иду решать сама, потом досматриваю

С какого-то момента действительно появился азарт, хочется решить как можно больше задач до момента усталости) Пока я отметила для себя всего 2 задачки, которые вызвали трудности, и я оценила их по сложности на 5/10 по сравнению со всеми остальными

📊 Для трекинга прогресса нам рекомендовали завести гугл табличку с решенными задачами, затраченным временем и комментами. Я туда еще вписываю свои впечатления по задаче, новые синтаксические конструкции и инсайты после объяснений. Пока из интересного - идея с выделением виртуального места в массиве, иногда полезно идти с конца, также понравился мой собственный подход с просмотром только 1/4 матрицы

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

В июле с отпусками я подзабросила курс🤩 В текущем спринте начали темы связных список и стека, но я надеюсь быстренько все догнать

@data_engineerette

847 0 5 14 15

Походу салон нанял себе дата аналитика🤭

Или можно подключить аналитику у самого сервиса по записи?

В любом случае я теперь переживаю, что, если не запишусь сейчас, кому-то на дейли придется объяснять просадку retention rate😕

@data_engineerette


Как разогнать Lakehouse-ный S3 в 3 раза?

18 августа VK Tech проводит митап про платформы данных. И там будет интересный кейс Авито про ситуацию, когда производительность дата-платформы упирается не в движок, а в S3 🙂

Их аналитическая платформа работает на Trino и Vertica поверх Hive-каталогов, а данные лежат в S3 на HDD. Доступная конфигурация S3 уперлась в предел масштабирования и 20 ГБайт/с на чтение.

Что придумали:

🤩взяли три S3 кластера
🤩распределили объекты каждой таблицы между ними по хешу пути
🤩превратили существующие HAProxy-сайдкары на compute-нодах в stateless-шардирующий прокси
🤩каждая нода стала сразу ходить в нужный S3 без отдельного proxy layer

В итоге пиковую скорость чтения увеличили с 20 до 60 ГБайт/с🚀

На митапе Дмитрий Листвин из Авито расскажет, как они писали расширение HAProxy на Lua, реализовали ListObjects и DeleteObjects, какие проблемы собрали и как теперь решардируют и эксплуатируют эту конструкцию.

Еще будет доклад Павла Кутакова из VK Tech про архитектуру VK Data Platform гиперконвергентной дата-платформы на k8s: управление СУБД и сервисами, отказоустойчивость, сеть, безопасность и наблюдаемость.

А после инженеры RWB и VK Tech разберут подготовку сегментов для таргетинга на Trino и DataFusion и обсудят, как AI-агенты и новые типы нагрузок изменят платформы данных.

И куда же без нетворкинга, пиццы🍕 и приятных напитков 🍺

📅 18 августа, сбор в 17:30
📍 Москва, БЦ «Скайлайт»
💻 Можно подключиться онлайн

🚀 Регистрация тут: https://vk.cc/d0fvkw?erid=2VtzqvrCo3H


Анти чек-лист работы в DE

По ходу жизни собрала список того, что мне не очень нравится в работе. И вот что в него вошло:

1️⃣Канбан

У вас нет пула задач на ближайшее время. К вам могут приходить аналитики и менеджеры с адхоками, которым нужны отчеты еще вчера. Вы не можете спокойно распределить время на свои задачи. В канбане будут всегда прилетать новые задачи, которые нужно взять, как только закончите предыдущую. И вместе с этим постоянное ощущение напряга

2️⃣ Проектная работа

Проекты заканчиваются. Допустим, он длится год, потом вам обещают найти другой. А если проект свернут раньше года? А если другой проект не найдется?

3️⃣ Срочный трудовой договор

Он может быть короче даже самого проекта. А если договор не продлят? Не проще ли сразу найти нормальное место и не жить в страхе от приближения того самого дня?

4️⃣ Ты - единственный DE

Я в такое лезть не пробовала, но внутренне становится некомфортно. Представь, у тебя больше нет DEшной экспертизы в команде. Если не получается - надеешься только на себя (ну и на иишку)

5️⃣ В стеке только 3 инструмента

На рынке де столько всего требуется, как потом красиво преподать свой опыт, когда ты все последнее время писал только SQL и YAML?

6️⃣ Очень сложные задачи

А это я бы назвала другой крайностью 5го пункта) Делать настолько уникальное, что в других местах абсолютно не нужно. Или просто лично для меня непонятное, например, писать заливку данных на Rust

7️⃣ Уникальный стек

Молодец, ты освоишь инструмент, который нигде больше не используется

8️⃣ Нет созвонов

Вот вообще. Хотя бы раз в несколько дней. Просто заканчиваешь одну задачку и берешь следующую. В такие моменты складывается ощущение, что члены команды между собой не общаются. У кого-то такой подход может вызывать лишь восторг) Но для меня общение с коллегами - реально важная часть и чего не хватает на удаленке

9️⃣ Нет чатика с мемами

Это тоже в тему общения с командой и создания более прочных коммуникативных связей

💫💫💫💫💫💫💫💫💫💫💫

Здесь я привела свое субъективное мнение, вы можете поспорить или дополнить своими пунктами🥺

@data_engineerette


Lakehouse для аналитиков и инженеров данных

Приглашаем изучить популярный подход построения хранилищ данных Data Lakehouse c разделенным Compute и Storage на основе Iceberg и Trino. 

В программе курса:
• Современная архитектура аналитических систем от DWH и Data Lake до Lakehouse с разделением Compute и Storage на базе Apache Iceberg и Trino
• Iceberg: управление файлами, снимками, каталогами, схемами изменений и очисткой. 
• Практическое использование Iceberg Catalog, работа с кластером Trino (на Kubernetes), подключение данных на S3 и выполнение SQL/ Python-запросов.
• Работа с Iceberg+Trinо на больших масштабах: сложные запросы к датасету TPC-DS (2.8 млрд строк), интеграция с DBT, Apache Airflow, оценка производительность систем. 
• Построение пайплайнов, инструменты  для корректной поддержки, обновления и масштабирования Lakehouse-инфраструктуры на уровне предприятия. 

Кто мы: R&D-центр Devhands, наш канал.

Автор курса — Алексей Белозерский, CDO в inSales (Сбер 2B),
ex: VK Tech, М.Видео, Эльдорадо

🗓 Старт курса: 27 августа

Изучить программу и записаться можно здесь.

Ждём вас!

Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzquZf5с8


Ребят, а тут есть такие, кто идет на дата конфу в Лондоне?

https://www.bigdataldn.com

Она бесплатная, нужно просто прилететь🙂 По темам очень похоже: лейкхаус, AI агенты, data fabric, data governance. И сессии от топовых компаний: Databricks, Microsoft, Google, JetBrains, dbt Labs, Snowflake…

Я вот зарегалась и даже на некоторое время задумалась над подачей визы🤭 Но потом как вспомнила, что ИМЕННО В ЭТИ ДАТЫ у меня конфа в Москве

Так что ищу шпиониро😎

Полную программу конференции можно хотя бы полистать тут

@data_engineerette


пупупу
у меня всего 9 с половиной😚

2.6k 0 24 11 59

Отгадайте с первой попытки, за какой это было период и что случилось😁😁

@data_engineerette


Сеньорские вопросы

🤵 Чем круче вы становитесь, чем в более highload сторону вы идете, чем быстрее развиваются ллмки, тем вопросики к вам становятся все серьезнее

Собрала для вас подборку таких вопросов по технологиям:

Spark

Из чего состоит executor memory?
Что такое spark.memory.storageFraction?
В чем разница между Sort-Merge Join и Broadcast на маленькой таблице?
Каким образом уменьшить количество шафла?
Зачем нужен data spill?
Как работает AQE?
Какие проблемы спарка в кубере?

🧊Iceberg

Как айсберг работает с параллельным изменением одного файла и нескольких?
Почему при записи из старой таблицы в новую в айсберге джоба бежит очень долго? 
Почему при перекладке в айсберг забивается кэш?
Какие проблемы с айсбергом, кроме maintenance?

🌺 Airflow, Python

Что такое TYPE_CHECKING?
Как добавить шаблонизированное поле, если оператор не поддерживает jinja?
Что такое dynamic task mapping?

🖥 ClickHouse

Если данные писались в одну ноду клика, то при ее падении какие данные будут лежать на остальных?
Какие проблемы с Replacing Merge Tree при вставке 5тб данных?
300 колонок, 8 ключей - в чем проблема такого подхода и как лучше поменять?

🧘Kafka

Как интеграция Spark-Kafka умеет обеспечивать exactly once?
Как будет читать спарк из кафки, если 10 коров, 5 партиций? Сколько будет простаивать экзекьюторов?
Как будет читаться таблица в спарке, если 1ТБ один файл, 20 коров? Сколько будет простаивать экзекьюторов?
Как будут читать 10 инстансов приложения из 5 партиций?

@data_engineerette

3k 0 132 35 44

Всем привет! Возвращаюсь на связь, на прошлой неделе была в отпуске😌

А пока на нашем рынке я такого не видела, но на зарубежном после HR-интервью присылается очень подробное и информативное саммари: о чем говорили, что нужно спросить в следующий раз, ваши плюсы/минусы, соответствие вакансии

@data_engineerette


Кажется, я уработалась😕

Это моя первая мысль, как только я села в такси


Раскрываю тайну

Наверняка у многих был такой момент, что вы заходите в YARN, находите Hive-запрос, хотите в него провалиться, но Tez UI недоступен?

Теперь вы знаете, как он выглядит

@data_engineerette


Data + AI

🍿 Вчера-сегодня проходит Data + AI Summit от Databricks. Основная суть — как работать с данными в эру AI, реклама собственных разработок, интервью с партнерами и крупными пользователями, кейсы применения сервисов

Меня больше всего поразило — как они красиво говорят, у них такая чистая четкая речь и акцент, как на аудировании😍 И больше 30к людей в офлайне!!

Есть очень много интересных моментов, которые я пометила себе:

🤩Аннонсировали Lakehouse//RT на собственном движке Reyden, который возвращает результат на огромном объеме данных за мс и не требует перекладки данных в отдельную бд под дэши (красивые графички тут) ✨✨

🤩Обсуждали Lakebase — это постгря как движок над s3. Чтобы опять-таки хранить данные в одном месте, а не перекладывать из OLTP в OLAP-системы🤪

🤩LTAP (Lake Transactional/Analytical Processing) = Lakebase + Lakehouse. Данные пишутся строками => строки конвертятся в столбцы => чтение по столбцам. Правда, нам не сказали, насколько эта конвертация затратна❓

🤩На сцене побывал Ryan Blue, один из главных создателей Iceberg. Он сказал, что в Databricks уже поддерживается iceberg v3, где одна из фич — это кросс-поддержка iceberg+delta lake, которые на диске лежат одинаково, и не надо ничего переписывать при смене формата. А к концу q4 или чуть позже уже выйдет iceberg v4

🤩Genie One + Genie Ontology — чат-бот, дополненный глоссарием/знаниями предметной области компании на основе графов + коннектов к гугл драйв/почте/и т.д. А еще он умеет чекать пермишены к данным перед тем, как вернуть ответ. А агентов можно шерить с коллегами✨

🤩Добавляется отдельный агент Genie ZeroOps, который постоянно следит за кластером. Если в 2 часа ночи упал пайплайн, он пойдет искать причины по линейджу всех зависимостей, внесет изменения в код, потестит в песочнице, подготовит фикс и отправит алерт о готовности. Вам остается только аппрувнуть✨✨

🤩Omnigent — платформа, где можно миксовать несколько моделек, чтобы они делали разные операции. Это называется "meta-harness"

🤩В Uber за 1 квартал потратили годовой бюджет на AI

🤩Pepsico — один из пользаков, у которых раньше было 600 дата лейков😳

🤩Databricks заколлабились с OpenAI (приходил кофаундер Greg Brockman), чтобы их модельки забустили дата-сервисы

@data_engineerette


Hive vs HMS

HMS - Hive Metastore


Я долгое время вообще не знала про существование HMS. Для меня HMS и Hive шли неразрывно, и я не отличала одно от другого. Я же такая не одна, да?🌸

Но в один момент до меня дошло, что:

🤩Hive - это движок, который через синтаксис SQL (HiveQL) умеет ходить к данным. Мы пишем запросы как будто в обычной бд, но они становятся MapReduce/Tez/Spark задачами и ходят в файлики

🤩HMS - это каталог метаданных: схема таблиц, пути к файлам, типы данных, партиции и т.д. Ему для работы нужна бд. Чаще всего это PostgreSQL, MySQL

Для работы Hive обязательно нужен HMS
А вот сам HMS может использоваться и отдельно - с тем же Spark, Trino, Impala

🧊В контексте Iceberg мы используем HMS как технический каталог. Например, чтобы понимать, что таблице db.orders соответствует файл 000-asdkd27sn.metadata.json

Подробнее про внутрянку hms я рассказывала здесь
Про каталоги — тут

@data_engineerette


AI-эра тех собесов

💻 Теперь вместе с sql/python-задачками на тех собесе могут дать создание мини-проекта за 20 минут

Разрешается использовать все, что угодно, любые ллм. (Только подумайте над тем, что будет работать, когда вы на созвоне на внутренней платформе.) Есть только одно условие — шерить экран

Примеры заданий

➡️Для де: написать ddl таблиц, sql-запросы по сборке витрин, несколько дагов

➡️Для разраба: придумать архитектуру микросервиса и реализовать его

➡️Разобраться в коде и найти баги

Сгенерили, а дальше?

🙂 Интервьюеры могут сами пока не до конца понимать, что делать после генерации кода) Они просто сидят и смотрят, как ты будешь разбираться, что происходит, просят внести правки или объяснить кусок кода

Пока такое замечено в WB в последние 2 месяца, но могут подтянуться и остальные. Особенно после этого поста😁

@data_engineerette


ClickOps

Мне тут пришло в голову покопаться в сервисах AWS и поделать какие-нибудь лабы. На ютубе довольно много видосов от индусов (и не только) на эту тему, я в итоге решила посмотреть вот этот 4х-часовой туториал с пет-проектом

🎙 Там парень очень понятно рассказывает про теорию и сервисы, показывает, как что делать. К акценту надо привыкнуть, но вроде норм) Говорит он супер быстро, как будто на x1.5 смотришь. Одна из фраз, которая красной линией проходит по видосу:

Сейчас никто не пишет код сам. Если вы хотите что-то реализовать или столкнулись с проблемой — идите к ChatGPT


Еще сайтец у него есть полезный, там очень много инфы собрано

💻 В чем суть проекта? Взять данные из файлов и API, залить в S3, переложить по слоям, добавить dq, настроить алерты, собрать витрину и поставить на расписание. Используя тех стек AWS: S3, Glue, Lambda, Athena, Step Functions, CloudWatch, SNS

Вся эта история поместилась в 5 питонячих файлов и 4 джейсонины. Поэтому проект натолкнул меня на несколько логичных мыслей, но над которыми я не задумывалась:

1️⃣Девопсы вообще не нужны — все и так настроено и работает

2️⃣Платформенные решения, фреймворки для витрин тоже не нужны — достаточно написать одну Glue-джобку и запускать ее с разными конфигами

3️⃣Основная работа DE — нажимать на кнопочки и заполнять формочки

Создать таблицу? 4 клика
Загрузить csv в таблицу? 6 кликов
Добавить поле? Перетащить прямоугольничек
Партицировать таблицу? Выбрать колонку из списка
Выделить инкремент для загрузки? Включить опцию

Оно примерно так и есть, или я пока что-то упускаю?

@data_engineerette

2.1k 0 43 21 16

Когда никто не понимает, как делать задачу😂


Случайно замедлили все загрузки

Небольшая история о том, как можно ухудшить состояние кластера, не добавив и строчки кода😁

Предыстория

У нас в airflow есть много дагов, которые качают данные из бд. Чтобы не положить базу, мы используем пулы, которые ограничивают количество подключений

Как-то мы реализовали новый тип загрузки и, как порядочные разрабы, про пулы тоже не забыли. Долгое время данные грузились, все работало — с этой стороны не было проблем. Но однажды к нам пришел аналитик и спросил, почему таски висят в статусе scheduled по несколько часов. И вот тогда мы поняли 😁

Проблема

Таска-загрузчик находилась в одной таск-группе вместе с другими легковесными тасочками. И они все наследовали одни и те же значения! Получается, что таске передавалось 100500 слотов, даже если она вообще не ходила в базу😱 И когда загрузчик требовал много слотов, абсолютно все простаивало, потому что больше ничего не помещалось😱😱

Решение

Тут все просто: выпилить параметр из тех тасок, где он не нужен

Мораль

Можем подытожить так: даже если все зеленое и все считается, это не значит, что все хорошо🤨

@data_engineerette


На пути к гуру алгосов

01.06 стартует новый поток курса от Глеба Михайлова, и я на него иду! Алгосы — это точно мое слабое место, и я прямо в превкушении почувствовать «азарт охотника, а не ужас жертвы»🐆

Я уже зарегалась на платформе, добавилась в чатик и посмотрела орг материалы — какой должен быть подход к обучению, нужно ли быть перфекционистом и как трекать свой прогресс

Курс разбит на 10 спринтов вплоть до 11.10. И ожидается, что мы должны уделять время на задачи 5 дней в неделю целое лето 😭 😭

Скоро я эволюционирую до всезнающего леопарда, ну, а пока я — маленькая птичка, которая полетела разведывать остров алгоритмов🐦

@data_engineerette


Познакомилась с деврелом из OpenMetadata

В последнем спринте работала над таской, связанной с OpenMetadata. Она была поначалу настолько непонятой, что пришлось присоединиться к коммьюнити в Slack🤩

Могу сказать, что у них просто офигенная поддержка в чате, на вопросы они отвечают в течение получаса. Как только я присоединилась, на меня сразу вышел чел с ролью «Developer Advocate». Он рассказал, что у них происходит в чатах, какие они организуют вебинары и что можно забукать небольшую встречку

Поначалу я скептически отнеслась, вопросов с моей стороны не было, да и вообще потом забыла, но спустя время решила встретиться поболтать🙂 Мы довольно мило побеседовали про наше использование инструмента, про их новые фичи. Он мне рассказал, что в последней версии:

🤩джобы запускаются не в airflow, а стартуют отдельные поды в k8s
🤩поддерживается дата-контракты

Дата-контакты в OMD — это как второй этап проверки. Мы однажды напоролись на такое, что данные вставлялись без проблем даже при изменении схемы на источнике. Потому что мы в коде брали из датафрейма только столбцы, которые уже были в таргет-таблице🙂

Дальше мы пошли в сендбокс. Посмотрели, как дата-контракты поддерживают изменения схемы, data quality, штуки для безопасности (все, что на скрине). Контракты можно импортнуть и экспортнуть в формате ODCS (Open Data Contract Standard)

Еще мне рассказали, что OpenMetadata стартанула всего лишь 5 лет назад! А 10.06 у них будет бесплатный онлайн-саммит Collate Summit '26: Data & AI in Production, на который можно зарегаться

После встречи деврел прислал несколько полезных ссылочек, которые мы обсуждали:

📍OpenMetadata’s Kubernetes Scheduler Preview

📍Data Contracts and OpenMetadata

📍OpenMetadata Standards & Building new Connectors with AI

📍OpenMetadata Standards

@data_engineerette

2k 0 18 4 23
Показано 20 последних публикаций.