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 приложения.
Отчеты
html и pdf документы формируются в парадигме literate programming из R Markdown исходных файлов, содержащих текстовое описание и включения кода для динамического расчета и визуализации результатов этих расчетов в виде таблиц, рисунков и интерактивных js виджетов. В последнем релизе RStudio Connect отчеты могут быть параметризированы (пока не было необходимости проверять), что добавляет дополнительной гибкости.
Преимущества такого подхода очевидны:
- Различные формы представления получаются из одного исходного .Rmd файла, что устраняет многократное дублирование исходных и промежуточных данных, расчетов и представлений;
- полностью исключается ручной copy-paste и связанные с ним трудозатраты и недостоверность результатов;
- результаты воспроизводимы и могут исполняться по требованию\расписанию;
- динамические js-элементы повзоляеют в компактном виде предоставлять детализированную информацию. Примеры доступных в R htmlwidgets можно поглядеть здесь.
Поскольку RStudio Connect является enterprise-ориентированным, то в базе есть все обязательные функции:
- Авторизация пользователей с возможностью привязки к LDAP;
- Гибкая система прав;
- Генерация отчетов по расписанию;
- E-mail нотификации;
- Средства самодиагностики и мониторинга;
- Управление нагрузкой;
- Логирование действий;
- Создание локальных репозиториев R пакетов для каждого приложения;
- Публикация документов из среды RStudio IDE в «одно нажатие»;
- Поддержка версионности опубликованных документов;
- и пр.
Каждому опубликованному документу могут быть разные права доступа. Начиная от «только автор» и заканчивая «просмотр всем кто знает ссылку».
А вот почему термин «отчеты» использован в кавычках. Интересный вытекающий вывод из связки функций запуск по расписанию + literate programming + e-mail уведомления следующий:
по сути, мы можем по расписанию выполнять любые R скрипты, встроенные исполняемыми блоками в .Rmd файлы. Эти скрипты могут выполнять абсолютно любые действия, например, брать данные из файлов\БД, заниматься web scrapping-ом\ вести расчеты, публиковать данные во внешние системы\ запускать внешние скрипты и пр., при этом ведется подробный «story-лог» в виде комбинации текста, таблиц, графиков. И этот «story-лог» по завершению работы может быть автоматически отправлен заинтересованным лицам. Т.е. система в популярном ныне жанре «комиксов» может докладывать о результатах работы весьма сложных процессов!
Фактически, идеальный инструмент для практической реализации концепции операционой аналитики.
С технической точки зрения pdf версия готовится посредством цепочки R markdown → LaTeX → PDF. Так что на выходе получается полиграфически качественный документ с огромными возможностями по кастомизации.
Приложения и дашборды
Тут все просто. Встроенный Shiny Server c enterprise функциями. Все, что было написано про Shiny ранее доступно в полном объеме.
А публикация приложений в «одно нажатие» позволяет легко и просто делать всевозможные дашборды, интерактивные приложения, включая онлайн аналитику на сервере и кастомные представления для любого сотрудника под его текущие потребности.
Нет никаких ограничений на количество опубликованных приложений. Не нужен никакой администратор для публикации. Не надо записываться в очередь к разработчикам. Бери, да делай.
Более того, интеграция с корпоративным LDAP легко позволяет управлять зоной видимости этих приложений.
Несмотря на то, что продукт вышел недавно, он по своей сути является enterprise оберткой для многократно апробированных кубиков Shiny + RMarkdown + R + LaTeX.
В промышленной эксплуатации он показал себя превосходно. Более того, в воздухе повис вопрос «зачем нам теперь нужны прочие n+1 установленные 'системы отчетности'» на который убедительных ответов пока не найдено.
P.S.
- Все приводимые скриншоты взяты с тестового стенда и принципиально не содержат реальных бизнес-показателей.
- Публикация носит информационный, а не обучающий характер. Как показывает практика, не хватает времени разобраться в сути массы интересных и полезных вещей. 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)