Использование инструкции T-SQL (CREATE EXTERNAL LIBRARY) для установки пакетов R на SQL Server

Область применения: SQL Server 2017 (14.x) — только эта версия

В этой статье объясняется, как установить новые пакеты R на экземпляре SQL Server, где включено машинное обучение. Существует несколько подходов. Использование T-SQL лучше подходит администраторам сервера, которые не знакомы с R.

Инструкция CREATE EXTERNAL LIBRARY позволяет добавить пакет или набор пакетов в экземпляр или конкретную базу данных без непосредственного запуска кода R или Python. Тем не менее этот метод требует разрешений на подготовку пакета и дополнительных разрешений для базы данных.

  • Все пакеты должны быть доступны в виде локального ZIP-файла. Их не следует загружать по запросу из Интернета.

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

  • У вас должна быть роль db_owner или разрешение на создание внешней библиотеки в роли базы данных. Дополнительные сведения см. в статье CREATE EXTERNAL LIBRARY (Transact-SQL).

Скачивание пакета в формате архива

При установке одного пакета скачайте пакет в формате ZIP.

Чаще всего из-за зависимостей устанавливается несколько пакетов. Если пакету требуются другие пакеты, необходимо убедиться, что все они могут получить доступ друг к другу во время установки. Рекомендуется создать локальный репозиторий, используя miniCRAN для сборки полной коллекции пакетов и igraph для анализа зависимостей пакетов. Установка неверной версии пакета или пропуск зависимости пакета может привести к сбою инструкции CREATE EXTERNAL LIBRARY.

Копирование файла в локальную папку

Скопируйте сжатый ZIP-файл, содержащий все пакеты, в локальную папку на сервере. Если у вас нет доступа к файловой системе на сервере, можно также передать полный пакет в виде переменной, используя двоичный формат. Дополнительные сведения см. в разделе CREATE EXTERNAL LANGUAGE.

Выполнение инструкции для отправки пакетов

Откройте окно Запрос, используя учетную запись с правами администратора.

Выполните инструкцию T-SQL CREATE EXTERNAL LIBRARY, чтобы отправить ZIP-файл коллекции пакетов в базу данных.

Например, следующий оператор называет в качестве источника пакета репозиторий miniCRAN, содержащий пакет randomForest, вместе с его зависимостями.

CREATE EXTERNAL LIBRARY [randomForest]
FROM (CONTENT = 'C:\Temp\Rpackages\randomForest_4.6-12.zip')
WITH (LANGUAGE = 'R');

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

Проверка установки пакета

Если библиотека создана успешно, можно запустить пакет в SQL Server, вызвав его внутри хранимой процедуры.

EXEC sp_execute_external_script
@language =N'R',
@script=N'library(randomForest)'

См. также раздел