Визуализация в Superset

Теория: Вычисляемые поля и смешивание данных

В этом уроке мы поговорим о двух важных возможностях Apache Superset: вычисляемых полях (Calculated Fields) и объединении данных (Data Blending). Это можно представить как работу с данными в двух направлениях: *Calculated Fields расширяет данные "вертикально" – добавляет новые колонки *Data Blending расширяет "горизонтально" – добавляет новые данные

Если говорить на языке SQL, то Calculated Fields похож на ADD COLUMN, а Data Blending похож на UNION операции.

Calculated Fields

Начнем с вычисляемых полей. В Superset есть три основных типа вычислений:

  1. Арифметические действия
    • Сложение, вычитание, умножение
    • Возведение в степень
    • Любые математические операции
  2. Агрегация
    • Базовые функции: MIN, MAX, AVG, SUM, COUNT
    • Дополнительные: COUNT DISTINCT и другие
    • Можно комбинировать с условиями
  3. Условные вычисления Используем CASE для создания условной логики:
CASE
    WHEN условие THEN результат
    ELSE альтернатива
END as новая_колонка

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

SELECT
    c.age,
    (p.price * s.quantity) AS purchase_amount,
    c.customer_id,
    p.name AS product_name
FROM sales s
JOIN customers c ON s.customer_id = c.customer_id
JOIN products p ON s.product_id = p.product_id
ORDER BY c.age;

Schema

Добавим в Dimension колонку age. В Metrics добавим условие:

CASE
    WHEN age < 30 THEN 0
    ELSE SUM(purchase_amount)
END

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

Schema

Хотя Superset и позволяет делать сложные вычисления, лучше тяжелые расчеты выполнять на уровне ETL или базы данных. BI-инструмент лучше использовать для визуализации и легких трансформаций.

Data Blending

Теперь поговорим об объединении данных (Data Blending). Superset может работать с разными источниками:

  1. Файлы:
    • Excel, CSV, TXT
    • XML, JSON
    • Access
  2. Базы данных:
    • SQL Azure
    • MySQL
    • MS SQL Server
    • Oracle
    • Apache Hadoop
  3. Внешние сервисы:
    • CRM системы
    • 1C
    • Яндекс.Директ, Метрика
    • Google Analytics
    • Социальные сети
  4. Облачные хранилища:
    • Google Drive
    • Яндекс.Диск

Чтобы объединить данные из разных источников, нужно загрузить их в Superset и создать новый датасет. После этого можно использовать SQL Lab для объединения таблиц через JOIN или UNION.

Перед объединением убедитесь, что структура данных совместима. Лучше стандартизировать названия колонок и типы данных заранее. Также для сложных интеграций лучше использовать ETL-процессы.

И последнее: не пытайтесь делать слишком сложные трансформации в Superset. Этот инструмент отлично подходит для визуализации и анализа, но тяжелую обработку данных лучше делать на уровне базы данных или ETL-процессов.

Выводы

Сегодня мы познакомились с двумя важными возможностями Apache Superset: Calculated Fields и Data Blending. Эти инструменты помогают расширить возможности работы с данными и создать более сложные визуализации. Но помните, что лучше всего использовать Superset для визуализации и анализа, а сложные трансформации делать на уровне базы данных или ETL-процессов.

Рекомендуемые программы