Парные оси в FineBI
Заметка обращена всем пользователям Табло, строящим дашборды, переходящим на FineBI или готовящимся к такому переходу. Я расскажу о давней боли всех Таблошников, — ограничения Dual Axis и подходе к проблеме, предложенном китайскими товарищами.
В чем, собственно, проблема?
Если вы не работали с Табло и не сталкивались с этим ограничением. Коротко объясню: речь о задаче наложения графиков разных видов. Например линию поверх столбчатой диаграммы как на рисунке.
Тут все понятно и логично. Идея была предложена в 1985 году американцем Кливлендом:
- Оси графиков располагаются вдоль одной из сторон
- У простого графика 4 стороны и всего 2 оси
- Давайте расположим по оси на каждой!
Идея прижилась. Сегодня в 2022 каждый графический пакет позволяет рисовать графики с парными осями. Фактически это стандарт. Четыре оси одновременно не прижились. Если коротко — сложно для восприятия. Длинно, — можете начать с этой статьи.
Но вернемся к Табло. Там реализация носит название Dual Axis и позволяет разносить по разным осям два любых измерения. Все отлично до момента, когда возникает необходимость добавить третье измерение на одну из осей. Это все еще возможно сделать, но вам приходится задействовать механизм Meassure Names/Values. Вам приходится менять структуру ваших данных, хотя мы в Табло к этому привыкли, да? Настоящие проблемы возникают, когда число мер растет. Я уже не говорю о теоретической возможности добавить третий вид графика. Например точки. У точек же может быть общая ось с линией? Да что я вам рассказываю, — просто погуглите triple axis tableau.
В итоге люди смирились и научились с этим жить. Уверовали, что три вида визуализаций поверх друг друга это не феншуй. Придумали десятки способов обойти это и... костылей в Табло стало еще больше.
А что сложного?
На самом деле ничего. Я не думаю, что в Табло не знали как решить эту задачу, — они не знали как её решить, сохранив обратную совместимость. Табло — самый заслуженный продукт из большой тройки, развивается аж с 2005-го года и только в 2017-м году позволили себе на полшага отступить от обратной совместимости. На мой взгляд — в этом главная проблема: Табло слишком старые и многие вещи, заложенные в него по позапрошлом десятилетии оказались не удобны в наше время. Только вот отказаться от них оказались не способны сами Табло — слишком много дашбордов построено на старых версиях.
Хочешь сказать: у китайцев получилось?
Конечно, иначе бы этой заметки не было. Причем замечу: у них именно получилось. Получилось реализовать более удобный механизм наложения графиков, используя при этом Таблошный визуальный «алфавит».
Просто как дважды два: у вас может быть сколько угодно мер, и через меню «полки» вы выбираете режим отображения: Indicator Juxtaposed или Indicator Aggregation. При этом в настройках оси каждого измерения вы можете выбрать: его ось будет слева или справа? Оси с каждой из сторон между собой синхронизированы.
В этом моменте искушенные в Табло сразу спросят у меня: «А что, если я хочу два графика наложить (Aggregation), а три пустить рядом (Juxtaposed)?». На этот, несомненно справедливый, вопрос у меня есть два ответа:
- Сделайте два графика (три, пять), вы же не в Табло! В FineBI свитки вместо страниц, — таким образом у вас нет ограничений на пространство, занимаемое вашими визами. И, самое главное, — визы на дашборде в FineBI, в отличие от Табло, грузятся асинхронно! Т.е. если для Табло вопрос объединения визов был критичен с точки зрения производительности — в Fine нет!
- Если у вас именно тот случай на миллион, когда нужно объединить такие разнородные графики на одну ось — читайте следующий раздел
Для тех, кто не изжил Таблошную страсть к костылям workaround'ам
Что делаем мы, выходцы из Табло, когда открываем новый инструмент? Правильно — ищем нестандартные подходы! И одной из находок я спешу с вами поделиться. Все магия получается из комбинации двух особенностей FineBI:
- У нас есть автоматическое поле TargetName, аналог Meassure Names в Табло
- Мы можем менять названия «пилюль», причем произвольно и независимо от названия исходного поля
- TargetName смотрит на название пилюли
В результате найдите два отличия:
Вот такого вы в Табло точно не сможете сделать. Впрочем, встречаются и обратные ситуации: есть вещи из Табло, которые вы не сможете реализовать в FineBI. Читая эту заметку и следующие помните:
Вместо эпилога
И Табло и FineBI — разные инструменты. Пусть они решают одинаковые бизнес-задачи, но делают это по своему. То, что я показываю здесь — технические особенности реализации, никак не влияющие не бизнес-требования.
Если еще проще: Если кто-то на основании этой или другой статьи, этой или другой особенности будет заявлять вам, что инструмент плох или хорош — шлите его лесом.