В этом уроке мы продолжим изучать визуализацию данных с помощью промышленных BI-инструментов и научимся создавать столбчатые диаграммы (барчарты). Это очень полезный инструмент, который часто используется для анализа данных в бизнесе.
Начнем с подключения к данным. Для работы нам нужна база PostgreSQL. Если вы уже работали с Superset раньше, у вас должно быть создано рабочее пространство и настроено подключение к базе.Зайдем в Settings, затем в разделе Data выберем Data Connections. Здесь должно быть активное подключение к PostgreSQL с двумя важными галочками: возможность работать в SQL Lab и выполнять DML операции (UPDATE, DELETE, INSERT).
На этот раз мы воспользуемся столбчатой диаграммой. Это отличный способ показать, как меняются наши данные. Представьте, что у вас есть продажи за разные дни – высота каждого столбика будет показывать, сколько именно продаж было в конкретный день. Можно сразу увидеть, в какие дни продажи были выше, а в какие ниже.
Теперь сделаем это в Superset. Для начала нам нужно создать датасет. Зайдем в раздел датасетов и выберем нашу базу PostgreSQL. В схеме public находим таблицу sales – она будет основой для нашей диаграммы. Но чаще всего просто одной таблицы недостаточно. Нам нужно собрать данные из разных таблиц, и тут нам поможет SQL Lab.
Для примера, визуализируем объемы продаж по продавцам:
SELECT
e.first_name || ' ' || e.last_name AS sales_person,
SUM(s.quantity) AS total_quantity,
SUM(p.price * s.quantity) AS total_revenue
FROM sales s
JOIN employees e ON s.sales_person_id = e.employee_id
JOIN products p ON s.product_id = p.product_id
GROUP BY e.employee_id, e.first_name, e.last_name
ORDER BY total_revenue DESC;
После выполнения запроса сохраняем его как датасет – это важно, потому что потом мы будем использовать его для создания диаграммы.
Теперь самое время создать нашу диаграмму. Выбираем тип графика – bar chart. Что нам нужно настроить:
- По горизонтали (X-axis) ставим имя продаца, sales_person – будем смотреть продажи по каждому продавцу
- По вертикали (Metrics) – сумму продаж, total_revenue
Полезная функция – row limit. Например, можно ограничить вывод только на 5 продавцов. Это удобно, когда у вас много данных и вы хотите сосредоточиться на самых важных.
Также с помощью кастомизации можно настроить цвета, добавить легенду, изменить подписи. Это особенно полезно, когда вы готовите отчет для руководства или презентацию для клиентов.
Когда диаграмма готова, обязательно сохраняем её. Уже с сохраненной можно быстро обновлять данные, менять настройки и делиться с коллегами.
На практике, когда вы будете работать с реальными данными (а их обычно гораздо больше, чем в нашем примере), диаграммы получаются еще информативнее. Вы сможете увидеть тренды, сезонность, аномалии в данных.
Выводы
Сегодня мы научились создавать столбчатые диаграммы в Superset. Это отличный инструмент для визуализации данных, который поможет вам лучше понимать ваши данные и принимать более обоснованные решения.
Самостоятельная работа
В уроке «Подключение к данным» мы подключили базу flightsdb. В ней содержатся данные о авиаперевозках за два месяца — с 16 июля по 14 сентября 2017 года.
Схема базы данных выглядит так:
Задание № 1
На этот раз вам нужно выяснить, сколько уникальных пассажиров прошли через высоконагруженные аэропорты страны за эти два месяца. Высоконагруженными считаются аэропорты, которые посетили более 10 тысяч уникальных пассажиров.
Нажмите сюда, чтобы увидеть подсказку
Чтобы получить необходимые данные, в SQL Lab нужно использовать следующий запрос:
SELECT
a.airport_code,
COUNT(DISTINCT t.passenger_id) AS passenger_count
FROM
airports_data AS a
LEFT JOIN
flights AS f
ON (
a.airport_code = f.departure_airport
OR a.airport_code = f.arrival_airport
)
LEFT JOIN
ticket_flights AS tf
ON f.flight_id = tf.flight_id
LEFT JOIN
tickets AS t
ON tf.ticket_no = t.ticket_no
GROUP BY
a.airport_code
HAVING
COUNT(DISTINCT t.passenger_id) > 10000;
В меню CREATE CHART выбираем Bar Chart и следующие данные для визуализации:
X-AXIS
—airport_code
METRICS
—passenger_count
В Волгограде появилась новая авиакомпания. Чтобы установить конкурентные цены на авиабилеты, она хочет изучить среднюю цену билетов на рейсы из Волгограда. Код аэропорта — VOG.
Изучите данные и представьте их в виде столбчатой диаграммой. Отдельными столбцами выведите цены на билеты эконом- и бизнес-класса.
Чтобы получить необходимые данные, в SQL Lab нужно использовать следующий запрос:
SELECT
arrival_airport,
fare_conditions,
AVG(amount) AS average_price
FROM
flights
INNER JOIN
ticket_flights
ON flights.flight_id = ticket_flights.flight_id
WHERE
departure_airport = 'VOG'
GROUP BY
arrival_airport,
fare_conditions;
В меню CREATE CHART выберите Bar Chart и следующие данные для визуализации:
X-AXIS
—arrival_airport
METRICS
—passenger_count
DIMENTIONS
—fare_conditions
Итоговая диаграмма будет выглядеть так:
Дополнительные материалы
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.