7.37K subscribers
1.73K photos
73 videos
1 file
1.31K links
Привет! Мы — образовательная платформа в сфере аналитики Simulative: simulative.ru

Создаём курсы-симуляторы, где обучаем не на «апельсинках», а на кейсах из реального бизнеса.

Наш уютный чат: @itresume_chat
Поддержка: @simulative_support
Download Telegram
Проекты наших студентов за год

В 2025 году мы восторгались работами наших студентов и делились ими с вами. Сегодня покажем вам несколько примеров, которые лучше любых слов объясняют, что такое реальная аналитика для бизнеса:

🔥 ETL-конвейер для маркетплейса
🔥 Аналитическая инфраструктура с глубокой аналитикой
🔥 Автоматизированный мониторинг в Yandex DataLens

Что общего во всех этих работах?
Данные приходят сами, а отчёты формируются без участия человека.
Используются именно те инструменты (PostgreSQL, Metabase, DataLens, Docker, Git), которые требуются на работе.
За каждой строчкой кода стоит конкретный бизнес-вопрос: что продавать, кому и как удержать клиентов.
Полный цикл от сбора «сырых» данных до презентации готовых инсайтов.

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

Хотите так же? Приходите на наш курс «Аналитик данных» — это среда, где вас поддержат, направят и научат думать как аналитик. Вы не просто решаете задачи, а становитесь частью команды, которая создаёт ценность из данных.


Записаться на курс

📊 Simulative
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥51
Хотите прокачать свои навыки в аналитике?

Если вы не успели посмотреть «хардовые» вебинары 2025 года, не беда — мы всё сохранили! Переходите по ссылке и получите записи вебинаров по практическому SQL и Python, а также разбору тестовых заданий на аналитика в бигтех 🔥

➡️ Забрать записи вебинаров

📊 Simulative
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥531
Как превратить данные в нарратив 📈

Если вы уже умеете строить дашборды в Power BI, но чувствуете, что ваши отчёты не заходят — возможно, дело не в данных, а в их подаче. И тут на помощь приходит дата-сторителлинг.

В нашей новой статье разбираем, как строить историю через дашборд:
🟠 Трёхактная структура: от контекста до призыва к действию;
🟠 Якорные KPI + эмоциональные индикаторы — как сразу захватить внимание;
🟠 Визуальные принципы Power BI для естественного повествования;
🟠 Типичные ошибки, которые убивают даже хорошие данные.

📌 Читать статью

А если вы хотите углубиться в создание действительно информативных и качественных графиков, приходите на тренинг Анастасии Кузнецовой «Осмысленные дашборды». Вы пройдёте весь путь от сбора требований до релиза и поддержки дашборда, укрепите свои навыки в BI и сделаете шаг вперёд в карьере 🧡


📊 Simulative
Please open Telegram to view this post
VIEW IN TELEGRAM
64🔥1
Оптимизация SQL-запросов: как улучшить производительность запросов с помощью индексов и правильной структуры

В мире анализа данных производительность запросов имеет критическое значение. Оптимизация SQL-запросов может существенно сократить время выполнения и снизить нагрузку на базу данных. В этом посте мы рассмотрим, как использовать индексы и правильную структуру таблиц для достижения максимальной эффективности.

🔸 Зачем нужны индексы?

Индексы — это специальные структуры данных, которые помогают ускорить поиск и выборку данных в таблицах. Они работают как указатели, позволяя системе управления базами данных (СУБД) быстро находить нужные строки без необходимости сканировать всю таблицу. Это особенно важно при работе с большими объемами данных.

Пример использования индекса «до»:

SELECT * FROM employees WHERE department = 'HR';


Без индекса СУБД будет выполнять полное сканирование таблицы, что может занять много времени.

Пример «после»:

CREATE INDEX idx_department ON employees(department);
SELECT * FROM employees WHERE department = 'HR';


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

🔸 Разновидности индексов

1️⃣ Первичные индексы. Они создаются автоматически для столбцов с первичным ключом:

CREATE TABLE orders (
order_id SERIAL PRIMARY KEY,
customer_id INT,
order_date DATE
);


Индекс на order_id обеспечивает быструю выборку по этому полю.

2️⃣ Уникальные индексы предотвращают дублирование значений:

CREATE UNIQUE INDEX idx_email ON users(email);


Это гарантирует уникальность адресов электронной почты в таблице пользователей.

3️⃣ Составные индексы cоздаются для нескольких столбцов:

CREATE INDEX idx_orders_customer_date ON orders(customer_id, order_date);


Этот индекс ускоряет запросы, фильтрующие данные по клиенту и дате одновременно.

🔸 Как избежать чрезмерного количества индексов

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

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

🔸 Примеры оптимизации запросов

1️⃣ Ускорение фильтрации с WHERE

Пример «до»:

SELECT * FROM products WHERE price > 1000;


Запрос без индекса может занять много времени.

Пример «после»:

CREATE INDEX idx_price ON products(price);
SELECT * FROM products WHERE price > 1000;


Индекс на price ускоряет выполнение запроса.

2️⃣ Оптимизация сортировки с ORDER BY

Пример «до»:

SELECT name, salary FROM employees ORDER BY salary DESC;


Запрос может быть медленным без индекса.

Пример «после»:

CREATE INDEX idx_salary ON employees(salary);
SELECT name, salary FROM employees ORDER BY salary DESC;


С индексом сортировка выполняется быстрее.

3️⃣ Поиск по нескольким колонкам

Пример «до»:

SELECT * FROM orders WHERE customer_id = 42 AND order_date BETWEEN '2024-01-01' AND '2024-12-31';


Запрос может выполняться медленно без составного индекса.

Пример «после»:

CREATE INDEX idx_customer_date ON orders(customer_id, order_date);
SELECT * FROM orders WHERE customer_id = 42 AND order_date BETWEEN '2024-01-01' AND '2024-12-31';


Составной индекс значительно ускоряет выполнение запроса.

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

Нравятся наши посты? Сохраняйте к себе, пересылайте коллегам и просто поддержите нас лайком! 👍


📊 Simulative
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2510🔥5
Вебинар: решаем тестовое задание в Lamoda

Приглашаем на первый вебинар этого года! Вместе с Павлом Беляевым, тимлидом команды дата-аналитиков в Яндекс eLama, решим реальное тестовое аналитика из Lamoda: разберём структуру заказов и позиций, посчитаем нужные метрики и увидим, как к таким задачам подходит практикующий аналитик.

➡️ Зарегистрироваться на вебинар

На вебинаре вы:
➡️ Поймёте, по каким критериям нанимающий аналитик отличает «сырых» джунов от тех, кого уже можно нанимать;
➡️ Сформируете представление о базовых SQL‑навыках и типах задач, которые требуются от junior-аналитика;
➡️ Получите подборку материалов о том, где искать другие тестовые и другие материалы для подготовки к собеседованиям.​

❗️ Встречаемся 13 января в 19:00 МСК!

💬 Всем зарегистрировавшимся дарим полезный материал — разбор одной из ключевых задач с собеседований по SQL.


➡️ Зарегистрироваться на вебинар

📊 Simulative
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥42
5 инструментов инженера данных

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

Chief Data Officer Георгий Семенов собрал в статье пять ключевых инструментов, без которых не обходится ни один современный дата-инженер. Разберём, зачем они нужны и как связаны между собой.

📖 Читать статью

📊 Simulative
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥32
Последний день, чтобы успеть!

Говорим акции «до свидания» уже сегодня в 23:59! Сделайте мощный шаг в аналитику со скидкой:

😶 Скидки до 35% на все курсы (кроме тренингов);
😶 Не ждите старта потока — начать учиться можно в день оплаты;
😶 Подарок себе на Новый год, который изменит карьеру.

Не откладывайте мечту о сильной профессии и высокой зарплате на потом. «Потом» начинается сегодня!

🔸 Забрать скидку до 35%

📊 Simulative
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥22
Media is too big
VIEW IN TELEGRAM
А как проходит ваше утро после праздников? 😁

📊 Simulative
Please open Telegram to view this post
VIEW IN TELEGRAM
😁932
5 ошибок в пет-проектах

Всем привет! На связи Андрон, основатель Simulative
👋🏻

Через меня проходит много пет-проектов, и я выделил топ-5 ошибок, которые встречаются практически в каждом. Проверьте себя, нет ли таких грешков в ваших проектах?)

Где размещать проект

Кто-то присылает ссылку на google colab, кто-то блокнот ipynb, кто-то архив, кто-то py-файл... Короче, кто во что горазд.

Есть только единственный вменяемый способ поделиться проектом — публичный репозиторий на GitHub. Если мне нужно сделать что-то кроме git clone ... — значит такой проект можно дальше не смотреть.

Необходимые библиотеки

Если вы используете специализированные библиотеки в своём коде, то обязательно создавайте в корне проекта файлик requirements.txt со списком актуальных библиотек и их версий. Это очень легко можно сделать, если перед пушем проекта на гит выполнить команду pip freeze > requirements.txt (только нужно делать это, активировав виртуальное окружение).

Это нужно, потому что любой проект я разверну так:

git clone https://github.com/...
cd projectname
python -m venv venv
./venv/scripts/activate
pip install -r requirements.txt


Склонил репозиторий → перешёл в папку → создал виртуальное окружение → активировал его → установил зависимости. После этого ваш скрипт у меня запустится без проблем.

Мусор в репозитории

Есть ребята, кто размещают проекты на GitHub, но там много мусора. Запомните: в репе не должно быть папок venv, .idea, __pycache__ и прочих прелестей. Это всё должно добавляться в .gitignore.

Описание, как работает проект

Сделайте хотя бы минимальный Readme-файл. В нём запишите минимальные системные требования (не все библиотеки работают на всех ОС + есть ограничения по версиям питона), как запустить код, где лежат данные, какие входные аргументы, как их менять и что они значат, что вообще код делает. В общем, простой мануал для тех, кто первый раз видит ваш проект.

Хардкодинг пути до файла

Частая история — у автора кода на домашнем компьютере файлик лежит в папке C:/Desktop/pussycat/data.txt. И именно этот путь он зашивает в код. А у меня на компьютере может не быть диска C и уж точно папки pussycat.

Хорошая практика — делать путь относительным, в формате «файл data.txt на одном уровне с текущим файлом с кодом» .Это делается с помощью того же модуля os.

Если кому-то эта инфа актуальна сейчас, обязательно поделитесь этим постом, чтобы в мире стало больше хорошо оформленных проектов 🎶

📊 Simulative
Please open Telegram to view this post
VIEW IN TELEGRAM
19🔥8👍33
Практическое руководство по тестированию своего дашборда

Вы создали дашборд — подключили данные, сделали красивые графики работающие фильтры. Но как быть уверенным, что в нём нет ошибок, им удобно пользоваться, а под нагрузкой он не упадёт?

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

Мы подготовили для вас методичку «Типы тестирования дашбордов» от Анастасии Кузнецовой, эксперта по BI и визуализации данных и автора тренинга «Осмысленные дашборды».

Что внутри:
Как оценить, понятен ли дашборд с первого взгляда по «правилу пяти секунд».
Основные типы тестирования: UX-тестирование, тестирование данных, фильтров и параметров — разбор частых ошибок и проверка всех комбинаций.
Как убедиться, что дашборд выдержит большие данные и много пользователей.
Готовый чек-лист для быстрой пошаговой проверки любого дашборда.

Зачем это читать?
🔹 Научитесь системно проверять дашборды.
🔹 Узнаете, как находить и устранять ошибки в данных и логике до того, как их увидит бизнес.
🔹 Сэкономите часы на отладке и получите уверенность в качестве своего продукта.

Не оставляйте качество ваших дашбордов на волю случая. Берите готовую методику и внедряйте её в свои проекты!

🧡 Получить материал

📊 Simulative
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥22
Вебинары этой недели

Ждём вас на первых вебинарах в этом году! Разбираем тестовые задания на аналитика и решаем, когда использовать Excel, а где SQL и Python 🧡

#️⃣ 13 января, 19:00 МСК«Разбираем тестовое на аналитика данных в Lamoda»

На вебинаре решим реальное тестовое аналитика: разберём структуру заказов и позиций, посчитаем нужные метрики и увидим, как к таким задачам подходит практикующий аналитик. За разбор отвечает Павел Беляев — тимлид команды дата‑аналитиков в Яндекс eLama.

➡️ Зарегистрироваться на вебинар


#️⃣ 14 января, 19:00 МСК«Когда Excel недостаточно: 5 бизнес-кейсов, в которых вам пора перейти на SQL и Python»

Разберём на коротких кейсах из практики, когда таблички уже не справляются, а пара простых скриптов на Python и запросов на SQL экономят часы рутины, помогают строить финансовые модели и выглядеть сильнее на рынке труда. Вебинар проведёт Вугар Дамиров, Data Analyst Team Lead: он каждый день решает бизнес‑задачи с помощью SQL, Python и BI.

➡️ Зарегистрироваться на вебинар


Регистрируйтесь и добавляйте события к себе в календарь, чтобы не забыть!

📊 Simulative
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥22
🗣 Задайте вопрос BI-эксперту

Пробуем новый формат взаимодействия с нашими экспертами и менторами — Q&A-сессию. И первый наш эксперт — Анастасия Кузнецова, автор тренинга «Осмысленные дашборды» и специалист в области BI и визуализации данных!

Она создала более 300 графиков и дашбордов и обучила более 3000 специалистов из Авито, Сбербанка, Яндекса и Циана.

Если у вас есть вопросы по BI-инструментам, визуализации или карьере в аналитике, да и вообще любые — самое время его задать! 15 января Настя выберет самые интересные вопросы и разберёт их здесь, в канале @simulative_official.


Не упустите шанс получить совет от топового эксперта!

✍️ Задать вопрос

📊 Simulative
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥43
This media is not supported in your browser
VIEW IN TELEGRAM
🔥432
Simulative
Вебинар: решаем тестовое задание в Lamoda Приглашаем на первый вебинар этого года! Вместе с Павлом Беляевым, тимлидом команды дата-аналитиков в Яндекс eLama, решим реальное тестовое аналитика из Lamoda: разберём структуру заказов и позиций, посчитаем нужные…
Присоединяйтесь сегодня в 19:00 по МСК к нашему вебинару!

Павел Беляев, тимлид дата-аналитиков в Яндекс eLama, поделится своим решением тестового задания в Lamoda.

На примере реального тестового вы сможете «заглянуть в голову» нанимающему аналитику, разобрать живые кейсы и понять, как отвечать растущим требованиям рынка, не утопая в абстрактной теории.

➡️ Зарегистрироваться

📊 Simulative
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥32
5 ошибок новичков в SQL

Привет, будущие аналитики! С вами Павел Беляев, ментор курса «Аналитик данных» и ведущий канала Тимлидское об аналитике 👋🏻

Хочу привести несколько ошибок начинающих в SQL, которые наблюдал в своей практике. Предупреждён — значит вооружён!

1️⃣ JOIN вместо LEFT JOIN

Положим, есть таблица с юзерами users и таблица с их финансовыми активностями. Мы хотим вывести юзеров, которые зарегистрировались в 2026 году, и подтянуть их транзакции.

SELECT u.user_id, money_sum
FROM
(
SELECT user_id
FROM users
WHERE DATE(date_registration)>=DATE('2026-01-01')
) AS u

JOIN
(
SELECT user_id, SUM(amount) AS money_sum
FROM transactions
GROUP BY user_id
) AS t


Так? Нет! В этом запросе мы увидим не всех пользователей, а лишь тех, у которых были транзакции.

2️⃣ BETWEEN и формат даты

Чтобы вытащить данные временного ряда из определённого интервала, часто прибегают к BETWEEN в условии:

SELECT user_id, SUM(amount) AS money_sum
FROM transactions
WHERE paid_at BETWEEN '2025-12-01' AND '2025-12-31'
GROUP BY user_id


Оператор BETWEEN включает границы в выборку, так что вроде всё верно, да? Нет. Дело в том, что обычно транзакции хранятся в формате «дата-время»: 'YYYY-MM-DD HH:MM:SS'.

В нашем запросе '2025-12-31' будет приведено к форме '2025-12-31 00:00:00', а значит, почти весь день из правой границы не попадёт в выборку!

Правильный вариант — привести поле paid_at к формату «дата» и только потом подставлять в условие:

WHERE DATE(paid_at) BETWEEN '2025-12-01' AND '2025-12-31'


3️⃣ Пересечения условий в CASE WHEN ... END

Рассмотрим запрос, сегментирующий пользователей по их суммарному обороту:

SELECT user_id,
CASE
WHEN SUM(amount)<100 THEN 'C'
WHEN SUM(amount)<=150 THEN 'B'
WHEN SUM(amount)>=150 THEN 'A'
END AS segment
FROM transactions
GROUP BY 1


К какому сегменту отнесётся пользователь с оборотом 150? Исходя из кода — к 'B'. Но отвечает ли это бизнес-логике?

Следует чётко определить границы сегментов и выставить строгое неравенство там, где нужно:

WHEN SUM(amount) < 100 THEN 'C'
WHEN SUM(amount) < 150 THEN 'B'
WHEN SUM(amount) >= 150 THEN 'A'


4️⃣ Проверка на NULL в условиях

При составлении любых фильтрующих условий (WHERE, ON, HAVING и т. п.) следует помнить, что 0 и NULL — не одно и то же.

Если мы хотим дополнить запрос из первого примера условием для выборки только пользователей без транзакций и добавим в конце:

WHERE money_sum = 0


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

WHERE money_sum IS NULL


5️⃣ NULL в условиях объединения

Если же вы джойните таблицы по полям, которые могут принимать пустые значения:

SELECT * FROM t1
LEFT JOIN t2 ON t1.nullable_col = t2.nullable_col


то имейте в виду, что NULL слева не заджойнится с NULL справа. Если в обеих таблицах nullable_col IS NULL, эти строки не попадут в выборку, хотя кажется, что колонки равны, правда?

Для таких случаев следует полю для соединения назначить какое-то значение с помощью функции COALESCE или IFNULL:

SELECT * 
FROM
(
SELECT *, COALESCE(nullable_col, 'empty') AS j
FROM t1
) AS j1

LEFT JOIN
(
SELECT *, COALESCE(nullable_col, 'empty') AS j
FROM t2
) AS j2 ON j1.j = j2.j


Ставьте реакции, если было полезно!

📊 Simulative
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2797
This media is not supported in your browser
VIEW IN TELEGRAM
32🔥2
Узнаем, как перейти из Excel в SQL и Python, через пару часов

Вместе с Вугаром Дамировым, Data Analyst Team Lead с 7‑летним опытом, расскажем бизнес-кейсы, где пригодится SQL вместо стандартного Excel.

Что вы получите от вебинара:
Поймёте, когда Excel уже мешает работе: отчёты растут, таблички ломаются, автоматизации нет;
Увидите на примерах, как SQL и Python забирают рутину: сами тянут данные, обновляют отчёты и ускоряют проверку гипотез;
Разберётесь, какие базовые навыки SQL, Python и BI нужны, чтобы претендовать на роль fullstack-аналитика.

➡️ Зарегистрироваться

📊 Simulative
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥52
Simulative
🗣 Задайте вопрос BI-эксперту Пробуем новый формат взаимодействия с нашими экспертами и менторами — Q&A-сессию. И первый наш эксперт — Анастасия Кузнецова, автор тренинга «Осмысленные дашборды» и специалист в области BI и визуализации данных! Она создала…
Объявляем Q&A-сессию с Анастасией Кузнецовой!

Спасибо большое вам за вопросы, присланные в форму — Настя ознакомилась со всеми и готова ответить на самые интересные из них. В течение дня мы поделимся её ответами. Stay tuned!

📊 Simulative
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥433
Вопрос:
1. Что должен уметь BI-аналитик сейчас, чтобы быть востребованным на рынке?
2. Насколько сейчас ценится красота/дизайн визуализации данных?
This media is not supported in your browser
VIEW IN TELEGRAM
🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
👍3