Использование инструкции 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)'