Сравнение Open Source BI-платформ

Привет, 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-платформ на четыре основные группы. Первая группа фокусируется на настройках внешнего вида визуализаций и дашбордов, а также форматировании виджетов. Вторая группа охватывает функционал и удобство платформы по обработке данных. В третьей группе мы оценили возможности интерактивного взаимодействия с дашбордом. Наконец, четвертая группа посвящена различным дополнительным возможностям, включая встроенные опции по настройке безопасности, доступа и встраивания дашбордов.

431e234222066d845f5881b010bd06bb.png

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

Группа 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.

Чарты DataLens с и без лицензии HighCharts

Чарты DataLens с и без лицензии HighCharts

Наличие редких визуализаций

Здесь мы видим явное преимущество у Apache Superset с его огромной библиотекой визуализаций Apache E-charts. На момент выхода статьи в Apache Superset доступно 50 визуализаций, против порядка 20 у Metabase и 6 у Open Source DataLens.

Доступные

Доступные «из коробки» визуализации Superset

No-code гибкая настройка внешнего вида виджетов и дашбордов

Возможности форматирования и no-code настройки внешнего вида визуализаций ограничен во всех трех платформах. Количество настроек форматирования не превышает 10–15 штук. Чаще всего доступны базовые настройки отображения оси, формата отображения чисел, настройка цветовой схемы. Более детальные настройки, например размер и цвет шрифта отображаемых данных, расположение оси, фон, граница, всплывающие окна и др. практически везде отсутствуют. У Apache Superset есть возможность ввода CSS-кода для более детальной настройки внешнего вида дашборда. Это позволяет значительно расширить возможности по верстке и настройке внешнего вида дашборда, однако требует от BI-разработчика дополнительных навыков.

Настройки форматирования в DataLens

Настройки форматирования в DataLens

Редактор CSS, встроенный в Superset

Редактор CSS, встроенный в Superset

Условное форматирование

Полнофункциональное условное форматирование доступно только в Yandex DataLens, в то время как в Superset и Metabase доступно с ограничениями. Во всех платформах есть функционал по заданию условного форматирования для таблиц, при этом в Superset отсутствуют возможности по управлению цветом кроме выбора цветовой палитры (даже не определенного цвета) для большинства чартов.
В Metabase возможности условного форматирования лимитированы выбором определенного цвета для категории/показателя.
В DataLens можно настраивать условное форматирование как фиксированно для выбранной категории, так и с помощью формулы с возможностью использования любых полей датасета. Выбор дискретных цветов для условного форматирования не доступен, только градиент с 2 или 3 точками из доступных палитр градиентов. В случае, если количество вариантов окраски в условном форматировании не превышает 3 шт, то каждому из вариантов можно назначить точку градиента, и это не вызовет проблемы. Однако, если количество вариантов окраски больше 3, то дискретно задать цвет форматирования не удастся.

Настройка цветов в Superset для Time Series Bar Chart

Настройка цветов в Superset для Time Series Bar Chart

Многостраничные дашборды
Во всех 3 платформах есть возможность создания многостраничного дашборда с помощью табов/вкладок. При этом в DataLens выбранные значения фильтров не сохраняются при переходе между вкладками, таким образом пока отсутствует механизм сквозной фильтрации.

Вкладки в Yandex DataLens

Вкладки в Yandex DataLens

Группа 2 — Работа с данными

Здесь мы рассмотрим возможности BI-платформ по обработке и обновлению данных, объединения данных в единую модель, настройке связей между таблицами.

Модель данных
В Superset полностью отсутствует функционал создания модели данных. При необходимости объединения таблиц можно написать SQL-запрос к БД со всеми необходимыми трансформациями.
В Metabase есть встроенный графический редактор SQL, который позволяет с помощью No-code интерфейса создать простые соединения, трансформации и агрегации данных, которые в дальнейшем трансформируются в SQL-запрос, который можно просмотреть и, по необходимости, отредактировать.
В DataLens есть графический интерфейс модели данных (=датасета), напоминающий аналогичный в Tableau. При создании датасета можно добавить фильтры, создать новые вычисляемые поля, добавить параметры. Кроме того, в DataLens есть любопытный функционал алиасов, который позволяет соединять и настраивать фильтрацию чартов и селекторов (=фильтров) из разных датасетов. Алиасы также позволяют определить направление фильтрации между виджетами. Важно не путать данный функционал с кросс-фильтрацией, поскольку чарты не могут влиять друг на друга. Связь через алиасы может быть настроена для: селектор-селектор, селектор-чарт.

Стоит также отметить, что созданные в Metabase и Superset связи соединяют данные на «физическом» уровне. То есть в результате такой связки появляется 1 готовая таблица. Возможности создания «виртуальных» связей как в Tableau/Power BI в данных BI-платформах нет.

Редактор модели данных Metabase

Редактор модели данных Metabase

Удобная ide для работы с данными
У Superset нет встроенного графического интерфейса для соединения данных, однако в нем есть очень удобный модуль для написания SQL-запросов, который называется SQL Lab. В SQL Lab можно создавать разные вкладки для работы с данными, просматривать историю запросов, сохранять созданные скрипты, делиться ссылкой на скрипт, копировать результат скрипта в буфер обмена, фильтровать результат SQL-запроса и др.

У Metabase и DataLens есть окно ввода SQL-запроса, но функционал редактора запросов ограничен.

e2dec45d0a171dd823798164216cbd78.png

Live — режим работы с данными
У всех исследуемых платформ доступен режим живого подключения к БД. Данные могут кэшироваться на стороне BI-платформы, но будут обновляться при изменении выбора фильтра, интерактивного взаимодействия с виджетом, а также при обновлении пользователем страницы с дашбордов. При live-режиме данные не забираются из БД в том виде, в каком они хранятся в БД. Вместо этого, для каждого виджета генерируется собственный SQL-запрос со всеми агрегациями и фильтрами и направляется в БД. В случае, если объем данных превышает 1 млн строк, лучшим решением будет использование колоночной СУБД для ускорения расчета агрегатов в live-режиме.

In-memory — режим работы с данными
Ни у одной из трех платформ нет встроенной возможности работать с данными на стороне платформы. Ранее у Yandex DataLens был доступен функционал по материализации данных, но от этого функционала в итоге отказались, и он более не доступен.

Собственный синтаксис для расчетов
В то время как для создания расчетных показателей в Superset и Metabase необходимо использовать синтаксис SQL той БД, которая выступает в качестве источника для вашего дашборда, у Yandex DataLens есть собственный синтаксис с понятным и удобным справочником формул. Наличие собственного языка вычислений позволяет писать универсальные формулы к разным БД, не переживая о разнице в диалектах SQL, которые могут стать проблемой при подмене источника на другую БД.

4ca2f535f450de58b791a549a0e23456.png

Группа 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 Down в DataLens

Drill Down в DataLens

Drill Through
В Superset функционал Drill Through доступен при активации соответствующего флага в конфигурационном файле. Для просмотра детальных данных, на основе которых был собран чарт необходимо нажать правой кнопкой мыши на чарт, после чего выбрать функцию «Drill to Detail».
В Metabase доступно несколько вариантов Drill Through. Так, в Metabase можно перейти на другой чарт, настроив в качестве действия по клику — переход к «custom destination». Кроме того, с помощью действия «View these » можно провалиться в таблицу с детальными данными, на которых был построен данный виджет.
В DataLens можно настроить переход из чарта на другой дашборд, настроив генерацию параметризованной URL-ссылки, в которую в качестве параметров будет передаваться контекст чарта и фильтров дашборда. Пример реализации.

Кросс-фильтрация
Функционал кросс-фильтрации Superset доступен для большинства виджетов (функционал активируется при добавления соответствующего флага в конфигурационный файл).
В DataLens кросс-фильтрация не доступна.
В Metabase кросс-фильтрацию можно настроить практически для любых виджетов.Настроить кросс-фильтрацию можно в меню настройки действия по нажатию. Таким образом нельзя настроить одновременно и кросс-фильтрацию и переход в custom destination или переход в меню с интерактивными действиями.

67ec35767569b4b10a82718f473ea57e.png

Передача параметров через URL
Во всех рассматриваемых BI-платформах есть возможность передачи и захвата значений параметров через URL в фильтры дашборда.
В Superset есть два варианта параметризации URL-ссылки:

Варианты передачи фильтров в дашборд через URL в Superset

Варианты передачи фильтров в дашборд через URL в Superset

  1. Значения параметров фильтров передаются в нативные фильтры (встроенную боковую панель фильтрации Superset). Синтаксис передачи значений в нативный фильтр довольно непрост, при формировании такого URL требуется глубоко разобраться в атрибутном составе параметризуемой ссылки.

  2. Передача параметров URL напрямую в SQL-запрос с помощью Python-шаблонизатора Jinja. В этом случае шаблон формата ввода значения параметра настраивается любым удобным способом с помощью jinja

Страшилка

e03e4436b7b1b185cf3576a8a48ce7f5.png

Параметризация расчетов
В каждой рассматриваемой платформе есть возможность параметризации расчетов. Созданные параметры можно добавить на дашборд в виде виджета с выбором из списка или пользовательским вводом, после чего можно использованное введенные пользователем значения при проведении расчетов на стороне платформы и/или в 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 для работы со своими данными.

36217d2b45932e5d81d0641216d157ec.png8972a498baf561f0a9a61de3df23a117.png

Подводя итог, можно смело сказать, что Open Source BI-платформы предоставляют отличные возможности для тех, хочет минимизировать затраты при внедрении корпоративной BI-платформы и при этом готовы принять ограничения таких систем. Благодаря интуитивно понятному интерфейсу и свободному распространению, рассмотренные платформы могут использоваться для Self Service аналитики в компаниях с большим количеством аналитиков и бизнес-пользователей, которые ищут удобный способ исследования своих данных

© Habrahabr.ru