使用 T-SQL (CREATE EXTERNAL LIBRARY) 将 R 包安装在 SQL Server 上

适用于: 仅限 SQL Server 2017 (14.x)

本文介绍如何在启用了机器学习的 SQL Server 实例上安装新的 R 包。 有多种方法可供选择。 使用 T-SQL 最适用于不熟悉 R 的服务器管理员。

使用 CREATE EXTERNAL LIBRARY 语句,可以将包或包集添加到实例或特定数据库,而无需直接运行 R 或 Python 代码。 但是,此方法需要准备好包以及额外的数据库权限。

  • 所有包都必须作为本地压缩文件提供,而不是根据需要从 Internet 下载。

  • 必须按名称和版本标识所有依赖项,并将其包含在 zip 文件中。 如果所需的包不可用(包括下游包依赖项),则语句将失败。

  • 你必须是 db_owner 或在数据库角色中享有 CREATE EXTERNAL LIBRARY 权限。 有关详细信息,请参阅 CREATE EXTERNAL LIBRARY

下载存档格式的包

如果要安装单个包,请下载压缩格式的包。

由于包依赖项,更常见的方法是安装多个包。 当包需要其他包时,必须在安装过程中验证是否所有包都可供访问。 建议使用 miniCRAN创建本地存储库来组装一个完整的包集合,以及使用 igraph 来分析包依赖项。 安装包的错误版本或省略包依赖项可能导致 CREATE EXTERNAL LIBRARY 语句失败。

将文件复制到本地文件夹

将包含所有包的压缩文件复制到服务器上的本地文件夹。 如果无法访问服务器上的文件系统,还可以使用二进制格式将整个包作为变量传递。 有关详细信息,请参阅 CREATE EXTERNAL LIBRARY

运行语句上传包

使用具有管理权限的帐户打开“查询”窗口。

运行 T-SQL 语句 CREATE EXTERNAL LIBRARY 将压缩包集合上传到数据库。

例如,下面的语句将 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)'

另请参阅