Привет, Habr!
Меня зовут Остапенко Настя, я лидирую направление BI в компании Axenix. Год назад мы выпустили статью с большим обзором Российского рынка BI. На этот раз мы проведем сравнение трех популярных Open Source BI-платформ: Apache Superset, Metabase и относительно нового участника - Yandex DataLens, который совсем недавно стал доступен в качестве Open Source продукта.
Для начала давайте вспомним что такое Open Source-системы.
Как видно из названия, Open Source системы – системы с открытым исходным кодом. Такое ПО можно беспрепятственно просматривать, изменять и распространять. В отличие от проприетарного ПО, которое распространяется на коммерческих условиях и разрабатывается компанией-вендором, Open Source ПО имеет открытый исходный код и дорабатывается комьюнити контрибьюторов (специалисты – альтруисты, вносящие вклад в разработку и развитие продукта).
На практике, это означает, что Open Source ПО можно использовать без необходимости приобретения лицензий как для персонального, так и для коммерческого использования, что делает эти системы такими востребованными.
Кроме того, ПО с открытым исходным кодом можно доработать, адаптировать под свои уникальные требования или даже взять за основу для создания нового коммерческого продукта.
Эти факторы делают Open Source BI-платформы особенно привлекательными для многих компаний.
Поскольку некоторые Open Source платформы кроме бесплатно распространяемых версий имеют более продвинутые платные версии, то в целях более честного сравнения мы будем сравнивать именно функционал бесплатных версий выбранных платформ.
Мы разделили критерии сравнения BI-платформ на четыре основные группы. Первая группа фокусируется на настройках внешнего вида визуализаций и дашбордов, а также форматировании виджетов. Вторая группа охватывает функционал и удобство платформы по обработке данных. В третьей группе мы оценили возможности интерактивного взаимодействия с дашбордом. Наконец, четвертая группа посвящена различным дополнительным возможностям, включая встроенные опции по настройке безопасности, доступа и встраивания дашбордов.
Давайте подробнее посмотрим на эти критерии.
Для облегчения восприятия статьи, некоторые термины, выделенные подобным образом имеют пояснение, которое можно увидеть, нажав на выделенную область.
Группа 1 - Настройки внешнего вида визуализаций и дашбордов
В этой группе мы оценим возможности по созданию и форматированию дашбордов, количество доступных из коробки визуализаций.
Наличие часто используемых визуализаций
Metabase и Superset «из коробки» имеют полный набор стандартных визуализаций, включая: bar chart, line chart, pie chart, kpi card, area chart, combo chart, table, pivot table, slicer, scatter plot и др.
В Open Source версии DataLens технически доступны все те же чарты, что и в Cloud версии (15 стандартных чартов), однако чарты от Highcharts можно использовать для коммерческой разработки только при наличии соответствующей лицензии. Без лицензии список доступных чартов сильно сокращается с 15 до 6.
Наличие редких визуализаций
Здесь мы видим явное преимущество у Apache Superset с его огромной библиотекой визуализаций Apache E-charts. На момент выхода статьи в Apache Superset доступно 50 визуализаций, против порядка 20 у Metabase и 6 у Open Source DataLens.
No-code гибкая настройка внешнего вида виджетов и дашбордов
Возможности форматирования и no-code настройки внешнего вида визуализаций ограничен во всех трех платформах. Количество настроек форматирования не превышает 10-15 штук. Чаще всего доступны базовые настройки отображения оси, формата отображения чисел, настройка цветовой схемы. Более детальные настройки, например размер и цвет шрифта отображаемых данных, расположение оси, фон, граница, всплывающие окна и др. практически везде отсутствуют. У Apache Superset есть возможность ввода CSS-кода для более детальной настройки внешнего вида дашборда. Это позволяет значительно расширить возможности по верстке и настройке внешнего вида дашборда, однако требует от BI-разработчика дополнительных навыков.
Условное форматирование
Полнофункциональное условное форматирование доступно только в Yandex DataLens, в то время как в Superset и Metabase доступно с ограничениями. Во всех платформах есть функционал по заданию условного форматирования для таблиц, при этом в Superset отсутствуют возможности по управлению цветом кроме выбора цветовой палитры (даже не определенного цвета) для большинства чартов.
В Metabase возможности условного форматирования лимитированы выбором определенного цвета для категории/показателя.
В DataLens можно настраивать условное форматирование как фиксированно для выбранной категории, так и с помощью формулы с возможностью использования любых полей датасета. Выбор дискретных цветов для условного форматирования не доступен, только градиент с 2 или 3 точками из доступных палитр градиентов. В случае, если количество вариантов окраски в условном форматировании не превышает 3 шт, то каждому из вариантов можно назначить точку градиента, и это не вызовет проблемы. Однако, если количество вариантов окраски больше 3, то дискретно задать цвет форматирования не удастся.
Многостраничные дашборды
Во всех 3 платформах есть возможность создания многостраничного дашборда с помощью табов/вкладок. При этом в DataLens выбранные значения фильтров не сохраняются при переходе между вкладками, таким образом пока отсутствует механизм сквозной фильтрации.
Группа 2 - Работа с данными
Здесь мы рассмотрим возможности BI-платформ по обработке и обновлению данных, объединения данных в единую модель, настройке связей между таблицами.
Модель данных
В Superset полностью отсутствует функционал создания модели данных. При необходимости объединения таблиц можно написать SQL-запрос к БД со всеми необходимыми трансформациями.
В Metabase есть встроенный графический редактор SQL, который позволяет с помощью No-code интерфейса создать простые соединения, трансформации и агрегации данных, которые в дальнейшем трансформируются в SQL-запрос, который можно просмотреть и, по необходимости, отредактировать.
В DataLens есть графический интерфейс модели данных (=датасета), напоминающий аналогичный в Tableau. При создании датасета можно добавить фильтры, создать новые вычисляемые поля, добавить параметры. Кроме того, в DataLens есть любопытный функционал алиасов, который позволяет соединять и настраивать фильтрацию чартов и селекторов (=фильтров) из разных датасетов. Алиасы также позволяют определить направление фильтрации между виджетами. Важно не путать данный функционал с кросс-фильтрацией, поскольку чарты не могут влиять друг на друга. Связь через алиасы может быть настроена для: селектор-селектор, селектор-чарт.
Стоит также отметить, что созданные в Metabase и Superset связи соединяют данные на "физическом" уровне. То есть в результате такой связки появляется 1 готовая таблица. Возможности создания "виртуальных" связей как в Tableau/Power BI в данных BI-платформах нет.
Удобная ide для работы с данными
У Superset нет встроенного графического интерфейса для соединения данных, однако в нем есть очень удобный модуль для написания SQL-запросов, который называется SQL Lab. В SQL Lab можно создавать разные вкладки для работы с данными, просматривать историю запросов, сохранять созданные скрипты, делиться ссылкой на скрипт, копировать результат скрипта в буфер обмена, фильтровать результат SQL-запроса и др.
У Metabase и DataLens есть окно ввода SQL-запроса, но функционал редактора запросов ограничен.
Live - режим работы с данными
У всех исследуемых платформ доступен режим живого подключения к БД. Данные могут кэшироваться на стороне BI-платформы, но будут обновляться при изменении выбора фильтра, интерактивного взаимодействия с виджетом, а также при обновлении пользователем страницы с дашбордов. При live-режиме данные не забираются из БД в том виде, в каком они хранятся в БД. Вместо этого, для каждого виджета генерируется собственный SQL-запрос со всеми агрегациями и фильтрами и направляется в БД. В случае, если объем данных превышает 1 млн строк, лучшим решением будет использование колоночной СУБД для ускорения расчета агрегатов в live-режиме.
In-memory - режим работы с данными
Ни у одной из трех платформ нет встроенной возможности работать с данными на стороне платформы. Ранее у Yandex DataLens был доступен функционал по материализации данных, но от этого функционала в итоге отказались, и он более не доступен.
Собственный синтаксис для расчетов
В то время как для создания расчетных показателей в Superset и Metabase необходимо использовать синтаксис SQL той БД, которая выступает в качестве источника для вашего дашборда, у Yandex DataLens есть собственный синтаксис с понятным и удобным справочником формул. Наличие собственного языка вычислений позволяет писать универсальные формулы к разным БД, не переживая о разнице в диалектах SQL, которые могут стать проблемой при подмене источника на другую БД.
Группа 3 – Интерактивное взаимодействие с дашбордом
В этой группе мы оценим возможности по интерактивному взаимодействию пользователя с дашбордом, которые предоставляет каждая из платформ. Без возможности взаимодействия с данными, любой дашборд становятся плоской статичной картинкой. Такой дашборд несёт в себе низкую ценность из-за отсутствия возможности углубиться в аналитику и исследование данных.
Экспорт данных из дашборда
В Metabase доступен встроенный функционал по экспорту данных в Excel, CSV, JSON, PNG.
В Superset есть возможность экспортировать данные Excel, CSV, JPEG.
В Open Source версии DataLens из популярных форматов экспорта доступен только CSV.
Drill Down
В Superset функционал Drill Down присутствует только в сводной таблице, в других визуализациях этот функционал недоступен. При этом какая-либо настройка иерархий или параметров перехода недоступна.
В DataLens есть возможность создания иерархий для измерений и есть возможность использования созданных иерархий в визуализациях для осуществления Drill-Down перехода между уровнями иерархий. Также с помощью параметров можно дать пользователю возможность выбирать и изменять измерение, по которому строится чарт для использования как для перехода между уровнями детализации так и для более глубокого изучения данных.
В Metabase функционала Drill Down напрямую нет, однако доступны другие интерактивные функции, по сути заменяющие Drill Down. Так, в Metabase есть возможность добавить переход на custom destination (которым может выступать другой чарт) при нажатии на чарт в дашборде. Таким образом можно заготовить дополнительный чарт с другим уровнем детализации, на который Metabase будет перенаправлять пользователя при нажатии на чарт в дашборде.Кроме того в Metabase доступен Action "break out by a", который позволяет изменить срез представления данных, заменив используемое измерение на другое поле из датасета. Такой функционал существенно расширяет возможности анализа для бизнес- пользователей
Drill Through
В Superset функционал Drill Through доступен при активации соответствующего флага в конфигурационном файле. Для просмотра детальных данных, на основе которых был собран чарт необходимо нажать правой кнопкой мыши на чарт, после чего выбрать функцию "Drill to Detail".
В Metabase доступно несколько вариантов Drill Through. Так, в Metabase можно перейти на другой чарт, настроив в качестве действия по клику - переход к "custom destination". Кроме того, с помощью действия "View these <records>" можно провалиться в таблицу с детальными данными, на которых был построен данный виджет.
В DataLens можно настроить переход из чарта на другой дашборд, настроив генерацию параметризованной URL-ссылки, в которую в качестве параметров будет передаваться контекст чарта и фильтров дашборда. Пример реализации.
Кросс-фильтрация
Функционал кросс-фильтрации Superset доступен для большинства виджетов (функционал активируется при добавления соответствующего флага в конфигурационный файл).
В DataLens кросс-фильтрация не доступна.
В Metabase кросс-фильтрацию можно настроить практически для любых виджетов.Настроить кросс-фильтрацию можно в меню настройки действия по нажатию. Таким образом нельзя настроить одновременно и кросс-фильтрацию и переход в custom destination или переход в меню с интерактивными действиями.
Передача параметров через URL
Во всех рассматриваемых BI-платформах есть возможность передачи и захвата значений параметров через URL в фильтры дашборда.
В Superset есть два варианта параметризации URL-ссылки:
Значения параметров фильтров передаются в нативные фильтры (встроенную боковую панель фильтрации Superset). Синтаксис передачи значений в нативный фильтр довольно непрост, при формировании такого URL требуется глубоко разобраться в атрибутном составе параметризуемой ссылки.
Передача параметров URL напрямую в SQL-запрос с помощью Python-шаблонизатора Jinja. В этом случае шаблон формата ввода значения параметра настраивается любым удобным способом с помощью jinja
Страшилка
Параметризация расчетов
В каждой рассматриваемой платформе есть возможность параметризации расчетов. Созданные параметры можно добавить на дашборд в виде виджета с выбором из списка или пользовательским вводом, после чего можно использованное введенные пользователем значения при проведении расчетов на стороне платформы и/или в SQL-запросе.
Группа 4 - Администрирование и безопасность
В данной группе критериев мы анализируем возможности BI-платформ по работе со стандартами аутентификации и авторизации пользователей, а также настройке ролевой модели и возможности встраивания дашбордов в сторонние сервисы.
SSO - авторизация
В Metabase и Superset доступна доменная авторизация пользователей через LDAP.
Однако, при встраивании дашборда в сторонние веб-сервисы (embedding), авторизация через SSO становится недоступна в Open Source версии Metabase.
В Open Source версии DataLens авторизация пользователей и мультиюзерность пока не доступна. По заявлению вендора, в коде Open Source версии продукта были заранее заложены "точки расширения" для будущей доработки функционала авторизации.
Настройка ролевой модели доступа, RLS
В Superset можно настраивать доступ пользователей на уровне строк (RLS).
В бесплатной версии Metabase такой функционал не доступен.
В Open Source версии DataLens мультиюзерность и, как следствие, настройка ролевой модели доступа пока не доступна.
Embedding (Встраивание дашбордов в сторонние веб-сервисы)
Во всех рассматриваемых BI-платформах есть возможность встраивания дашбордов в сторонние сервисы.
В Metabase функционал интерактивного взаимодействия с дашбордом не работает при встраивании в сторонние сервисы при использовании бесплатной версии Metabase.
В DataLens нельзя встроить дашборд в сторонний защищенный сервис, поскольку доступ к опубликованным данным не ограничен. Таким образом, встроить дашборд DataLens в сторонний веб-сервис можно, но нужно быть готовым к тому, что данные будут доступны всем пользователя без предварительной авторизации.
Выводы
Каждая из рассмотренных в этой статье BI-платформ обладает своими особенностями и ограничениями, которые в некоторых случаях могут быть критически важными при выборе целевой BI-платформы.
Так, Superset может подойти компаниям, которые планируют встраивать дашборды в сторонние web-сервисы и хотят гибко управлять пользовательским доступом и ролевой моделью.
Metabase, в свою очередь, больше подойдет компаниям, которые хотят глубоко исследовать свои данные с разных сторон и на разном уровне детализации, используя интерактивный функционал платформы на максимум.
Yandex DataLens будет интересен тем компаниям, которые ищут простой и удобный Self-Service инструмент для пользователей, которым не обязательно быть ИТ-специалистами и знать SQL, CSS для работы со своими данными. Отсутствие ролевой модели доступа и мультиюзерности на данный момент ограничивает коммерческое применение Open Source версии платформы. Однако начать работу с DataLens можно с бесплатной Cloud-версии, а после доработки Open Source версии в части аутентификации - вернуться к Open Source DataLens.
Подводя итог, можно смело сказать, что Open Source BI-платформы предоставляют отличные возможности для тех, хочет минимизировать затраты при внедрении корпоративной BI-платформы и при этом готовы принять ограничения таких систем.
Благодаря интуитивно понятному интерфейсу и свободному распространению, рассмотренные платформы могут использоваться для Self Service аналитики в компаниях с большим количеством аналитиков и бизнес-пользователей, которые ищут удобный способ исследования своих данных.
Комментарии (19)
mixsture
26.11.2023 13:46+2Yandex DataLens будет интересен тем компаниям, которые ищут простой и удобный Self-Service инструмент для широкой аудитории пользователей
В Open Source версии DataLens мультиюзерность и, как следствие, настройка ролевой модели доступа пока не доступна.
Как это "подходит компаниям", когда нет мнопользовательского доступа и разделения видимости данных? По-моему, совсем не подходит.
anastapenko Автор
26.11.2023 13:46+1Формулировка противоречивая, согласна. На данный момент "из коробки" Open-Source версию DataLens нельзя использовать для корпоративного применения. Но та же Cloud версия DataLens имеет и мультиюзерность и настройку ролевой модели доступа. И она также бесплатна. Единcтвенное отличие - нельзя развернуть On-Premise, только в облаке.
Второй вариант - можно поискать в чате DataLens, на вкладке Open Source - там умельцы находят способы настроить авторизацию, например через nginx.
Ну и третий вариант - насколько я знаю, настройка авторизации и ролей - первый приоритет у команды DataLens, как они сами пишут в анонсе выхода в Open Source - они заложили в код некие "точки расширения", чтобы в будущем было проще доработать и добавить эту автоматизацию. Будем надеяться, что начале 24 года появится.mixsture
26.11.2023 13:46Но та же Cloud версия DataLens имеет и мультиюзерность и настройку ролевой модели доступа. И она также бесплатна. Единcтвенное отличие - нельзя развернуть On-Premise, только в облаке.
Но тема статьи об опенсорс решениях, а предложенное решение выходит за рамки. В том смысле, что врятли возможно посмотреть исходники, работающие непосредственно в облаке, нельзя их отлаживать, нельзя изменять.
там умельцы находят способы настроить авторизацию, например через nginx
Не сомневаюсь, что это возможно, но и толку от такого не много. Это скорее от безысходности:
во-первых, очень велик шанс оставить дырку безопасности при попытке описать все возможные виды url (а уж если пользователь сам может короткие url генерить - вообще кошмар)
во-вторых, не всегда из url очевидно, к каким объектам будет доступ => сложно их переложить на правила авторизацииanastapenko Автор
26.11.2023 13:46Согласна с вами. Отсутствие такого критичного функционала на данный момент делает невозможным коммерческое использование платформы.
Holistic
26.11.2023 13:46+1Путем перебора, проб и ошибок, несколько большего количества BI платформ, наша компания остановила свой выбор, именно на Superset. Критерии выбора были идентичны тем, что описаны в материале. Единственное, что выводы при оценке критериев были более категоричны и безапелляционны, но это объяснимо разными целями. Ограниченный набор инструментов для визуализации, отсутствие настройки распределенного доступа, лишает Data Lens и Metabase шансов на использование.
Было бы очень интересно провести нагрузочное тестирование на одном наборе данных с одинаковыми отчётами вышеперечисленных платформ.
anastapenko Автор
26.11.2023 13:46+1Учитывая, что у всех 3 систем есть только 1 способ взаимодействия с данными - live-подключение к БД (нет импорта и работы с данными на внутреннем движке системы), то предполагаю, что результаты нагрузочного тестирования будут максимально похожи с различием, разве что, в оптимальности генерации динамического SQL. Но это может внести какой-то вклад только на очень сложных запросах. А для большинства среднестатистических аггрегаций и вычислений, при условии использования одинаковой БД, производительность должна быть примерно одинаковая.
sheolesya
26.11.2023 13:46Настя, а Grafana не рассматривали, а почему?
anastapenko Автор
26.11.2023 13:46Grafana - это система немного другого класса. Её и не позиционируют как Self Service BI-платформу. Ее основное применение - ИТ-мониторинг. Да, технически, дашборды тоже можно делать, но чаще всего для создания дашбордов используют другие системы - как раз те, что в обзоре).
Кроме того, так как Grafana и платформы из обзора ориентированы на разные задачи, то и критерии сравнения для них будут отличаться. К примеру, для того, чтобы добавить интерактивный функционал, описанный в статье, в Графане скорее всего придется дописывать плагины или делать кастомные доработки на JSsheolesya
26.11.2023 13:46+1Спасибо за ответ) По-моему субъективному мнению, то что Графана исключительно для ИТ-мониторинга, больше стереотип.
Интерактивность, например, добавляется с помощью уже допиленных плагинов и простых SQL запросов, в случае использования Postgres. Инструмент возможно немного сложнее, однако дает много возможностей для визуализаций.
anastapenko Автор
26.11.2023 13:46Интересно, спасибо за инфо) Похоже стоит более подробно изучить функционал Grafana)
manyakRus
26.11.2023 13:46Используем Superset, работает хорошо. На одной странице 6 графиков, с общим фильтром на всех. Сделал 2 разных запроса на все 6 графиков, т.е. 1 запрос sql отображает 5 графиков в разном виде.
Надо было написать в конце вывод: Superset лучше всех :-)anastapenko Автор
26.11.2023 13:46А вы сравнивали Superset с другими платными российскими платформами? По каким критериям выбирали платформу?
wirecrm
26.11.2023 13:46Был бы интересен обзор коммерческих BI систем
anastapenko Автор
26.11.2023 13:46Мы как раз год назад такой обзор выпускали. Конечно, за год ситуация немного изменилась, но не кардинально. Так что обзор еще актуален) + по возможности стараемся обновлять обзор в течение года
wirecrm
26.11.2023 13:46Был опыт работы с Gooddata, но сейчас насколько вижу по трафику ситуация у них не сильно изменилась и не в лучшую сторону
mixsture
26.11.2023 13:46+1Я бы еще добавил в статью, что в DataLens крайне ограниченный набор коннекторов. Это может стать неприятным сюрпризом (например, для малый организаций будет важен импорт из csv).
anastapenko Автор
26.11.2023 13:46Да, количество коннекторов расстраивает. Но надеемся на лучшее. Все же DataLens вышел в OpenSource только месяц назад, нужно дать ему время хотя бы дойти до уровня функционала Cloud версии)
Ivnika
Вы начинаете с объяснения что такое "Open Source", может лучше было начать с "BI"? А в целом спасибо, было интересно!
anastapenko Автор
Хорошая идея) добавлю в всплывающую подсказку пояснение термина BI