Оптимизация SQL-запросов: как улучшить производительность запросов с помощью индексов и правильной структуры
В мире анализа данных производительность запросов имеет критическое значение. Оптимизация SQL-запросов может существенно сократить время выполнения и снизить нагрузку на базу данных. В этом посте мы рассмотрим, как использовать индексы и правильную структуру таблиц для достижения максимальной эффективности.
🔸 Зачем нужны индексы?
Индексы — это специальные структуры данных, которые помогают ускорить поиск и выборку данных в таблицах. Они работают как указатели, позволяя системе управления базами данных (СУБД) быстро находить нужные строки без необходимости сканировать всю таблицу. Это особенно важно при работе с большими объемами данных.
Пример использования индекса «до»:
Без индекса СУБД будет выполнять полное сканирование таблицы, что может занять много времени.
Пример «после»:
С индексом запрос выполняется значительно быстрее, так как СУБД использует индекс для быстрого поиска нужных строк.
🔸 Разновидности индексов
1️⃣ Первичные индексы. Они создаются автоматически для столбцов с первичным ключом:
Индекс на order_id обеспечивает быструю выборку по этому полю.
2️⃣ Уникальные индексы предотвращают дублирование значений:
Это гарантирует уникальность адресов электронной почты в таблице пользователей.
3️⃣ Составные индексы cоздаются для нескольких столбцов:
Этот индекс ускоряет запросы, фильтрующие данные по клиенту и дате одновременно.
🔸 Как избежать чрезмерного количества индексов
Хотя индексы значительно улучшают производительность, их чрезмерное количество может замедлить операции вставки и обновления. Вот несколько рекомендаций:
➖ Анализируйте использование запросов: создавайте индексы только для тех столбцов, которые часто используются в условиях фильтрации.
➖ Проверяйте использование индексов: используйте команду EXPLAIN для анализа выполнения запросов.
➖ Удаляйте неиспользуемые индексы: это поможет освободить место и улучшить производительность.
🔸 Примеры оптимизации запросов
1️⃣ Ускорение фильтрации с WHERE
Пример «до»:
Запрос без индекса может занять много времени.
Пример «после»:
Индекс на price ускоряет выполнение запроса.
2️⃣ Оптимизация сортировки с ORDER BY
Пример «до»:
Запрос может быть медленным без индекса.
Пример «после»:
С индексом сортировка выполняется быстрее.
3️⃣ Поиск по нескольким колонкам
Пример «до»:
Запрос может выполняться медленно без составного индекса.
Пример «после»:
Составной индекс значительно ускоряет выполнение запроса.
Используя индексы и правильную структуру таблиц, вы можете значительно улучшить производительность своих запросов. Не забывайте регулярно анализировать использование индексов и корректировать их в зависимости от изменяющихся требований вашей базы данных.
📊 Simulative
В мире анализа данных производительность запросов имеет критическое значение. Оптимизация SQL-запросов может существенно сократить время выполнения и снизить нагрузку на базу данных. В этом посте мы рассмотрим, как использовать индексы и правильную структуру таблиц для достижения максимальной эффективности.
🔸 Зачем нужны индексы?
Индексы — это специальные структуры данных, которые помогают ускорить поиск и выборку данных в таблицах. Они работают как указатели, позволяя системе управления базами данных (СУБД) быстро находить нужные строки без необходимости сканировать всю таблицу. Это особенно важно при работе с большими объемами данных.
Пример использования индекса «до»:
SELECT * FROM employees WHERE department = 'HR';
Без индекса СУБД будет выполнять полное сканирование таблицы, что может занять много времени.
Пример «после»:
CREATE INDEX idx_department ON employees(department);
SELECT * FROM employees WHERE department = 'HR';
С индексом запрос выполняется значительно быстрее, так как СУБД использует индекс для быстрого поиска нужных строк.
🔸 Разновидности индексов
CREATE TABLE orders (
order_id SERIAL PRIMARY KEY,
customer_id INT,
order_date DATE
);
Индекс на order_id обеспечивает быструю выборку по этому полю.
CREATE UNIQUE INDEX idx_email ON users(email);
Это гарантирует уникальность адресов электронной почты в таблице пользователей.
CREATE INDEX idx_orders_customer_date ON orders(customer_id, order_date);
Этот индекс ускоряет запросы, фильтрующие данные по клиенту и дате одновременно.
🔸 Как избежать чрезмерного количества индексов
Хотя индексы значительно улучшают производительность, их чрезмерное количество может замедлить операции вставки и обновления. Вот несколько рекомендаций:
🔸 Примеры оптимизации запросов
Пример «до»:
SELECT * FROM products WHERE price > 1000;
Запрос без индекса может занять много времени.
Пример «после»:
CREATE INDEX idx_price ON products(price);
SELECT * FROM products WHERE price > 1000;
Индекс на price ускоряет выполнение запроса.
Пример «до»:
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;
С индексом сортировка выполняется быстрее.
Пример «до»:
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';
Составной индекс значительно ускоряет выполнение запроса.
Используя индексы и правильную структуру таблиц, вы можете значительно улучшить производительность своих запросов. Не забывайте регулярно анализировать использование индексов и корректировать их в зависимости от изменяющихся требований вашей базы данных.
Нравятся наши посты? Сохраняйте к себе, пересылайте коллегам и просто поддержите нас лайком!👍
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25❤10🔥5
Вебинар: решаем тестовое задание в Lamoda
Приглашаем на первый вебинар этого года! Вместе с Павлом Беляевым, тимлидом команды дата-аналитиков в Яндекс eLama, решим реальное тестовое аналитика из Lamoda: разберём структуру заказов и позиций, посчитаем нужные метрики и увидим, как к таким задачам подходит практикующий аналитик.
➡️ Зарегистрироваться на вебинар
На вебинаре вы:
➡️ Поймёте, по каким критериям нанимающий аналитик отличает «сырых» джунов от тех, кого уже можно нанимать;
➡️ Сформируете представление о базовых SQL‑навыках и типах задач, которые требуются от junior-аналитика;
➡️ Получите подборку материалов о том, где искать другие тестовые и другие материалы для подготовки к собеседованиям.
❗️ Встречаемся 13 января в 19:00 МСК!
➡️ Зарегистрироваться на вебинар
📊 Simulative
Приглашаем на первый вебинар этого года! Вместе с Павлом Беляевым, тимлидом команды дата-аналитиков в Яндекс eLama, решим реальное тестовое аналитика из Lamoda: разберём структуру заказов и позиций, посчитаем нужные метрики и увидим, как к таким задачам подходит практикующий аналитик.
На вебинаре вы:
💬 Всем зарегистрировавшимся дарим полезный материал — разбор одной из ключевых задач с собеседований по SQL.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥4 2
5 инструментов инженера данных
Когда речь заходит о профессии инженера данных, многие представляют себе что-то сложное и техническое. Но на самом деле всё сводится к набору мощных инструментов, с помощью которых инженер превращает хаотичные потоки данных в чётко выстроенные процессы.
Chief Data Officer Георгий Семенов собрал в статье пять ключевых инструментов, без которых не обходится ни один современный дата-инженер. Разберём, зачем они нужны и как связаны между собой.
📖 Читать статью
📊 Simulative
Когда речь заходит о профессии инженера данных, многие представляют себе что-то сложное и техническое. Но на самом деле всё сводится к набору мощных инструментов, с помощью которых инженер превращает хаотичные потоки данных в чётко выстроенные процессы.
Chief Data Officer Георгий Семенов собрал в статье пять ключевых инструментов, без которых не обходится ни один современный дата-инженер. Разберём, зачем они нужны и как связаны между собой.
📖 Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥3 2
Последний день, чтобы успеть!
Говорим акции «до свидания» уже сегодня в 23:59! Сделайте мощный шаг в аналитику со скидкой:
😶 Скидки до 35% на все курсы (кроме тренингов);
😶 Не ждите старта потока — начать учиться можно в день оплаты;
😶 Подарок себе на Новый год, который изменит карьеру.
Не откладывайте мечту о сильной профессии и высокой зарплате на потом. «Потом» начинается сегодня!
🔸 Забрать скидку до 35%
📊 Simulative
Говорим акции «до свидания» уже сегодня в 23:59! Сделайте мощный шаг в аналитику со скидкой:
Не откладывайте мечту о сильной профессии и высокой зарплате на потом. «Потом» начинается сегодня!
🔸 Забрать скидку до 35%
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥2 2
5 ошибок в пет-проектах
Всем привет! На связи Андрон, основатель Simulative 👋🏻
Через меня проходит много пет-проектов, и я выделил топ-5 ошибок, которые встречаются практически в каждом. Проверьте себя, нет ли таких грешков в ваших проектах?)
Где размещать проект
Кто-то присылает ссылку на google colab, кто-то блокнот ipynb, кто-то архив, кто-то py-файл... Короче, кто во что горазд.
Есть только единственный вменяемый способ поделиться проектом — публичный репозиторий на GitHub. Если мне нужно сделать что-то кроме
Необходимые библиотеки
Если вы используете специализированные библиотеки в своём коде, то обязательно создавайте в корне проекта файлик
Это нужно, потому что любой проект я разверну так:
Склонил репозиторий → перешёл в папку → создал виртуальное окружение → активировал его → установил зависимости. После этого ваш скрипт у меня запустится без проблем.
Мусор в репозитории
Есть ребята, кто размещают проекты на GitHub, но там много мусора. Запомните: в репе не должно быть папок
Описание, как работает проект
Сделайте хотя бы минимальный Readme-файл. В нём запишите минимальные системные требования (не все библиотеки работают на всех ОС + есть ограничения по версиям питона), как запустить код, где лежат данные, какие входные аргументы, как их менять и что они значат, что вообще код делает. В общем, простой мануал для тех, кто первый раз видит ваш проект.
Хардкодинг пути до файла
Частая история — у автора кода на домашнем компьютере файлик лежит в папке
Хорошая практика — делать путь относительным, в формате «файл
Если кому-то эта инфа актуальна сейчас, обязательно поделитесь этим постом, чтобы в мире стало больше хорошо оформленных проектов 🎶
📊 Simulative
Всем привет! На связи Андрон, основатель 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.Если кому-то эта инфа актуальна сейчас, обязательно поделитесь этим постом, чтобы в мире стало больше хорошо оформленных проектов 🎶
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19🔥8👍3 3
Практическое руководство по тестированию своего дашборда
Вы создали дашборд — подключили данные, сделали красивые графики работающие фильтры. Но как быть уверенным, что в нём нет ошибок, им удобно пользоваться, а под нагрузкой он не упадёт?
Часто проблемы всплывают уже после сдачи работы, когда дашборд попадает к конечным пользователям. Чтобы этого не случилось, нужна системная проверка.
Мы подготовили для вас методичку «Типы тестирования дашбордов» от Анастасии Кузнецовой, эксперта по BI и визуализации данных и автора тренинга «Осмысленные дашборды».
Что внутри:
✅ Как оценить, понятен ли дашборд с первого взгляда по «правилу пяти секунд».
✅ Основные типы тестирования: UX-тестирование, тестирование данных, фильтров и параметров — разбор частых ошибок и проверка всех комбинаций.
✅ Как убедиться, что дашборд выдержит большие данные и много пользователей.
✅ Готовый чек-лист для быстрой пошаговой проверки любого дашборда.
Зачем это читать?
🔹 Научитесь системно проверять дашборды.
🔹 Узнаете, как находить и устранять ошибки в данных и логике до того, как их увидит бизнес.
🔹 Сэкономите часы на отладке и получите уверенность в качестве своего продукта.
Не оставляйте качество ваших дашбордов на волю случая. Берите готовую методику и внедряйте её в свои проекты!
🧡 Получить материал
📊 Simulative
Вы создали дашборд — подключили данные, сделали красивые графики работающие фильтры. Но как быть уверенным, что в нём нет ошибок, им удобно пользоваться, а под нагрузкой он не упадёт?
Часто проблемы всплывают уже после сдачи работы, когда дашборд попадает к конечным пользователям. Чтобы этого не случилось, нужна системная проверка.
Мы подготовили для вас методичку «Типы тестирования дашбордов» от Анастасии Кузнецовой, эксперта по BI и визуализации данных и автора тренинга «Осмысленные дашборды».
Что внутри:
Зачем это читать?
🔹 Научитесь системно проверять дашборды.
🔹 Узнаете, как находить и устранять ошибки в данных и логике до того, как их увидит бизнес.
🔹 Сэкономите часы на отладке и получите уверенность в качестве своего продукта.
Не оставляйте качество ваших дашбордов на волю случая. Берите готовую методику и внедряйте её в свои проекты!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥2 2
Вебинары этой недели
Ждём вас на первых вебинарах в этом году! Разбираем тестовые задания на аналитика и решаем, когда использовать Excel, а где SQL и Python🧡
Регистрируйтесь и добавляйте события к себе в календарь, чтобы не забыть!
📊 Simulative
Ждём вас на первых вебинарах в этом году! Разбираем тестовые задания на аналитика и решаем, когда использовать Excel, а где SQL и Python
#️⃣ 13 января, 19:00 МСК — «Разбираем тестовое на аналитика данных в Lamoda»
На вебинаре решим реальное тестовое аналитика: разберём структуру заказов и позиций, посчитаем нужные метрики и увидим, как к таким задачам подходит практикующий аналитик. За разбор отвечает Павел Беляев — тимлид команды дата‑аналитиков в Яндекс eLama.➡️ Зарегистрироваться на вебинар
#️⃣ 14 января, 19:00 МСК — «Когда Excel недостаточно: 5 бизнес-кейсов, в которых вам пора перейти на SQL и Python»
Разберём на коротких кейсах из практики, когда таблички уже не справляются, а пара простых скриптов на Python и запросов на SQL экономят часы рутины, помогают строить финансовые модели и выглядеть сильнее на рынке труда. Вебинар проведёт Вугар Дамиров, Data Analyst Team Lead: он каждый день решает бизнес‑задачи с помощью SQL, Python и BI.➡️ Зарегистрироваться на вебинар
Регистрируйтесь и добавляйте события к себе в календарь, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥2 2
🗣 Задайте вопрос BI-эксперту
Пробуем новый формат взаимодействия с нашими экспертами и менторами — Q&A-сессию. И первый наш эксперт — Анастасия Кузнецова, автор тренинга «Осмысленные дашборды» и специалист в области BI и визуализации данных!
Она создала более 300 графиков и дашбордов и обучила более 3000 специалистов из Авито, Сбербанка, Яндекса и Циана.
Не упустите шанс получить совет от топового эксперта!
✍️ Задать вопрос
📊 Simulative
Пробуем новый формат взаимодействия с нашими экспертами и менторами — Q&A-сессию. И первый наш эксперт — Анастасия Кузнецова, автор тренинга «Осмысленные дашборды» и специалист в области BI и визуализации данных!
Она создала более 300 графиков и дашбордов и обучила более 3000 специалистов из Авито, Сбербанка, Яндекса и Циана.
Если у вас есть вопросы по BI-инструментам, визуализации или карьере в аналитике, да и вообще любые — самое время его задать! 15 января Настя выберет самые интересные вопросы и разберёт их здесь, в канале @simulative_official.
Не упустите шанс получить совет от топового эксперта!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥4 3
Simulative
Вебинар: решаем тестовое задание в Lamoda Приглашаем на первый вебинар этого года! Вместе с Павлом Беляевым, тимлидом команды дата-аналитиков в Яндекс eLama, решим реальное тестовое аналитика из Lamoda: разберём структуру заказов и позиций, посчитаем нужные…
Присоединяйтесь сегодня в 19:00 по МСК к нашему вебинару!
Павел Беляев, тимлид дата-аналитиков в Яндекс eLama, поделится своим решением тестового задания в Lamoda.
На примере реального тестового вы сможете «заглянуть в голову» нанимающему аналитику, разобрать живые кейсы и понять, как отвечать растущим требованиям рынка, не утопая в абстрактной теории.
➡️ Зарегистрироваться
📊 Simulative
Павел Беляев, тимлид дата-аналитиков в Яндекс eLama, поделится своим решением тестового задания в Lamoda.
На примере реального тестового вы сможете «заглянуть в голову» нанимающему аналитику, разобрать живые кейсы и понять, как отвечать растущим требованиям рынка, не утопая в абстрактной теории.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥3 2
5 ошибок новичков в SQL
Привет, будущие аналитики! С вами Павел Беляев, ментор курса «Аналитик данных» и ведущий канала Тимлидское об аналитике 👋🏻
Хочу привести несколько ошибок начинающих в SQL, которые наблюдал в своей практике. Предупреждён — значит вооружён!
1️⃣ JOIN вместо LEFT JOIN
Положим, есть таблица с юзерами
Так? Нет! В этом запросе мы увидим не всех пользователей, а лишь тех, у которых были транзакции.
2️⃣ BETWEEN и формат даты
Чтобы вытащить данные временного ряда из определённого интервала, часто прибегают к
Оператор
В нашем запросе
Правильный вариант — привести поле
3️⃣ Пересечения условий в CASE WHEN ... END
Рассмотрим запрос, сегментирующий пользователей по их суммарному обороту:
К какому сегменту отнесётся пользователь с оборотом 150? Исходя из кода — к
Следует чётко определить границы сегментов и выставить строгое неравенство там, где нужно:
4️⃣ Проверка на NULL в условиях
При составлении любых фильтрующих условий (
Если мы хотим дополнить запрос из первого примера условием для выборки только пользователей без транзакций и добавим в конце:
мы получим совсем не то, так как в таблице с транзакциями нет строк для пользователей без транзакций. Правильней указывать:
5️⃣ NULL в условиях объединения
Если же вы джойните таблицы по полям, которые могут принимать пустые значения:
то имейте в виду, что
Для таких случаев следует полю для соединения назначить какое-то значение с помощью функции
Ставьте реакции, если было полезно!
📊 Simulative
Привет, будущие аналитики! С вами Павел Беляев, ментор курса «Аналитик данных» и ведущий канала Тимлидское об аналитике 👋🏻
Хочу привести несколько ошибок начинающих в SQL, которые наблюдал в своей практике. Предупреждён — значит вооружён!
Положим, есть таблица с юзерами
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
Так? Нет! В этом запросе мы увидим не всех пользователей, а лишь тех, у которых были транзакции.
Чтобы вытащить данные временного ряда из определённого интервала, часто прибегают к
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'
Рассмотрим запрос, сегментирующий пользователей по их суммарному обороту:
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'
При составлении любых фильтрующих условий (
WHERE, ON, HAVING и т. п.) следует помнить, что 0 и NULL — не одно и то же.Если мы хотим дополнить запрос из первого примера условием для выборки только пользователей без транзакций и добавим в конце:
WHERE money_sum = 0
мы получим совсем не то, так как в таблице с транзакциями нет строк для пользователей без транзакций. Правильней указывать:
WHERE money_sum IS 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
Ставьте реакции, если было полезно!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27❤9 7
Узнаем, как перейти из Excel в SQL и Python, через пару часов
Вместе с Вугаром Дамировым, Data Analyst Team Lead с 7‑летним опытом, расскажем бизнес-кейсы, где пригодится SQL вместо стандартного Excel.
Что вы получите от вебинара:
➖ Поймёте, когда Excel уже мешает работе: отчёты растут, таблички ломаются, автоматизации нет;
➖ Увидите на примерах, как SQL и Python забирают рутину: сами тянут данные, обновляют отчёты и ускоряют проверку гипотез;
➖ Разберётесь, какие базовые навыки SQL, Python и BI нужны, чтобы претендовать на роль fullstack-аналитика.
➡️ Зарегистрироваться
📊 Simulative
Вместе с Вугаром Дамировым, Data Analyst Team Lead с 7‑летним опытом, расскажем бизнес-кейсы, где пригодится SQL вместо стандартного Excel.
Что вы получите от вебинара:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥5 2
Simulative
🗣 Задайте вопрос BI-эксперту Пробуем новый формат взаимодействия с нашими экспертами и менторами — Q&A-сессию. И первый наш эксперт — Анастасия Кузнецова, автор тренинга «Осмысленные дашборды» и специалист в области BI и визуализации данных! Она создала…
Объявляем Q&A-сессию с Анастасией Кузнецовой!
Спасибо большое вам за вопросы, присланные в форму — Настя ознакомилась со всеми и готова ответить на самые интересные из них. В течение дня мы поделимся её ответами. Stay tuned!
📊 Simulative
Спасибо большое вам за вопросы, присланные в форму — Настя ознакомилась со всеми и готова ответить на самые интересные из них. В течение дня мы поделимся её ответами. Stay tuned!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤3 3
Вопрос:
1. Что должен уметь BI-аналитик сейчас, чтобы быть востребованным на рынке?
2. Насколько сейчас ценится красота/дизайн визуализации данных?
Вопрос:
Всё зависит от задачи. Супер-редко, когда нужны прям все категории — обычно мы можем сгруппировать основные в топ-5 и остальные положить в «другое». Если заказчик просит уместить всё, то стоит посмотреть, а как же с этим графиком работают и какие выводы пытаются получить. Часто такие графики просто дополнительно фильтруют и поэтому дефолтное состояние с кучей категорий не так пугает.
Из альтернативных способов визуализации:
— Хитмап + его можно скомбинировать с графиком динамики ровно над ним. Так можно будет посмотреть и общий тренд, и каждую категорию и её долю/значение отдельно;
— Разбить график на много маленьких. Это может быть small multiples (его ещё называют треллис-график) или таблица со спарклайнами — когда вы показываете столбиком общие значения по категории и рядом спарклайн с динамикой.
Собирала ещё решения для спагетти-графиков тут, часть подойдёт и для этого кейса.
Всегда мучает вопрос, что делать со stacked bar chart, где много категорий.
Понимаю, что лучше пытаться уместить самые популярные или придумать решения, где визуально видно необходимые данные, но есть кейсы, где заказчику необходимы все категории для отчётности.
Есть ли альтернативные способы визуализации для таких кейсов? Как правильно подобрать цвета, чтобы категории отличались, но это не выглядело паршиво?
Всё зависит от задачи. Супер-редко, когда нужны прям все категории — обычно мы можем сгруппировать основные в топ-5 и остальные положить в «другое». Если заказчик просит уместить всё, то стоит посмотреть, а как же с этим графиком работают и какие выводы пытаются получить. Часто такие графики просто дополнительно фильтруют и поэтому дефолтное состояние с кучей категорий не так пугает.
Из альтернативных способов визуализации:
— Хитмап + его можно скомбинировать с графиком динамики ровно над ним. Так можно будет посмотреть и общий тренд, и каждую категорию и её долю/значение отдельно;
— Разбить график на много маленьких. Это может быть small multiples (его ещё называют треллис-график) или таблица со спарклайнами — когда вы показываете столбиком общие значения по категории и рядом спарклайн с динамикой.
Собирала ещё решения для спагетти-графиков тут, часть подойдёт и для этого кейса.
❤6🔥3 2
Вопрос:
Очень хороший вопрос! Помогут разные техники user discovery, когда мы пытаемся самостоятельно «стать заказчиком» и попробовать понять с его стороны, что же нужно.
Тут всё равно не обойдётся совсем без участия заказчика — нужно будет в первую очередь понять, чем он занимается, в каких процессах участвует. После мы можем попробовать представить типичный день заказчика и сделать карту его аналитических потребностей и проблем.
Из фреймворков — это подходы JTBD (jobs to be done), user persona, user story. Это как представить себе, что вы запускаете новый продукт и пытаетесь найти нишу и product market fit — для кого же будет этот продукт и какие проблемы он будет решать.
Как понять, что хочет увидеть в дашборде заказчик, если он сам этого не понимает и не может объяснить?
Очень хороший вопрос! Помогут разные техники user discovery, когда мы пытаемся самостоятельно «стать заказчиком» и попробовать понять с его стороны, что же нужно.
Тут всё равно не обойдётся совсем без участия заказчика — нужно будет в первую очередь понять, чем он занимается, в каких процессах участвует. После мы можем попробовать представить типичный день заказчика и сделать карту его аналитических потребностей и проблем.
Из фреймворков — это подходы JTBD (jobs to be done), user persona, user story. Это как представить себе, что вы запускаете новый продукт и пытаетесь найти нишу и product market fit — для кого же будет этот продукт и какие проблемы он будет решать.
🔥7❤4 2