Skip to content

Instantly share code, notes, and snippets.

@bashkirtsevich
Last active February 8, 2017 05:22
Show Gist options
  • Select an option

  • Save bashkirtsevich/93c65e42bc684a66013228d99392832a to your computer and use it in GitHub Desktop.

Select an option

Save bashkirtsevich/93c65e42bc684a66013228d99392832a to your computer and use it in GitHub Desktop.
Записки по исследованию BI платформ

Заметки по BI платформам

  • Тонкисти, туториалы, заметки и результаты исследования Jasper BI
  • Заметки по Pentaho BI
  • Заметки по Spago BI
  • Заметки по BIRT

Отчеты в Prognoz Platform

Для исследования BI-систем были выбраны следующие отчеты:

Мероприятия ГП Безопасный город

Входные параметры и элементы управления отчета:

  1. Госпрограмма/программа — множественная отметка справочника
  2. Дата регистрации мероприятия (с/по) — период
  3. Дата выполнения мероприятия (с/по) — период

Отчет включает в себя 3 вкладки:

  1. Сравнение значений показателей по мероприятиям
  2. Достижения поставленных целей ГП «Безопасный город»
  3. График проведения мероприятий в сравнении с АППГ (диаграмма Ганта)

Интерактив:

  • Отсутствует

Фичи:

  • Условное форматирование — расцветка ячеек

Эскизы отчета:

Page 1 Page 2 Page 3

Мероприятия ГП Безопасный город (с группировкой)

Входные параметры и элементы управления отчета:

  1. Госпрограмма/программа — множественная отметка справочника
  2. Дата регистрации мероприятия (с/по) — период
  3. Дата выполнения мероприятия (с/по) — период
  4. Группировка показателей мероприятий по уровню влияния на — единичная отметка из списка:
Криминогенную обстановку
Общественную безопасность

Отчет включает в себя 1 вкладку:

  1. Сравнение значений показателей по мероприятиям

Интерактив:

Схлапывающиеся группы показателей

Эскиз отчета:

Page 1

Реализация отчета на Pentaho

Мероприятия ГП Безопасный город

Удалось реализовать:

  1. Табличное отображение отчета с заданным форматированием
  2. Построение диаграммы Ганта
  3. Ввод параметров с множественной отметкой

Не удалось реализовать:

  1. Условное форматирование
  2. Реализовать иерархический справочник для множественной отметки; в качестве справочника используется одноуровневый запрос
  3. Полноценную диаграмму Ганта с календарным отображением «брусков», используется диаграмма с накоплением, одна из полос белая
  4. Отображение календаря для выбора параметра даты; так же пришлось в запрос вставлять костыль в запрос, для преобразования строкового параметра в дату
  5. Распределение данных по независимым листам с уникальным форматированием, отчет строится в рамках одного множества листов, при экспорте в Excel данные заносятся на один лист

Эскизы отчета:

Page 1 Page 2 Page 3

Мероприятия ГП Безопасный город (с группировкой)

Удалось реализовать:

  1. Табличное отображение отчета с заданным форматированием
  2. Объединение строк в группы
  3. Ввод параметров с множественной отметкой

Не удалось реализовать:

  1. Отображение календаря для выбора параметра даты; так же пришлось в запрос вставлять костыль в запрос, для преобразования строкового параметра в дату
  2. Схлапывание групп строк (возможно только некой надстройкой извне)
  3. Условное форматирование
  4. Интерактив как таковой

Эскиз отчета:

Page 1

Реализация отчета на Jasper

Мероприятия ГП Безопасный город

Удалось реализовать:

  1. Табличное отображение отчета с заданным форматированием
  2. Построение истинной диаграммы Ганта с календарём
  3. Ввод параметров с множественной отметкой в рамках графика
  4. Ввод дат с помощью выпадающего календаря (в т.ч. без костылей в запросах)
  5. Отображение данных в виде интерактивных таблиц, с возможностью перемещать и изменять размер столбцов, выполнять сортировку, автоматически закреплять шапку таблицы

Не удалось реализовать:

  1. Условное форматирование по значениям (но думаю, это возможно)
  2. Реализовать иерархический справочник для множественной отметки; в качестве справочника используется одноуровневый запрос
  3. Передачу множественной отметки в подзапрос таблицы

Эскизы отчета:

Page 1 Page 2 Page 3

Мероприятия ГП Безопасный город (с группировкой)

Удалось реализовать:

  1. Табличное отображение отчета с заданным форматированием
  2. Объединение строк в группы
  3. Ввод параметров с множественной отметкой
  4. Множественную отметку справочника для вывода данных

Не удалось реализовать:

  1. Схлапывание групп строк (возможно только некой надстройкой извне)
  2. Условное форматирование по значениям (но думаю, это возможно)

Эскиз отчета:

Page 1

Сложности, возникшие при изучении платформ

Сложности с Pentaho

  1. Довольно нетривиальный процесс установки и запуска
  2. При построении таблиц пришлось через костыли вставлять сетку, иначе при просмотре обводка ячеек удваивалась и полосы выглядели очень толстыми
  3. Не юзер-френдли интерфейс самого редактора отчетов
  4. Сложная настройка тонких параметров отчета (все параметры свалены в одну кучу и из описания не всегда понятно на что влияет тот или иной параметр)
  5. Крайне неудобно смотреть отчеты в BI-платформе, выбор параметров закрывает треть экрана и тем более неудобен в использовании
  6. Из-за некорректной работы параметров типа «Дата» в запрос приходилось вставлять костыли для его корректной работы
  7. Нет адекватного способа рассчета высоты ячейки в зависоимости от её наполнения, только костыли, только хардкор; в т.ч. и для всей группы
  8. Некорректно работает экспорт отчета в pdf-формат, не отображается кириллица
  9. Не удалось реализовать наименования листов при экспорте в Excel

Плюсы

  • Довольно легко работать со вложенными отчетами
  • Удобно что все запросы настраиваются в одном месте
  • Интерактивные карты Google maps

Минусы

  • Невозможно построить истинную адекватную диаграмму Ганта
  • Невозможно использовать параметр с типом «Дата»
  • Некорректный экспорт в pdf и прочие форматы
  • Неудобная форма выбора параметров отчета
  • Довольно мало информации по скриптам в отчете

Скорость разработки на Pentaho

По личным ощущениям, разбираться и работать с Pentaho было намного сложнее, чем с Jasper, реализация простого отчета заняла несколько рабочих дней, плюс консультации с программистами, кто реально на этом работает.

Так же было крайне неудобно, что какие-то вещи, которые описаны в Интернете на используемой версии либо отсутствовали, либо работали как-то иначе.

У проекта комьюнити не очень хорошее, официальная Wikia находится в зачаточно-черновиковом состоянии, где реально более-менее информативные статьи можно пересчитать по пальцам (если повезет).

Сложности с Jasper

  1. Не удалось реализовать передачу множественной отметки в подзапрос

Плюсы

  • Довольно удобный редактор отчетов
  • Присутствует база знаний по Jasper и довольно хорошее комьюнити
  • Простота установки системы, буквально нажать «Далее» в установщике и система запущена и готова к работе, нет необходимости в ручном запуске (работает полностью автономно)
  • Можно довольно быстро реализовывать табличные представления данных со всякими приколами, типа сортировка строк, ширина столбцов и т.д.
  • Отчеты используют стили (в т.ч. иерархические), достаточно один раз описать стиль и далее просто применить его к нужным объектам
  • Удобный мастер выбора параметров отчета
  • Поддержка параметров с датами
  • Более адекватный выбор множественной отметки
  • Структурированность: можно базовые для отчетов элементы завести в системе и далее просто ссылаться на них для использования
  • Построение диаграмм в svg формате
  • Интерактивные карты Google maps

Минусы

  • Несколько сложный процесс запуска редактора отчетов (но т.к. редакторов два, один компенсирует другого)
  • Не удалось реализовать передачу множественной отметки в подзапрос

Скорость разработки на Jasper

По сравнению с Pentaho, мне было проще и быстрее работать с Jasper, довольно быстро получилось изучить базовые концепции, а так же буквально в течении 15 минут сделать простой отчет с группировкой.

Так же очень понравилась идеология со стилями, не пришлось для множества объектов руками выставлять параметры отображения.

Есть возможность строить диаграммы в векторном формате, а так же большим плюсом было то, что возможно построить диаграмму Ганта (некоторое время пришлось с ней поразбираться).

Интерфейс платформы мнемонически понятный.

У проекта довольно большое комьюнити, а так же есть база знаний на манер (если не на движке) Stack Overflow.

Единственное что не удалось решить — это реализовать передачу параметра с множественной отметкой внутрь вложенной таблицы, необходима консультация в экспертом по Java/Groovy/JavaScript.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment