RStudio Connect — Shiny «фейслифтинг» для бизнеса

Прошло достаточно времени с упоминания в предыдущей публикации об использовании RStudio Connect в боевых условиях для того, чтобы поделиться результатами. Краткое резюме — «дайте два!». И подумайте про оптимизацию отдела «аналитиков». Ниже приведены подробности.


В качестве дополнительного чтения рекомендую взглянуть детальную публикацию «Data at GDS (Government Digital Service). Reproducible Analytical Pipeline» в блоге аналитической службы гос.органов UK по аналогичной теме.



Что такое RStudio Connect

RStudio Connect — немного платный продукт для публикации аналитической информации как внутри компании, так и для всего остального мира. Аналитическая обработка и подготовка отчетных представлений производится средствами R. Сервер работает on-premise на *nix платформе, что автоматически устраняет 3 повода для головной боли: нет облаков, нет лицензирования Win Server (а еще вдруг и SQL) и отстутствие проблем с Unicode.


Я сознательно написал «аналитическая информация», потому что представления, генерируемые R+RStudio Connect очень далеки от классических отчетов типа Jasper\BO… Основные практически полезные публикуемые результатаnы (отчеты) можно отнести к трем основным классам:


  • Интерактивные html отчеты;
  • Статичные pdf отчеты;
  • Shiny приложения.

image


Отчеты


html и pdf документы формируются в парадигме literate programming из R Markdown исходных файлов, содержащих текстовое описание и включения кода для динамического расчета и визуализации результатов этих расчетов в виде таблиц, рисунков и интерактивных js виджетов. В последнем релизе RStudio Connect отчеты могут быть параметризированы (пока не было необходимости проверять), что добавляет дополнительной гибкости.
image


Преимущества такого подхода очевидны:


  • Различные формы представления получаются из одного исходного .Rmd файла, что устраняет многократное дублирование исходных и промежуточных данных, расчетов и представлений;
  • полностью исключается ручной copy-paste и связанные с ним трудозатраты и недостоверность результатов;
  • результаты воспроизводимы и могут исполняться по требованию\расписанию;
  • динамические js-элементы повзоляеют в компактном виде предоставлять детализированную информацию. Примеры доступных в R htmlwidgets можно поглядеть здесь.

Поскольку RStudio Connect является enterprise-ориентированным, то в базе есть все обязательные функции:


  • Авторизация пользователей с возможностью привязки к LDAP;
  • Гибкая система прав;
  • Генерация отчетов по расписанию;
  • E-mail нотификации;
  • Средства самодиагностики и мониторинга;
  • Управление нагрузкой;
  • Логирование действий;
  • Создание локальных репозиториев R пакетов для каждого приложения;
  • Публикация документов из среды RStudio IDE в «одно нажатие»;
  • Поддержка версионности опубликованных документов;
  • и пр.

Каждому опубликованному документу могут быть разные права доступа. Начиная от «только автор» и заканчивая «просмотр всем кто знает ссылку».
image


А вот почему термин «отчеты» использован в кавычках. Интересный вытекающий вывод из связки функций запуск по расписанию + literate programming + e-mail уведомления следующий:
по сути, мы можем по расписанию выполнять любые R скрипты, встроенные исполняемыми блоками в .Rmd файлы. Эти скрипты могут выполнять абсолютно любые действия, например, брать данные из файлов\БД, заниматься web scrapping-ом\ вести расчеты, публиковать данные во внешние системы\ запускать внешние скрипты и пр., при этом ведется подробный «story-лог» в виде комбинации текста, таблиц, графиков. И этот «story-лог» по завершению работы может быть автоматически отправлен заинтересованным лицам. Т.е. система в популярном ныне жанре «комиксов» может докладывать о результатах работы весьма сложных процессов!


Фактически, идеальный инструмент для практической реализации концепции операционой аналитики.


image


С технической точки зрения pdf версия готовится посредством цепочки R markdown → LaTeX → PDF. Так что на выходе получается полиграфически качественный документ с огромными возможностями по кастомизации.


Приложения и дашборды


Тут все просто. Встроенный Shiny Server c enterprise функциями. Все, что было написано про Shiny ранее доступно в полном объеме.


А публикация приложений в «одно нажатие» позволяет легко и просто делать всевозможные дашборды, интерактивные приложения, включая онлайн аналитику на сервере и кастомные представления для любого сотрудника под его текущие потребности.


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


image


Более того, интеграция с корпоративным LDAP легко позволяет управлять зоной видимости этих приложений.


Несмотря на то, что продукт вышел недавно, он по своей сути является enterprise оберткой для многократно апробированных кубиков Shiny + RMarkdown + R + LaTeX.


В промышленной эксплуатации он показал себя превосходно. Более того, в воздухе повис вопрос «зачем нам теперь нужны прочие n+1 установленные 'системы отчетности'» на который убедительных ответов пока не найдено.


P.S.


  1. Все приводимые скриншоты взяты с тестового стенда и принципиально не содержат реальных бизнес-показателей.
  2. Публикация носит информационный, а не обучающий характер. Как показывает практика, не хватает времени разобраться в сути массы интересных и полезных вещей. RStudio Connect заслуживает, чтобы с ним познакомиться, хотя бы кратко. Если правильно готовить, то можно очень сильно сократить текущие расходы компании на аналитический блок.

Предыдущий пост:»'Пятый элемент' в экосистеме R. WYSIWYG интерфейс для аналитиков»

Комментарии (4)

  • 11 апреля 2017 в 18:02

    0

    Технический вопрос про ПДФ — построенные графики передаются как векторное изображение, или растровое?
    • 11 апреля 2017 в 18:14

      0

      я под капот заглядывал, судя по настроенной по умолчанию схеме генерации, создаются растровые pdf (изнутри он не выглядит как набор векторных инструкций), которые потом уходят в pdfLaTeX\xeLaTeX.


      Но это штатный процесс для полиграфии. Про .eps исходники для LaTeX забыли как про страшный сон еще лет 6 назад.


      В R можно принудительно делать svg, но это актуально для html. Будет ли это лучше — даже сразу и не сказать. порою png с проведенным антиалайзингом гораздо лучше выглядит.

      • 11 апреля 2017 в 20:19

        0

        В своё время выводил график в пдф встроенной R-функцией — получилось действительно векторно, но с кириллицей пришлось повозиться. «Сюрпризы» с кириллицей, кстати, получаются и при скрейпинге с передачей в шайни — рендерную таблицу выводит корректно, но контекстно искать по русским буквам отказывается…
        • 11 апреля 2017 в 21:30

          0

          Таблица какая — DataTable или обычная?
          кодировки помогают обычно,
          , но есть еще один нюанс с кириллицей, как рендерить — традиционно (шайни) или flexdashboard (rmd)

© Habrahabr.ru