Сегодня поговорим о фильтрах в Apache Superset. Это важная тема, потому что фильтры помогают нам и нашим пользователям работать с данными более эффективно. К этому моменту мы уже умеем создавать подключения к базам, датасеты, графики и дашборды.
В Superset есть три основных типа фильтров:
- Фильтры на графиках (для исходных данных)
- Интерактивные фильтры на дашбордах (для пользователей)
- Drilldown (фильтры с детализацией)
Зачем нам нужны фильтры? Вот основные случаи:
- Когда нужно проанализировать только часть данных (например, продажи за определенный период)
- Для очистки данных (убрать некорректные значения)
- При высокой агрегации, когда надо отбросить ненужные данные
Давайте на практике разберем каждый тип фильтров.
Фильтры на графиках
Вернемся к нашей круговой диаграмме. В качестве dimension у нас была возрастная группа, а в метрике – сумма продаж.
Теперь добавим фильтр по возрасту. Например категории до "35-44" включительно:
Интерактивные фильтры на дашборде
Это фильтры, которыми пользуются конечные пользователи. Давайте добавим такой фильтр:
- Открываем дашборд
- Нажимаем на иконку воронки
- Выбираем "Add or Edit Filters"
- Настраиваем новый фильтр.Выберем числовой и укажем колонку total_revenue и выберем к каким графикам применять
Помимо всего, можно задать значение по умолчанию, добавить описание и настроить сортировку.
Drilldown фильтры
Это продвинутый способ фильтрации с детализацией. Например, если у нас есть круговая диаграмма с продажами по категориям, мы можем сделать drilldown по типу клиента.
Выводы
Сегодня мы разобрались с фильтрами в Apache Superset. Они помогают нам и пользователям работать с данными более эффективно. Для графиков лучше использовать постоянные фильтры, если данные всегда нужны в определенном разрезе. Интерактивные фильтры удобны, когда пользователям нужно самим исследовать данные. Drilldown особенно полезен для детального анализа конкретных показателей.
Фильтры делают наши дашборды более гибкими и полезными. Пользователи могут сами исследовать данные, не обращаясь каждый раз к аналитикам за новыми разрезами информации.
Самостоятельная работа
В уроке «Подключение к данным» мы подключили базу flightsdb. В ней содержатся данные о авиаперевозках за два месяца — с 16 июля по 14 сентября 2017 года.
Схема базы данных выглядит так:
Задание № 1
В этот раз вам нужно узнать и проанализировать средние цены на билеты. Составьте запрос, который вычисляет среднюю стоимость билетов для каждого рейса и класса обслуживания. Запрос должен содержать аэропорт отправки и аэропорт прибытия. Представьте полученные данные в виде таблицы.
Нажмите сюда, чтобы увидеть подсказку
Чтобы получить необходимые данные, в SQL Lab нужно использовать следующий запрос:
SELECT
f.flight_no,
f.departure_airport,
f.arrival_airport,
tf.fare_conditions,
AVG(tf.amount) AS avg_price
FROM
flights AS f
INNER JOIN
ticket_flights AS tf
ON f.flight_id = tf.flight_id
GROUP BY
f.flight_no,
f.departure_airport,
f.arrival_airport,
tf.fare_conditions;
Далее нужно пройти такие шаги:
- В меню CREATE CHART выберите Table
- В пункте QUERY MODE выберите RAW RECORDS
- В подменю CUSTOMIZE уберите чек-бокс CELL BARS
- В поле COLUMNS выберите все полученные поля
В итоге получится такой дашборд:
Задание № 2
В предыдущем задании получилось слишком много данных. Теперь вам нужно отфильтровать данные по номерам рейсов, аэропорту вылета, аэропорту прилета и классу обслуживания.
Добавьте соответствующие фильтры для таблицы. Отфильтруйте данные так, чтобы указывалась средняя цена на билеты бизнес-класса, вылетающие из Ростова-на-Дону (код аэропорта — ROV).
Нажмите сюда, чтобы увидеть подсказку
Чтобы выполнить это задание, нужно:
- Добавить таблицу в дашборд
- Добавить фильтры по указанным полям
- Отфильтровать класс обслуживания Business и аэропорт вылета ROV
Результат будет выглядеть так:
Дополнительные материалы
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.