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

Теперь можно создавать приложения Shiny, которые могут обновляться на регулярной основе, получая обновленные данные, чтобы люди всегда смотрели на самый последний анализ. Таким образом, с помощью одного спринта предварительной разработки аналитик может сократить свою текущую аналитическую рабочую нагрузку по определенной теме почти на 100%.

Что тебе понадобится

  1. Проект, в котором вы регулярно предоставляете отчеты в одном и том же формате и где все данные доступны в базе данных.
  2. Навыки R, R Markdown и R Shiny
  3. Доступ к серверу Linux под управлением R, содержащему Shiny Server, или, если вам действительно повезло, доступ к платформе публикации RStudio Connect, что значительно упрощает весь этот процесс.

Шаг 1. Создайте приложение на основе локального источника данных

Напишите свое блестящее приложение, чтобы оно успешно развертывалось на вашем локальном компьютере, используя локальный источник данных в виде .csv, .feather файла, .RData файла или даже SQLLitelocal базы данных. Убедитесь, что он работает должным образом.

Шаг 2. Напишите сценарий или документ ETL, которые можно запустить на сервере

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

  • Обратная запись в исходную базу данных в новой таблице (если у вас есть на это разрешение)
  • Запись в файловую систему сервера Linux, на котором размещен ваш Shiny Server.
  • Если вы работаете с RStudio Connect, записывайте в его кэш по адресу /var/cache/data.

Шаг 3. Разверните сценарий на сервере Linux или в RStudio Connect

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

Если вы записываете свой вывод в файловую систему Linux, вам необходимо убедиться, что он находится в каталоге, к которому Shiny Server имеет доступ.

Если вы работаете в RStudio Connect, вы можете обернуть свой скрипт в документ R Markdown и опубликовать его, включая исходный код, чтобы код выполнялся при каждом обновлении документа, таким образом выполняя новый ETL.

Шаг 4. Разверните приложение Shiny на сервере Shiny или в RStudio Connect

Вам нужно будет отредактировать код вашего приложения, чтобы он указывал на удаленный источник данных, будь то база данных или где-то в файловой системе. Затем вы можете загрузить файлы приложения в подкаталог shiny-server на сервере Linux. URL-адрес приложения будет URL-адресом блестящего сервера, за которым следует имя подкаталога, например https://my.shiny.server/myappname.

Если вы работаете в RStudio Connect, вы просто публикуете как обычно и настраиваете URL-адрес внутри RStudio Connect.

Шаг 5. Настройте автоматическое обновление данных

Если ваш скрипт находится на вашем Linux-сервере, вы можете использовать различные инструменты планирования, чтобы настроить автоматический запуск скрипта с желаемым интервалом. cronэто простой способ сделать это. Просто найдите свой crontabfile в папке пользователя Linux и отредактируйте его соответствующим образом. Например, чтобы настроить запуск сценария в 2 часа ночи каждое воскресенье, отредактируйте файл crontabfile, добавив в него следующую строку:

0 2 * * 0 Rscript /mypath/myscript

Это запустит ваш скрипт автоматически с желаемой частотой, извлекая необработанные данные и перезаписывая файлы, к которым ваше приложение обращается, новыми данными.

Если вы используете RStudio Connect, вы можете настроить для своего документа R Markdown, содержащего ваш скрипт, обновление до расписания, используя меню настроек для вашего документа.

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

Вы можете узнать больше о Shiny Server и RStudio Connect здесь.

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