дата инженеретта
3.4K subscribers
291 photos
28 videos
4 files
124 links
мелкое — крупно,
в глубоком разговоре
мудрость приходит

по вопросам сюда: @aigul_sea
Download Telegram
Airflow для менеджеров

В Ariflow 3.1 появилась группа hitl-операторов, которая позволяет что-то вводить пользаку во время работы дага

HITL = Human-in-the-loop


🫠 Что делает пример на картинках?

Мы задаем даты, выбираем сервисы из списка, вводим почту и получаем отчет. Операторы по сути помогают менеджерам не дергать DA/DE своими адхоками, а пойти самому накликать и выгрузить то, что нужно

🤓 А как это происходит?

В базовых примерах после разворачивания airflow появится даг example_hitl_operator. Там есть несколько операторов из пакета airflow.providers.standard.operators.hitl:

🤩HITLOperator — выбрать одну или несколько опций из списка
🤩HITLEntryOperator — ввести любой текст
🤩HITLBranchOperator — выбрать следующую таску
🤩ApprovalOperator — одобрить или отклонить

В коде выглядит это вот так:


wait_for_multiple_options = HITLOperator(
task_id="wait_for_multiple_options",
subject="Please choose option to proceed: ",
options=["option 1", "option 2", "option 3"],
multiple=True,
defaults=["option 1"],
)


Когда заходите в UI, после запуска дага появляется доп вкладка Required Actions (1), где и нужно прожать опцию. Это все потом отправляется в xcom:


{
"params_input": {},
"responded_at": "datetime.datetime@version=2(tz=(UTC,pendulum.tz.timezone.Timezone,1,True),timestamp=1778505898.269782)",
"chosen_options": [
"option 2",
"option 3"
],
"responded_by_user": {
"id": "1",
"name": "airflow"
}
}


Из xcom потом можно достать в других тасках. Сначала обращаетесь по названию таски, а потом работаете, как с обычным словарем:


{{ ti.xcom_pull(task_ids='wait_for_multiple_options')["chosen_options"] }}

{{ ti.xcom_pull(task_ids='wait_for_input')["params_input"]["information"] }}


Use case очень прикольный. Интересно, а вот на практике этим будут пользоваться?

@data_engineerette
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
416🔥9👍8
Познакомилась с деврелом из 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
Please open Telegram to view this post
VIEW IN TELEGRAM
13🔥82
На пути к гуру алгосов

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

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

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

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

@data_engineerette
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥115😁4😭2
Случайно замедлили все загрузки

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

Предыстория

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

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

Проблема

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

Решение

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

Мораль

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

@data_engineerette
Please open Telegram to view this post
VIEW IN TELEGRAM
😁15👍62🔥2💅1
Когда никто не понимает, как делать задачу😂
😁33
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
Please open Telegram to view this post
VIEW IN TELEGRAM
8💅8
AI-эра тех собесов

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

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

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

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

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

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

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

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

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

@data_engineerette
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔21🔥167😁4
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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍762
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
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥84💅42
Пойдемте прокачиваться

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

Чтобы это все реализовалось, в Центральном университете придумали фаст-трек для будущих преподавателей направления «Разработка»

Всего за одни выходные, 27 и 28 июня, вы пройдете основные этапы найма:

📍техническое интервью с действующим преподавателем
📍пробное 20-минутное занятие

Что такое Центральный университет?

Это вуз нового типа, открытый при поддержке Т-Банка, Яндекса, Авито и более 60 других партнеров. Здесь преподают более 600 специалистов из ИТ-индустрии и преподавателей ведущих университетов страны, а учатся более 2200 студентов.

Что важно:

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

Кого ждут:

📍мидлов с уверенными знаниями Python, Java или фронтенд-разработки
📍сеньоров в инфраструктуре, инжиниринге данных и архитектуре решений

📍 Встречаемся 27–28 июня, онлайн и в кампусе Центрального университета (м. «Маяковская»)

Регаемся тут до 24 июня
Please open Telegram to view this post
VIEW IN TELEGRAM
1🌚1
Раскрываю тайну

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

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

@data_engineerette
🤔1
Кажется, я уработалась😕

Это моя первая мысль, как только я села в такси
Please open Telegram to view this post
VIEW IN TELEGRAM
😁44😭85
Системный аналитик помогает бизнесу и разработке говорить на одном языке: разбирает задачи компании, описывает требования, проектирует IT-решения и следит, чтобы система работала на реальные цели бизнеса.

Онлайн-магистратура СПбГУ и Нетологии «Системный анализ и интеллектуальные системы управления бизнес-процессами» готовит специалистов на стыке IT и управления.

В программе сочетаются академическая база СПбГУ и прикладные инструменты Нетологии. Студенты изучают математическое моделирование, алгоритмы, системный анализ, Python, BI-системы, no-code-инструменты, управление проектами и подходы к внедрению искусственного интеллекта.

Такой набор навыков помогает работать со сложными бизнес-процессами: находить узкие места, снижать риски при разработке, формулировать требования к системам и сопровождать внедрение IT-решений.

Обучение проходит полностью онлайн. После выпуска вы получаете диплом магистра СПбГУ очного образца по направлению «Прикладная информатика».

Подробнее о программе

Реклама. ООО “Нетология” ОГРН 1207700135884 Erid: 2VSb5yo9LAn
😭1