Пирожки и бары | про BI
Open in Telegram
Не только про pie charts и bar graphs, но ещё и про жизнь, аналитику и BI в целом Мемы, лайфхаки, квизы я: @MariaEvgen, старший BI-разработчик Авито
Show moreRussia591 428The category is not specified
254
Subscribers
No data24 hours
No data7 days
No data30 days
Posts Archive
Собеседования на диване
Вы когда-нибудь мечтали стать лучшей версией себя задавались этими вопросами:
⭐️ как не завалить собеседование и получить оффер?
⭐️ какие компании следует избегать?
⭐️ что делать, если попался токсичный коллега?
Наверняка да, как и многие из нас. Но ответов на эти насущные вопросы я сегодня не дам - они уже есть в канале Диванные Данные. А ещё там есть советы, как вкатиться в аналитику с нуля, и реальные кейсы из работы продуктового аналитика💼
(это один из немногих каналов, которые я регулярно читаю)
Автор канала - продуктовый аналитик с опытом работы 3+ лет - провела около полусотни технических интервью, и сама проходила в отбор 20+ компаний. Подскажет, что поправить в резюме, на что смотрят при выборе кандидатов и как не ударить в грязь лицом на собеседовании🐈⬛
5 вопросов, чтобы собрать требования к дашборду (и не пришлось повторно идти к заказчику на следующий день)
It’s Wednesday, my dudes! Давайте поговорим, как собрать требования к дашборду, чтобы потом не оказаться в ситуации "у нас была какая-то тактика и мы её придерживались". Для этого я предлагаю задать заказчику 5 основных вопросов:
1️⃣ Зачем?
Какова цель? На какие вопросы должен отвечать дашборд? На этом этапе иногда можно понять, нужен ли вообще дашборд, или есть другие инструменты (в том числе уже существующие дашборды), которые могут решить нужную задачу.
2️⃣ Что?
Какие пожелания по метрикам и разрезам? Разрезы нужны в фильтрах или должны быть выведены на графики? Иногда ожидается, что вы поможете подобрать нужные метрики, а иногда у заказчика есть конкретный список метрик, которые ему нужны.
И здесь же опциональный вопрос: Откуда?
Особый случай, если ваш заказчик тоже аналитик - иногда он может дать пожелания или советы по источнику данных для отчёта (заказчик-аналитик - это золото 💗).
3️⃣ Как?
Как дашборд будет использоваться? Кто/как/где будет смотреть дашборд? Какие сценарии работы? Как часто он должен обновляться?
4️⃣ Какой?
Каким визуально должен быть дашборд? Как он должен выглядеть? Иногда у заказчика может быть конкретное пожелание по визуалу или референс (при этом это не означает, что нужно идти строго по референсу и нельзя предложить свой вариант - можно и нужно, вдруг он окажется удобнее)
5️⃣ Когда?
Какие желаемые сроки? Совпадают ли ожидания заказчика с нашими возможностями - может, стоить сделать MVP и затем его постепенно дорабатывать, чем делать сразу всё.
И самый главный вопрос:
Вы ведь знаете мем про жабу и среду?
🥰 - конечно, знаю
🤯 - не знаю, пошёл гуглить
Про посты из коммуналки
Ранее я вам рассказывала (ссылка на пост), что теперь я пишу для Авитошного канала Коммуналка аналитиков, и разрешаю себе пересылать сюда свои посты. Но теперь хочу попробовать другой формат - просто публиковать здесь свои посты из коммуналки, без пересылки.
Почему так?
У нас в коммуналке есть номинация "Пост с наибольшим количеством просмотров за месяц" (за который дают внутренние баллы, которые можно обменять на мерч). Нооо оказалось, что просмотры из репостов тоже считаются - один раз я уже побеждала в этой номинации (🥰), но тогда я еще не знала, как это работает, а теперь знаю, и получается, теперь осознанно накручиваю добавляю своим постам просмотров, пересылая в свой канал. А мне так не надо.
А во-вторых, для коммуналки посты немного корректируются редакторами, а тут смогу выкладывать свой изначальный вариант, который иногда чуть более неформальный🙂
Через час будет пост ⬇️⬇️⬇️
Рандомные рабочие лайфхаки
Сегодня захотелось поделиться своими неочевидными (или очевидными) лайфхаками, которые пришли ко мне не сразу, но при этом очень помогают в работе - возможно, будут полезны и вам)
⭐️ Канал/чат с самим собой
Есть много способов вести заметки, но мне нравится некоторые из них сохранять прямо в чате с самой собой в рабочем месседжере (у нас аналог слака Mattermost)
⭐️ Отдельный канал/чат со скринами
В этом году пришла к мысли, что просто чата с собой мне уже недостаточно, и завела чат-свалку отдельно для скринов. Например, иногда скриню отчёты, в том числе свои (пару раз помогало отследить какие-то моменты, когда ломалась история в отчете - хоть это и очень топорный, но рабочий способ). А недавно узнала, что руководитель соседнего кластера аналитики тоже ведёт у себя такой чатик со скринами.
⭐️ Записывать свои достижения, интересные кейсы
Во-первых, это просто приятно. Во-вторых, у нас, как и во многих компаниях, полугодовое ревью - поэтому полезно в течение полугодия сохранять в заметки свои интересные задачи/кейсы/достижения, чтобы потом было проще всё собрать на ревью. Ты можешь делать много всего классного, но если в момент ревью забудешь что-то указать, будет обидно (шутки про деменцию не принимаются! 😐)
⭐️ Определить важные рабочие каналы и мониторить их
А про это напишу отдельный пост😀
Ставь 👍, чтобы новая рабочая неделя прошла на ура
Минутка датавиза
Дисклеймер: просьба убрать от экранов особо впечатлительных и продвинутых инвесторов 👦
Предыстория
Cвой уровень инвестирования оцениваю как А2, то есть "pre-intermediate" - что-то где-то лежит, но в раздел "стакан заявок" почти никогда не заходила.
История
Как вы понимаете, я решила однажды заглянуть в стакан заявок😐
(стакан заявок - это количество заявок на покупку и продажу конкретного актива на бирже по разным ценам, которых обычно несколько)
На картинке как раз тот самый стакан (по некоему активу Х) - зеленым показаны заявки на покупку, красным - на продажу. Первым бросается в глаза, что красного очень много, а зеленого в разы меньше - наверное, этот актив сейчас продает в разы больше человек, чем покупает? Неужели с ним всё плохо? У меня атаческая паника😨
На всякий случай поясню, что подписей никаких нет, при наведении/нажатии на график ничего не появляется, есть только детализация по количеству заявок и ценам ниже под графиком, из которой я понимаю, что число заявок на покупку и продажу примерно 50/50.
Через некоторое (долгое) время вникания в график я начинаю осознавать, что это линейный график с накоплением, у которого по оси Y расположено количество заявок, а по оси X - цена заявки. То есть вот это широкое красное полотно мы получаем только потому, что есть типа 1000 заявок с уникальными высокими ценами (почти одинаковыми), из-за чего график почти не прирастает вверх, но ползет вправо. При общем числе заявок в несколько десятков миллионов, у меня пол-экрана занимают вот эти 0.001% заявок😡
Что можно сделать:
- хотя бы добавить подписи на график при наведении/нажатии
- но тут просится кардинально переделать график, поменять оси, возможно перейти на гистограмму - что угодно, но только не то, как сейчас 😡
Вот такие пироги😧
А как вам эта визуализация?
🔥 - тоже подгорело
👍 - а мне норм
❤️ - не дочитал, но поддержу
Голосуем за самый смешной мем из подборки (можно выбрать только один) ⬇️
+5
Когда-нибудь подборки мемов станут регулярными, но а пока просто внезапный вброс мемов
😂😆🐈
#bi_memes
Про матрицы компетенций
Многие аналитики, особенно работающие длительное время в одной компании, иногда задаются вопросом "а насколько я в рынке?" (имею в виду не зарплату, а уровень навыков). Действительно ли я [некий текущий грейд], смогу ли я с легкостью найти работу на свой грейд, если вдруг придется ее искать? Можно ли приблизительно оценить свой уровень, не начиная проходить собесы "для успокоения"? Да, можно - через матрицы компетенций.
Не во всех компаниях есть такие матрицы, или иногда они есть, но очень непроработанные - никто не запрещает использовать открытые матрицы других компаний😏
Например, матрица компетенций аналитиков Авито (субъективно считаю ее эталонной, и что вы мне сделаете?) - на гитхабе опубликована матрица для аналитиков данных, для BI она немного отличается, но базовые софтовые вещи совпадают, так что BI-щикам тоже можно смотреть.
Еще ресурсы:
- матрица от GoPractice
- требования к аналитикам данных в Яндексе по уровням (также от GoPractice)
- матрица BI аналитиков от RevealTheData
Repost from Коммуналка аналитиков
Кайфуйте, жизнь одна: мои самые приятные рабочие задачи
Вот и среда, my dudes! Сегодня в нашей коммуналке мы снова заглядываем в комнату BI — и с вами снова я, Маша, старший BI-разработчик вертикали Товары.
Недавно у меня был день рождения и отпуск, поэтому сами понимаете, хочется говорить только о приятном — кайфовых задачах.
⭐ Например, в этом квартале я начала делать новый большой дашборд по основным метрикам всей вертикали. MVP уже почти готов, и я с трепетом жду дня, когда моё детище сможет увидеть мир.
Всегда интересно и приятно с нуля создавать отчёт, который будет полезен большому числу коллег. Дашборд с нулём просмотров — ночной кошмар любого BI-щика.
⭐ Но, как вы уже знаете, не дашбордами едиными жив BI-разработчик — у нас очень много и других задач, о которых я рассказывала в своём первом посте.
Не меньше дашбордов мне нравится продумывать архитектуру данных. Например, распилить одну огромную неповоротливую витрину на несколько витрин, чтобы с ними было проще работать и чтобы запараллелить расчёты. Благодаря этому можно значительно сократить время готовности данных.
Сейчас я работаю над «распилом» одной из основных витрин кластера — витрины, на которой считается большинство наших метрик в А/Б-тестах.
⭐ Ещё очень люблю микрозадачи, направленные на помощь аналитикам из соседних команд: что-то подсказать, проконсультировать, поревьюить PR. Эдакий быстрый дофамин, даже от маленькой помощи одному человеку💗
Наверное, невозможно составить спринт исключительно из своих любимых задач. Так или иначе приходится работать и с монотонными задачами:
→ Своей историей о рутинной задаче недавно делилась Настя.
→ И с неприятными эдхоками тоже приходится сталкиваться, об этом писали Юля и Лада в своих постах.
Но всё-таки я думаю, что если ты искренне любишь хотя бы половину своих задач — это уже здорово 😍
#МашаАн
Почему бы не поговорить про Cron?🙂
Cron (Command Run On) - это система для автоматического запуска задач в определенное время. Аналитики чаще всего сталкиваются с этим при работе с ETL-процессами (например, в Airflow или аналогах), и вот cron-выражение как раз задает расписание для регулярного запуска каких-либо задач, например сборки витрины данных.
Состоит выражение из 5 наборов чисел или знаков * (для обозначения "любой"/"каждый"), которые указывают в определенном порядке: минуты, часы, день месяца, месяц, день недели.
Например, при расписании 30 0,15 * * * обновление витрины будет запускаться каждый день 2 раза в день в 0:30 и в 15:30 (но важно уточнять у админов, по какому времени настроена ваша система, по Московскому/местному или по UTC).
💡Чтобы не запоминать порядок и всегда точно переводить с человеческого языка на cron и обратно, можно использовать сайт https://crontab.guru/ или бот @cron_humaniser_bot.
Анекдот из жизни BI-разработчика
Однажды за обедом аналитик данных из соседней команды на полном серьезе спросил у меня: "А ты правда просто делаешь графики и тебе за это платят?" (хотелось бы ответить hell yeah, но, к сожалению или к счастью, это далеко не так).
Функция BI-аналитики/разработки в компании тогда только начала зарождаться, и я была первым BI-щиком, которого он видел, так что претензий у меня не было. Но всё равно немного пригорело, поэтому когда я через пару месяцев выступала на внутреннем митапе, решила уделить пару минут и рассказать коллегам, кто такие BI-щики🐈⬛
Собственно вот картинка из моего выступления, которая вкратце объясняет, чем мы занимаемся на работе, кроме сплетен с коллегами и распития бесплатного кофе:
Не так давно выкладывала пост с примерами простых, но неприятных ошибок в SQL запросах, с которыми встречаются многие аналитики на старте карьеры.
Вот еще один пример в дополнение к нему: использование where при left join.
Например, есть запрос
select *
from table_1 t1
left join table_2 t2 on t1.id = t2.id
where t2.condition = 'value'
По факту здесь left join превращается в inner join (потому что при отсутствии значения в table_2 мы получаем null, а оно не проходит по условию в where и отсекается). Поэтому в таких случаях важна внимательность, если же inner join не подразумевался, то скорее всего (смотря чего мы хотим добиться по смыслу, смотря какие details) здесь нужно просто перенести условие в join:
select *
from table_1 t1
left join table_2 t2 on t1.id = t2.id and t2.condition = 'value'
Вот такие пироги🌸Наглядный пример, как можно причесать визуализацию и сделать ее более понятной. Половина этих пунктов применима не только к слайдам, но и к работе с дашбордами, так что берем на вооружение🙂
Если хочется ознакомиться подробнее (ну или не грузится гифка), то эти шаги расписаны в статье
Как понравиться коллегам 😏
Эх, надо было сделать такой пост на 14 февраля, но хорошая мысля пришла опосля😢
Список составлен на основании реальных отзывов реальных коллег за пару последних ревью (формулировки сохранены на 99%).
Итак, коллеги любят, когда ты:
❤️ не боишься трудностей, смело "принимаешь на себя удар" и берешься за сложные/неприятные задачи
❤️ находишь ошибки в существующих процессах/отчетах и исправляешь их
❤️ быстро включаешься в новые задачи
❤️ с тобой можно посоветоваться по разным вопросам
❤️ можно быть уверенным, что все будет реализовано в срок и с надлежащей степенью качества
❤️ самостоятельно разбираешься в тонкостях задачи, но и не стесняешься приходить с вопросами и подключать другие команды
❤️ вовремя отвечаешь сам(а) и мягко припушиваешь в ответ
❤️ всегда готов(а) помочь и поделиться экспертизой с коллегами
❤️ хорошо выстраиваешь коммуникацию с заказчиками, всегда понятно когда что будет сделано
Кто поставит сердечко, тому классных задач и любящих коллег💗
+4
Давненько не было мемчиков - исправляюсь, ловите увеличенную дозу 🤭
😂😆
#bi_memes
Repost from Коммуналка аналитиков
Чек-лист хорошего дашборда
It is Wednesday, my dudes! Всем привет, на связи снова Маша Аничкова, старший BI-разработчик Авито Товаров, и сегодня мы поговорим про дашборды.
Что такое хороший дашборд? Прежде всего он выполняет ту задачу, для которой создан. Ниже собрали несколько конкретных пунктов, которые помогут этого добиться, и разделили их на 2 блока: визуал и данные.
Визуал 👁
☑️ шрифты и цвета вызывают скорее усладу для глаз, нежели приступ эпилепсии
☑️ формат чисел позволяет пользователю прочесть любое число быстрее, чем сказать «черничный пирог» (в идеале — быстрее, чем просто «пирог»)
☑️ есть понятная легенда или она заменена на всплывающие подсказки/тултипы
☑️ типы графиков подходят под данные лучше, чем вам подходит бывший
☑️ структура дашборда и порядок блоков удобны и логичны, самое важное — в начале
☑️ отчёт выглядит менее перегруженным, чем метро в час-пик
☑️ есть описание дашборда, чтобы вас не доставали вопросами любой мог разобраться, как им пользоваться
Данные 🧠
☑️ вы их проверили
☑️ вы проверили их ещё раз
☑️ все необходимые фильтры настроены и работают корректно
☑️ данные обновляются к нужному времени
☑️ дашборд загружается с адекватной скоростью (чем меньше раз вы успеете сказать «черничный пирог», тем лучше)
☑️ где применимо, добавлены сравнительные временные показатели: YoY/MoM/WoW
☑️ при необходимости настроены уведомления/дайджесты и алерты о падении отчета
Захотелось что-нибудь добавить? Смело дополняйте чек-лист в комментариях 🫶
#МашаАн
С недавних пор я являюсь одним из авторов канала Авитошных аналитиков, поэтому официально даю себе разрешение репостить сюда свои посты раз в месяц. Но если вам интересно, заглядывайте туда, чтобы и других авторов почитывать, там у нас классно - ссылка сейчас будет)
(Не)очевидные ошибки в SQL
Решила сегодня разобрать пару простых ошибок в написании SQL запросов, с которыми редко можно столкнуться на курсах, но знание о которых когда-нибудь может сэкономить вам несколько часов попыток "выяснить, что же не так"
1) Скобки в фильтрации WHERE
Вкратце: если есть OR, то скобки лучше расставить, даже если кажется, что они не нужны.
Например, нам нужны значения за 2025 год (весь) или за 2024 начиная с июля:
select year, month, metric, value
from table_1
where year = 2025
or (year = 2024 and month >= 7)
(если есть дата, то было бы логичнее фильтровать просто по дате >= '2024-07-01', но допустим даты нет)
Или нам нужны значения за 2025 год и конкретные категории - категория Home или подкатегория Animals:
select category, subcategory, metric, value
from table_1
where year = 2025
and (category = 'Home' or subcategory = 'Animals')
Скобки расставляем в зависимости от того, в каком порядке по смыслу нам нужно выполнение указанных условий.
2) Алиасы таблиц при джойне
Важно указывать их внимательно, иначе например такой запрос
select *
from table_1 as t1
join table_2 as t2 on t1.id = t1.id
по факту дает cross-join из-за t1.id = t1.id, вместо которого, конечно, имелось в виду t1.id = t2.id. Заметить такую ошибку в большом запросе сложно, поэтому лучше сразу быть очень внимательным с алиасами (а еще лучше - указывать смысловые алиасы, чтобы они отличались друг от друга не только одним символом)
Ставьте 👍, если было полезно, и ❤️, если тоже когда-то обжигались на этих ошибках😧