Советы по использованию пакетов R

Область применения: SQL Server 2016 (13.x) и более поздних версий Управляемый экземпляр SQL Azure

В этой статье приводятся полезные советы по использованию пакетов R в SQL Server. Эти советы предназначены для администраторов баз данных, которые не знакомы с R, и опытных разработчиков R, не знакомых с доступом к пакетам в экземпляре SQL Server.

Если вы не знакомы с R

Администратору, устанавливающему пакеты R в первый раз, будет полезно знать основы управления пакетами R.

Зависимости пакетов

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

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

Источники, версии и форматы пакетов

Существует несколько источников пакетов R, например CRAN и Bioconductor. На официальном сайте для языка R (https://www.r-project.org/) перечислены многие такие ресурсы. Многие пакеты публикуются на портале GitHub, где можно получить исходный код.

Пакеты R работают на нескольких вычислительных платформах. Убедитесь, что устанавливаемые версии являются двоичными файлами Windows.

Пакеты R работают на нескольких вычислительных платформах. Убедитесь, что устанавливаемые версии являются двоичными файлами Linux.

Знайте, в какую библиотеку вы устанавливаете пакеты и какие пакеты уже установлены

Если вы ранее изменяли среду R на компьютере, перед установкой убедитесь, что переменная среды R .libPath использует только один путь.

Этот путь должен указывать на папку R_SERVICES для экземпляра. Дополнительные сведения, в том числе об определении уже установленных пакетов, см. в разделе Получение сведений о пакете R.

Если вы не знакомы с SQL Server

Когда разработчик R работает над кодом, который выполняется на SQL Server, политики безопасности, защищающие сервер, ограничивают возможности управления средой R. Следующие советы описывают типичные ситуации и предоставляют рекомендации по работе в этой среде.

Пользовательские библиотеки R: не поддерживаются на SQL Server.

Разработчики R, которым требуется установить новые пакеты R, привыкли устанавливать пакеты по желанию, используя закрытую пользовательскую библиотеку, когда библиотека по умолчанию недоступна или разработчик не является администратором компьютера. Например, в типичной среде разработки R пользователю потребуется добавить расположение пакета R в переменную среды R libPath или добавить ссылку на полный путь к пакету следующим образом:

library("c:/Users/<username>/R/win-library/packagename")

Это не работает при выполнении решений R в SQL Server, так как пакеты R должны быть установлены в определенную библиотеку по умолчанию, связанную с экземпляром. Когда пакет отсутствует в библиотеке по умолчанию, при попытке вызова пакета может появиться следующая ошибка:

Произошла ошибка в библиотеке (xxx). Отсутствует пакет с именем "имя_пакета"

Сведения об установке пакетов R в SQL Server см. в разделе Установка новых пакетов R в Службах машинного обучения SQL Server или SQL Server R Services.

Как избежать ошибок "пакет не найден"

Использование следующих рекомендаций поможет избежать ошибок "пакет не найден".

  • Исключите зависимости от пользовательских библиотек.

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

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

  • Убедитесь, что код может выполняться в общей среде.

  • Избегайте установки пакетов как части решения. Если у вас нет разрешений на установку пакетов, код завершится ошибкой. Даже если у вас есть разрешения на установку пакетов, это следует делать отдельно от другого кода, который необходимо выполнить.

  • проверьте код, чтобы убедиться в отсутствии вызовов к удаленным пакетам;

  • Обновите код, чтобы удалить прямые ссылки на пути пакетов R или библиотек R.

  • Определите, какая библиотека пакетов связана с экземпляром. Дополнительные сведения см. в статье Получение сведений о пакете R.

См. также