Привет, 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.

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

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

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

Доступные "из коробки" визуализации Superset
Доступные "из коробки" визуализации 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-запроса, но функционал редактора запросов ограничен.

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 Down в DataLens
Drill Down в DataLens

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-ссылки:

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

  2. Передача параметров 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)


  1. Ivnika
    26.11.2023 13:46
    +1

    Вы начинаете с объяснения что такое "Open Source", может лучше было начать с "BI"? А в целом спасибо, было интересно!


    1. anastapenko Автор
      26.11.2023 13:46
      +1

      Хорошая идея) добавлю в всплывающую подсказку пояснение термина BI


  1. mixsture
    26.11.2023 13:46
    +2

    Yandex DataLens будет интересен тем компаниям, которые ищут простой и удобный Self-Service инструмент для широкой аудитории пользователей

    В Open Source версии DataLens мультиюзерность и, как следствие, настройка ролевой модели доступа пока не доступна.

    Как это "подходит компаниям", когда нет мнопользовательского доступа и разделения видимости данных? По-моему, совсем не подходит.


    1. anastapenko Автор
      26.11.2023 13:46
      +1

      Формулировка противоречивая, согласна. На данный момент "из коробки" Open-Source версию DataLens нельзя использовать для корпоративного применения. Но та же Cloud версия DataLens имеет и мультиюзерность и настройку ролевой модели доступа. И она также бесплатна. Единcтвенное отличие - нельзя развернуть On-Premise, только в облаке.
      Второй вариант - можно поискать в чате DataLens, на вкладке Open Source - там умельцы находят способы настроить авторизацию, например через nginx.
      Ну и третий вариант - насколько я знаю, настройка авторизации и ролей - первый приоритет у команды DataLens, как они сами пишут в анонсе выхода в Open Source - они заложили в код некие "точки расширения", чтобы в будущем было проще доработать и добавить эту автоматизацию. Будем надеяться, что начале 24 года появится.


      1. mixsture
        26.11.2023 13:46

        Но та же Cloud версия DataLens имеет и мультиюзерность и настройку ролевой модели доступа. И она также бесплатна. Единcтвенное отличие - нельзя развернуть On-Premise, только в облаке.

        Но тема статьи об опенсорс решениях, а предложенное решение выходит за рамки. В том смысле, что врятли возможно посмотреть исходники, работающие непосредственно в облаке, нельзя их отлаживать, нельзя изменять.

        там умельцы находят способы настроить авторизацию, например через nginx

        Не сомневаюсь, что это возможно, но и толку от такого не много. Это скорее от безысходности:
        во-первых, очень велик шанс оставить дырку безопасности при попытке описать все возможные виды url (а уж если пользователь сам может короткие url генерить - вообще кошмар)
        во-вторых, не всегда из url очевидно, к каким объектам будет доступ => сложно их переложить на правила авторизации


        1. anastapenko Автор
          26.11.2023 13:46

          Согласна с вами. Отсутствие такого критичного функционала на данный момент делает невозможным коммерческое использование платформы.


  1. Holistic
    26.11.2023 13:46
    +1

    Путем перебора, проб и ошибок, несколько большего количества BI платформ, наша компания остановила свой выбор, именно на Superset. Критерии выбора были идентичны тем, что описаны в материале. Единственное, что выводы при оценке критериев были более категоричны и безапелляционны, но это объяснимо разными целями. Ограниченный набор инструментов для визуализации, отсутствие настройки распределенного доступа, лишает Data Lens и Metabase шансов на использование.

    Было бы очень интересно провести нагрузочное тестирование на одном наборе данных с одинаковыми отчётами вышеперечисленных платформ.


    1. anastapenko Автор
      26.11.2023 13:46
      +1

      Учитывая, что у всех 3 систем есть только 1 способ взаимодействия с данными - live-подключение к БД (нет импорта и работы с данными на внутреннем движке системы), то предполагаю, что результаты нагрузочного тестирования будут максимально похожи с различием, разве что, в оптимальности генерации динамического SQL. Но это может внести какой-то вклад только на очень сложных запросах. А для большинства среднестатистических аггрегаций и вычислений, при условии использования одинаковой БД, производительность должна быть примерно одинаковая.


      1. sheolesya
        26.11.2023 13:46

        Настя, а Grafana не рассматривали, а почему?


        1. anastapenko Автор
          26.11.2023 13:46

          Grafana - это система немного другого класса. Её и не позиционируют как Self Service BI-платформу. Ее основное применение - ИТ-мониторинг. Да, технически, дашборды тоже можно делать, но чаще всего для создания дашбордов используют другие системы - как раз те, что в обзоре).
          Кроме того, так как Grafana и платформы из обзора ориентированы на разные задачи, то и критерии сравнения для них будут отличаться. К примеру, для того, чтобы добавить интерактивный функционал, описанный в статье, в Графане скорее всего придется дописывать плагины или делать кастомные доработки на JS


          1. sheolesya
            26.11.2023 13:46
            +1

            Спасибо за ответ) По-моему субъективному мнению, то что Графана исключительно для ИТ-мониторинга, больше стереотип.

            Интерактивность, например, добавляется с помощью уже допиленных плагинов и простых SQL запросов, в случае использования Postgres. Инструмент возможно немного сложнее, однако дает много возможностей для визуализаций.


            1. anastapenko Автор
              26.11.2023 13:46

              Интересно, спасибо за инфо) Похоже стоит более подробно изучить функционал Grafana)


  1. manyakRus
    26.11.2023 13:46

    Используем Superset, работает хорошо. На одной странице 6 графиков, с общим фильтром на всех. Сделал 2 разных запроса на все 6 графиков, т.е. 1 запрос sql отображает 5 графиков в разном виде.
    Надо было написать в конце вывод: Superset лучше всех :-)


    1. anastapenko Автор
      26.11.2023 13:46

      А вы сравнивали Superset с другими платными российскими платформами? По каким критериям выбирали платформу?


  1. wirecrm
    26.11.2023 13:46

    Был бы интересен обзор коммерческих BI систем


    1. anastapenko Автор
      26.11.2023 13:46

      Мы как раз год назад такой обзор выпускали. Конечно, за год ситуация немного изменилась, но не кардинально. Так что обзор еще актуален) + по возможности стараемся обновлять обзор в течение года


      1. wirecrm
        26.11.2023 13:46

        Был опыт работы с Gooddata, но сейчас насколько вижу по трафику ситуация у них не сильно изменилась и не в лучшую сторону


  1. mixsture
    26.11.2023 13:46
    +1

    Я бы еще добавил в статью, что в DataLens крайне ограниченный набор коннекторов. Это может стать неприятным сюрпризом (например, для малый организаций будет важен импорт из csv).


    1. anastapenko Автор
      26.11.2023 13:46

      Да, количество коннекторов расстраивает. Но надеемся на лучшее. Все же DataLens вышел в OpenSource только месяц назад, нужно дать ему время хотя бы дойти до уровня функционала Cloud версии)