1. Использовать одинаковые названия колонок в разных датасетах для использования единого фильтра

    В Apache SuperSet есть такая замечательная функция, как кросс-фильтрация - возможность фильтровать 2-более разных датасета в рамках одного дашборда по колонкам с одинаковым названием.

    2 разных виртуальные таблицы с одинаковым названием колонок = 1 фильтр вместо 2х.
    2 разных виртуальные таблицы с одинаковым названием колонок = 1 фильтр вместо 2х.

    На практике, часто начинающие BI-щики плодят множество лишних фильтров, чтобы покрыть все задействованные на дашборде визуализации хотя при грамотном и стандартизированном нейминге этого можно избежать и улучшить UX. Так пусть же amount везде (в идеале, на уровне источника данных) будет amount, а customer_id будет customer_id, а не customer_id и id_of_customer.

  2. Оптимизация производительности и асинхронная обработка

    Настройка CacheOut в Датасетах

    Для тяжёлых запросов и бэкенд-задач включите Celery-воркеры и Redis (или RabbitMQ) в качестве брокера и кеша. Это отделит задачу выполнения SQL от веб-сервера, сократит время отклика UI и предотвратит блокировку потоков Gunicorn.

    В секундах задаём сколько держать кеш перед тем, как обновить
    В секундах задаём сколько держать кеш перед тем, как обновить

    Активируйте кэширование на уровне SQL Lab или отдельных Chart, чтобы повторные запросы обрабатывались быстрее. Параметры кэширования можно задать в superset_config.py через ключи CACHE_DEFAULT_TIMEOUT и RESULTS_BACKEND.

  3. Настраиваем временной сдвиг для регулирования часового пояса

    Предположим, что ваш источник данных живёт по UTC-0, а бизнес и, следовательно бизнес, по UTC-4. Чтобы данные с типом Date не показывали искажённые данные следует устранить это расхождение через настройки конкретного датасета.

    Смещение времени настаиваем уже в часах
    Смещение времени настаиваем уже в часах

    Важно, SQL_lab использует часовой пояс сервера, где развёрнут BI SuperSet. При желание, можно настроить часовой пояс SQL_lab либо всего BI SuperSet через superset_config.py.

  4. Используем фильтр "Единицы измерения времени"

    1. BI SuperSet по мимо классического фильтра "Интервал Дат" имеет ещё "Единицы времени", который позволяет выбрать в чём мерить - года, дни, минуты. +1 полезная фича при анализе данных дашборда и -1 причина делать лишний визуал.

      При желание, можно добавить адекватный перевод этих единиц
      При желание, можно добавить адекватный перевод этих единиц
  5. В фильтрах есть переключатель WHERE|HAVING

    Мелочь, на которую не все обращают внимание, но при задаче фильтра в чарте можно выставлять не только WHERE, но HAVING, чтобы бывает полезно в работе. 

  6. Прописывать описание чартов и дашбордов 

    В настройках чарта, в описании пишем свой текст, сохраняем. 

    Просто пример, но описание может (должно) быть более информативным :)
    Просто пример, но описание может (должно) быть более информативным :)
    В дашборде это уже выглядит, как дополнительная строка в верху графика
    В дашборде это уже выглядит, как дополнительная строка в верху графика
  7. Отключаем // настраиваем content_security_policy

    По умолчанию, в дашбордах BI SuperSet, в блоке оформления Текст нельзя отобразить некий медиафайл из вне, но, если настроить content_security_policy в superset_config.py, то доступ не будет ограничен и объект появится. Тут уже всё зависит от вашей индивидуальной политики ИБ. Можно, как просто отключить csp полностью, так и задать ограничение для конкретного домена.

    TALISMAN_ENABLED = False TALISMAN_CONFIG = { "content_security_policy": None, "force_https": True }

    или же

    TALISMAN_CONFIG = {
    'content_security_policy': {
    'img-src': ["'self'", "data:", "
    https://*.example.com"], # Разрешить определенные домены
    },}

  8. Пользуемся активнее Custom Metrics и Custom columns, а не делаем 5 копий одного датасета.

    • Metrics (Метрики) представляют собой агрегированные выражения, например SUM(sales) или AVG(price)

    • Custom Columns (Пользовательские столбцы) Это вычисляемые поля, добавляемые к таблице на уровне источника данных. Используются для расширения набора колонок, например col1 + col2 или SUM(CASE WHEN status = 'completed' THEN amount ELSE 0 END) . Могут быть использованы в Group By, фильтрах и визуализациях. Не могут быть использованы внутри Metrics, так как Superset не разворачивает их определения в SQL-запросе

    Бывает так, что нужно на основе одних и тех же данных (одного датасета) построить ряд визуализаций в разных единицах измерения или за разные периоды. Зачем же делать копии датасета, когда можно обойтись одним? ... Просто используем Metrics и Custom_columns. Например, хотим видеть какую-то метрику в нескольких единицах измерения: шт, $, % от ...  Просто открываем вкладку  Custom Columns и задаём логическое условие и как подходящие под условие значения (результат * на курс $).

    Или мы хотим иметь ср.кол-во заказов на день, то переходим в Metric и создаём новую метрику CAST(COUNT(DISTINCT "order_id") AS DECIMAL(10, 2))/'30' 

    Ещё есть мощная Jinja, но о ней уже в следующей части ... 

  9. Настраиваем сертификацию и описание дашбордов.

    Сертификация в Apache Superset — это способ отметить определённые объекты (например, дашборды, чарты, датасеты, метрики) как проверенные и одобренные для использования внутри организации. Это бывает полезно, когда ваша организация не маленькая или количество объектов в BI перевалило за 100. 

    С Помощью процедуры сертификации можно отделить dev, stage, prod визуализации между собой и дать пользователям больше доверия к дашбордам. С помощью фичи можно наладить базовый процесс Контроля Качества Данных и отслеживать% «Проверенных дашбордов» и кто конкретно утвердил. Полезно на уровне ролей разделять доступ к «проверенным» и «непроверенным» объектам.

    Поэтому не стоит пренебрегать галочкой «Сертифицировано».

  10. Периодические «Субботники» дашбордов.

    У меня такие субботники проходят, как минимум раз в месяц и позволили посчитать первую версию Health Score. Помимо простого просмотра всего, чтобы было сделано мной или BI‑специалистами делается следующее:

    Объекту (дашборду, датасету) начисляются «штрафные» баллы (чем больше тем «хуже здоровье») за:

     — скорость, медленные запросы и ошибки (либо сделано на скорую руку без витрин)
     — отсутствие владельца
     — невостребованность — кол‑во просмотров дашборда < 3 за последние 2 месяца
     — заброшенность — срок с последнего обновления
     — дубли

    Особое внимание если:

    • Критично важный объект

    • высокий MAU

    • используется топ-менеджментом

Жду ваших лайфхаков. Как вернусь из отпуска, то возьмусь за Часть №2. Секунда самопиара и моего личного проекта, где я публикую Data в картинках.

Комментарии (0)