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

в 16:23, , рубрики: big data, data mining, data science, R

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

R Notebook

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

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

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

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

Дополнительно неплохо задаться вопросом, а каков размер данных при подготовке такого аналитического отчета? В 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. При этом в рамках этого скрипта может осуществляться полный цикл работы с данными:

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

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

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

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

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

Автор: i_shutov

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js