дата инженеретта
2.67K subscribers
190 photos
16 videos
3 files
78 links
серьезно говорим
о несерьезных вещах
вдохновляемся

по вопросам сюда: @aigul_sea
加入频道
YARN API

Иногда могут случаться разные вещи: у вас завис юпитер/вы сделали что-то не то, и вас заблочили/просто хочется программно килять приложухи. Мне пригодилось, когда я задудосила сервер, пытаясь в пт вечером разом создать тысячу папочек в hdfs 😁 У меня перестал открываться юпитер с 504 ошибкой

При этом у меня осталось работать тяжеловесное приложений с кучей ресурсов, и оно само по себе не убьется...

Нам понадобится всего два шага:

1️⃣Находим id приложения

https://yarn.com/ws/v1/cluster/apps?states=RUNNING,ACCEPTED&user=myuser&queue=myqueue


2️⃣Становимся киллерами

Можно сделать из Postman:

PUT-запрос
Content-Type: application/json
Body raw -> JSON {"state": "KILLED"}

https://yarn.com/ws/v1/cluster/apps/application_1750947191600_26250/state?user.name=myuser


Или в терминале:

curl -X PUT "https://yarn.com/ws/v1/cluster/apps/application_1750404105050_1823/state?user.name=myuser" \
-H "Content-Type: application/json" \
-d '{"state": "KILLED"}'


Проблему с 504 ошибкой я нашла в истории чата - пришлось в выходные отдохнуть, а в пн утром меня разблочили🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
12🔥41
Новое событие

Ходила в прошлом году на E-CODE, было просто бомбезно🔥🔥 Еда, активности, крутые стримы с лекциями, мерч, туса - и все бесплатно!

Пока все выкладывают сторис, рилс и шортсы, я сокращаю еще больше и делаю сторис из сторис))
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥7
2. Постановка задач, делегирование, фидбек

Продолжаю рассказывать про курс команды
Первый модуль - тут
Описание программы - тут

Что было?
🤩алгоритм постановки задач
🤩точки контроля
🤩уровни делегирования
🤩виды руководства
🤩стили общения
🤩уровни зрелости
🤩модели фидбэков (SBI, IBOFF, SLC)
🤩фидфорвард
🤩и еще много всего полезного

Лектор просто топ, очень харизматичный!🔥 Нашла страничку про него. А ниже крутые цитаты с лекций:

Парадокс менеджмента: люди, которым мы платим зп, должны радоваться каждой задаче

Как менеджер вы должны руководить картинками в голове у сотрудника

Абсолютная безоценочность - это уже поближе к Будде

Грамотный руководитель говорит языком наблюдений и цифр, а не языком ярлыков и обобщений

Шоколад должен быть шоколадным для всех

Не надо замахиваться, что руководитель знает, как мир устроен. Да, конечно, это так, но не признавайтесь людям. Планетой нужно управлять незаметно для санитаров, чтобы не вызывать подозрений


Мысли, которые мне показались наиболее интересными:

Таск-трекеры нужны для единого понимания. Лучше, чтобы сотрудники сами заводили задачи со своим пониманием

Как ты понял задачу? Расскажи, как ты понял? Ты понял?
Я бы хотел проверить себя, насколько мне получилось объяснить

Контроль - это сервис, чтобы сотрудники справились классно. Получать удовольствие от того, что ты организовал сделать что-то других

Поддерживать сильные стороны важнее, чем корректировать. Цель фидбека - помочь развить навык или укрепить уверенность. Постоянно должен быть мотивирующий фон работы. Можно своими вопросами выводить человека на самофидбек. При этом с разными людьми нужно быть разным. Важно, чтобы рядом был человек, который видит в тебе того, кто может справиться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍633
Моя коллекция наклеек

Пока добавляла новую порцию наклеек, решила еще раз посмотреть на собранную коллекцию

И вот оно мне нужно вообще?
👍18😁75
Сейчас конфа про выгорание!

Увидела фотку в сторис одногруппницы - оказывается, сегодня в Питере проходит конфа про выгорание

Программа тут
Трансляция здесь
7
🍒 cherry-pick 🍒

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

В чем суть и зачем она нужна?

Допустим, есть ветка dev. У вас появилась новая задача. Вы создаете feature/DE-111 и пушите свои изменения

Потом вы хотите потестить определенную функциональность на деве, но в фича-ветке уже намешано много всего. А вам нужны всего лишь 1-2 коммита

Что делать?

Сначала из своей ветки достаем хэши коммитов. Потом идем в нужную ветку и вставляем их туда

git checkout feature/DE-111
git log --oneline -10 # последние 10 коммитов

git checkout dev
git cherry-pick commit1-hash commit2-hash
git push


Теперь в деве такая история коммитов:

🟣commit2-hash
🟣commit1-hash
🟣dev-last-commit
🟣...

Но если теперь вы сделаете merge ветки, то каждый коммит задублируется:

🟣merge branch 'feature/DE-111' into dev
🟣commit2-newhash - это изменения commit2 с новым хешом
🟣commit2-hash
🟣commit1-newhash - это изменения commit1 с новым хешом
🟣commit1-hash
🟣dev-last-commit
🟣...
Please open Telegram to view this post
VIEW IN TELEGRAM
176🤷4👍2🔥1
У нас запустили локальный конкурс на лучшие мемы, есть штук 8 прямо очень прикольных, буду периодически их вкидывать

Это мой топ-1😂
1😁60😭31👀1
Проблема мелких файлов на практике

Я игралась с iceberg-таблицами, и у меня странно долго работали запросы. Исходные данные: 2,8 млрд строк и 111гб. Я поресерчила, что запросы сильно тормозят на этапе чтения. Пошла смотреть, как лежат данные, и увидела в каждой партиции по 100 файлов размером 1кб 🥺

hdfs dfs -count /my_table
# 1825 182400


1825 партиций, 182400 файлов - представляете, сколько накладных расходов открыть каждый файлик?

В чем особенность айсберга - вы не можете просто взять и переложить/пересохранить данные. Потому что в мете лежат ссылочки на файлики с данными. У вас просто все поломается 😒 Для компакта есть процедура рерайта:

spark.sql("""CALL system.rewrite_data_files(
table => 'my_db.my_table',
options => map('target-file-size-bytes', '134217728') --128 мб
)""")


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

После процедуры стало 6283 актуальных файликов - теперь все лежит как надо 👍

На картинке - запрос spark.table().cache().count(), который до компакта проходился по 5730 партициям, а теперь всего 856

Что получилось:
- файлы уменьшились в 30 раз
- таски в 6,7 раз
- время в 1,8 раз
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥36👍11
3. Управление ожиданиями руководства и команды

Продолжаю рассказывать про курс команды
Второй модуль - тут
Описание программы - тут

Что рассмотрели:
типология по Адизесу (PAEI)
этапы развития компании
корпоративные культуры
психологическая безопасность в команде
командная вовлеченность
матрица прозрачности и доверия
пороки команды

Лектор тоже классный, 5ч просто незаметно пролетают

Майндсет сотрудника: я сделаю сам
Майндсет руководителя: делегирование = инвестирование, потом будет больше времени для стратегических задач, развития команды и т.д.

Идеальный найм = Task Fit + Team Fit + Culture Fit
А на собесе на менеджера важно попросить описать корп культуру, потому что руководитель ее транслирует

🍰 PAEI
По этой модели идеальный руководитель = постоянные результаты (Production) + совершенствование процессов (Administration) + креативный подход (Entrepreneurship) + работа с командой (Integration)

Он умеет во все функции, но 1-2 выражены наиболее ярко. Если у вас не хватает, например, креативности или не хочется следовать всем правилам - в команде должен быть генератор идей или человек, которому нравится выстраивать процессы. Если таких нет - нужно развить

🐸 Маркеры для собственного проявления
Кого наказывают, кого поощряют?
Кого продвигают, кого нет?
На что выделяются бюджеты?

🐸 Психологическая безопасность
Есть 7 вопросов для определения ок/не ок:

1. If you make a mistake on your team, is it held against you?
2. Are you able to bring up problems and tough issues?
3. Do people on the team sometimes reject others for being different?
4. Is it safe to take a risk?
5. Is it difficult to ask other team members for help?
6. Do people on the team deliberately act to undermine your efforts?
7. Are your unique skills and talents valued and utilized?


🐻 Командная вовлеченность
Чтобы группа людей была реально командой, нужна общая цель, коллаборации внутри команды, ME -> WE, коллеги -> тиммейты, свои ритуалы, артефакты, табу, язык

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

Прикольная цитата


Ошибка - оплаченная возможность для развития


Тест на PAEI можно пройти тут
Please open Telegram to view this post
VIEW IN TELEGRAM
18🔥11
Media is too big
VIEW IN TELEGRAM
Бесплатный ресурс для англа

Недавно не знала, чем занять очередной вечер, и решила полистать свои чатики с встречками по англу. Там я наткнулась (не реклама) на American Center in Moscow. Я когда-то подписалась на них, но особо не заглядывала, потому что они все организуют онлайн, а мне хотелось прийти вживую

И вот у меня был свободный вечер, у них - просмотр и обсуждение TED Talk на тему прокрастинации, почему бы и да? Мы рассказали про наши дела, посмотрели видос, пообсуждали, прошли тест на прокрастинацию, пообсуждали тест и пошли обсуждать в группах, что мы прокрастинируем и как с этим будем бороться - всего 1,5ч

Оказывается, у них каждый день что-то происходит, и это все бесплатно😋

А видос я нашла в другом чатике, по-моему, очень правдоподобно😁
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍13😁65
Разбираемся в движках клика

Этот день настал, и я наконец-то поняла, что происходит с разными движками в кх 🕺

Возьмем такую конфигурацию кластера: 2 шарда по 2 реплики. И для примера 3 движка: MergeTree, ReplicatedMergeTree, Distributed

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

1) MergeTree
ENGINE MergeTree()


2) ReplicatedMergeTree
ENGINE ReplicatedMergeTree()


3) Distributed поверх MergeTree
ENGINE = Distributed(local_cluster, default, mt_table, rand())


4) Distributed поверх ReplicatedMergeTree
ENGINE = Distributed(local_cluster, default, rmt_table, rand())


Каждая таблица теперь существует на каждом хосте, потому что мы создали на всем кластере. Инсертим 10к строк данных и сравним

Что получается?

🎈MergeTree
Данные хранятся только на том хосте, на котором мы заинсертили. На остальных 0

🎈ReplicatedMergeTree
Данные хранятся на всех репликах одного шарда. На остальных шардах 0

🎈Distributed
Данные вообще не хранит, они лежат в исходной таблице. В каком-то смысле это как view

Если в основе MergeTree - то данные будут на одной из реплик в шарде. В нашем случае это replica1 для shard1 и replica2 для shard2
Когда мы делаем count(), рандомно выбирается одна реплика из каждого шарда. Т.е. на нашем кластере возможны 4 комбинации:

1 + 3 = 5030 + 0 = 5030
1 + 4 = 5030 + 4970 = 10000
2 + 3 = 0 + 0 = 0
2 + 4 = 0 + 4970 = 4970


Это значит, что при каждом новом запросе, например, для хоста 3 мы можем получить либо 5030 строк, либо 0

Если в основе ReplicatedMergeTree - то между репликами будет одинаковое количество строк, но между шардами разное. А при запросе к distributed всегда будет участвовать одинаковое количество строк

🌷Поэтому если нужно получать консистентные данные, обеспечивать отказоустойчивость - используем Distributed на базе ReplicatedMergeTree и селектим из Distributed
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥5🤔3😁11
Как диплом магистра помогает строить карьеру в аналитике?

Вы наверняка задавались вопросом: «Нужен ли диплом магистра, чтобы прокачаться в аналитике?» Или, может, уже учишься и сомневаешься — какие предметы реально пригодятся, а какие просто трата времени?

14 августа в 19:00 (МСК) Андрон Алексанян разберёт эту тему без воды и шаблонных ответов.

Что обсудим:
🟠Разберемся — какие плюсы дает диплом магистра, если строишь карьеру в аналитике.
🟠На примере реальных программ посмотрим — какие предметы вам реально помогут, а какие только отнимают время.
🟠Обсудим вакансии, к которым доступ открывается только после окончания магистратуры элитного ВУЗа.
🟠Остановимся на неочевидных «бонусах» и возможностях, которые тебе дает магистратура.

Это не про «нужно/не нужно» — это про то, как извлечь максимум, если вы уже в процессе или только думаете о магистратуре.

Приходите, если хотите принимать осознанные решения о своём образовании и карьере!

🕗 14 августа в 19:00 по МСК

😶Регистрируйтесь сейчас
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2😁2🌚2
Как из нас пытались сделать роботов, а теперь мы делаем их сами

Недавно задумалась, что из-за навязанных школой стереотипов об обучении кажется, что учиться — всегда равно стиснуть волю в кулак, чтобы кое-как выполнить задание. Как вспомнишь то время, так и оставишь идеи об учёбе…

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

Допустим, решили вы освоить облачную инфраструктуру, так обратитесь к проверенному источнику с комфортными для вас условиями. Например, в этом случае подойдут практические интенсивы по сервисам Yandex Cloud для инженеров, аналитиков и архитекторов. Если кратко, то это обучение, основанное на практическом применении полученных знаний, а в течение всего курса (4–6 недель) рядом будет наставник.

В ближайшее время стартуют сразу несколько практических интенсивов:

1. 25 августа — 28 сентября 2025 года: ClickHouse для дата‑инженеров. В программе: основы ClickHouse, структура БД, проектирование структуры БД и SQL‑запросы, оптимизация и мониторинг, управление кластером.

2. 8 сентября — 19 октября 2025 года: Kubernetes для разработчиков — основы управления контейнерами и взаимодействие с API Kubernetes, автоматизация деплоя и CI/CD, работа с сетями, безопасность и мониторинг в Kubernetes, оптимизация кластеров и диагностика ошибок.

3. 6 октября — 7 ноября: DataLens Enterprise для администраторов. Среди тем: установка и настройка DataLens, включение функций и мониторинг, авторизация и управление ролями, подключение источников данных.

Той самой злой математички не будет, можно расслабиться и записаться уже сейчас.
🌚75
🌼 Задачка

Ох, как давно у нас их не было, сегодня смотрим на ROLLUP. Даже если не знаете, попробуйте прикинуть/придумать, а потом я все расскажу

Есть табличка population - она на картинке. К ней делаем такой запрос:

SELECT
country,
region,
city,
SUM(population) AS total
FROM population
GROUP BY ROLLUP (country, region, city)


Сколько строк выведет запрос?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Сколько строк выведет запрос?
Anonymous Quiz
11%
4
36%
6
6%
10
20%
12
19%
13
3%
27
5%
35
3👍6🔥43
Летняя школа по аналитике, Data Science и Data Engineering

Центр непрерывного образования ФКН НИУ ВШЭ открывает регистрацию на летнюю школу «IT-сеанс: погружение в мир данных». Вас ждут выступления спикеров из таких компаний, как: Яндекс, Т-Банк, Ozon Tech, МТС Web Services, Альфа-Банк, X5 Tech, Magnit Tech, Авито и Вкусно — и точка.

Приглашаем всех, кто хочет разобраться:
〰️〰️〰️〰️〰️〰️
Зачем переходить в IT:
🟣Как данные меняют бизнес-процессы и какие роли в этом играют аналитики, дата-сайентисты и инженеры данных?
🟣Какие тренды в Al и Big Data формируют будущее технологий и компаний?

Как построить карьеру в аналитике, в Data Science и в Data Engineering:
🟣Какие навыки являются востребованными для каждого из трех карьерных путей и где их прокачать?
🟣Можно ли перейти в сферу данных с непрофильным образованием?
🟣На что смотрят HR и технические интервьюеры?

Как аналитика, Data Science и Data Engineering применяются в разных индустриях:
🟣Какие задачи решают аналитики, дата-сайентисты и инженеры данных в банковской, телеком- и ритейл-отраслях?
🟣Какие инструменты и технологии входят в рабочий стек специалистов в ритейле, банках и digital-сервисах?

Школа подойдет как тем, кто только решил освоить новую профессию, так и начинающим специалистам.

Когда: 21 августа в онлайн-формате, 23 августа — очно.
Где: Центр Культур НИУ ВШЭ, г. Москва, Покровский бульвар, 11.

📁Участие бесплатное для всех желающих, требуется регистрация: по ссылке 📍
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥7👍3🤔1
ROLLUP vs CUBE vs GROUPING SETS

Суть этих штук - добавить промежуточные тоталы (как в экселе). Как будто мы group by делаем несколько раз с разными полями

🍣 ROLLUP

GROUP BY ROLLUP (country, region, city)


country-region-city - 6 строк
country-region - 4 строки
country - 2 строки
all - 1 строка
————
13 строк

Мы с каждым уровнем отбрасываем более детальный столбец и считаем тотал шире

Первые 6 строк - как в обычной группировке (поэтому не расписываю). К ним еще добавляем тоталы по стране с регионом, стране и глобальный тотал:

Russia Moscow Oblast NULL 12800
Russia Siberia NULL 1600
USA California NULL 4900
USA Texas NULL 2300
Russia NULL NULL 14400
USA NULL NULL 7200
NULL NULL NULL 21600


🎲 CUBE

GROUP BY CUBE (country, region, city)


Здесь нужны все комбинации: по 3 элемента, 2, 1, 0

country-region-city - 6 строк
country-region - 4 строк
country-city - 6 строк
region-city - 6 строк
country - 2 строки
region - 4 строки
city - 6 строк
all - 1 строка
————
35 строк

👥 GROUPING SETS

GROUP BY GROUPING SETS ((country, region, city), (country, region), (country), ())


Здесь можно кастомно задавать группы. В этом примере будет то же самое, что и ROLLUP
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍7🔥2