Pull to refresh

Применение R для подготовки и передачи «живой» аналитики другим бизнес-подразделениям

Reading time3 min
Views16K

В этой краткой заметке хочу поделиться еще одним вариантом использования R в повседневных бизнес задачах. Этот «use-case» актуален почти для всех компаний, вне зависимости от их размера. Речь идет о подготовке различных оперативных отчетов и аналитических срезов.



R Notebook

Как это обычно бывает


В зависимости от масштаба компании и ранее сделанных инвестиций в ИТ в задаче подготовки отчетов встречаются следующие варианты (комбинации вариантов):


  1. Есть корпоративная система отчетности (Oracle, SAP BI, ...) на базе которой должны создаваться все необходимые отчеты. Аналитики вечно заняты, к ним надо записываться на прием, сроки реализации уходят в «+бесконечность», работа с комбинированными и неструктурированными данными ставит всех в ступор, оперативная корректировка отчетов почти невозможна, набор представлений определяется существующим продуктом, а не конкретными бизнес-потребностями.
  2. Различные open-source решения (например, Jasper), которые поддерживаются по остаточному принципу. Желающие могут взять и наваять отчетик, только таких желающих не находится.
  3. Всемогущий Excel. Распространяться про печальные стороны этого подхода не стоит.
  4. Языки программирования или что-то еще....

В принципе, с простыми отчетами по небольшим, структурированным и чистым данным Excel вполне неплохо справляется, но количество затраченных усилий всегда несоразмерно получаемому результату. Шаг влево-вправо, появление дополнительного крохотного требования («а вот такой разрез покажите», «а наложите график», «а как это соотносится с ...») требует массы дополнительных усилий. Переход от Excel к Tableau\QlikView (по сути это не аналитические системы, а улучшенный визуализатор) улучшает возможности по простой обработке данных и динамической визуализации. Но они стоят также немалых денег и требуют серьезного изучения для реализации требований, недоступных простым нажатием на кнопку.


Дополнительно неплохо задаться вопросом, а каков размер данных при подготовке такого аналитического отчета? В 90% случаев все ограничивается крохотным объемом данных (не более нескольких миллионов «excel» строк).


Альтернативное решение — делаем отчеты с применением R


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


  1. Передаем R скрипт для запуска в консоли R-Studio, осуществляющий необходимый процессинг и выдачу результов в консоль\файлы.
  2. Передаем R Notebook/R Markdown скрипт для запуска в консоли R-Studio, осуществляющий необходимый процессинг и выдачу результов в виде повествовательной истории в консоль/html/pdf и пр.
  3. Передаем R Shiny скрипт для запуска в консоли R-Studio, осуществляющий необходимый процессинг и выдачу результов в виде локального web-портала с интерактивом и динамикой. Если бизнес-пользователь вообще ничего не хочет делать (запустить программу и нажать кнопку), то можно самостоятельно публиковать на внутреннем Shiny портале.

При передаче R скрипта конечному потребителю, будь то R Markdown или Shiny portal достаточно передать 1 (один!) скрипт-файл. В случае сложной аналитики можно оформить свой пакет, положить его на github и вкючить в скрипт автоматическую проверку и обновление локального пакета в случае необходимости. для этих целей можно использовать, например, пакеты pacman или githuninstall. При этом в рамках этого скрипта может осуществляться полный цикл работы с данными:


  • подключение к источникам данных;
  • сбор данных;
  • очистка данных с отработкой исключений;
  • аналитические расчеты любой степени сложности;
  • визуализация;
  • обеспечение интерактива по манипуляции с данными;
  • вывод в различных форматах;
  • автоматическая публикация во внешних системах;
  • ...

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


Затрагивать вопросы безопасности здесь совершенно нет смысла. Во-первых, не всегда они будут возникать, например, при подготовке отчетов\аналитики на основе выгрузок\представлений доступных пользователю и так. Во-вторых, абстрактные вопросы либо имеют абстрактные ответы, либо вообще не имеют ответа. А частные задачи решаются проще и быстрее.


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


Выбор за вами.


Предыдущий пост: «Запрягаем R на службу бизнесу на '1-2-3'»
Следующий пост: «Еще примеры использования R для решения практических бизнес-задач»

Tags:
Hubs:
Total votes 13: ↑12 and ↓1+11
Comments32

Articles