使用 R 工具安装包

适用于: SQL Server 2016 (13.x) SQL Server 2017 (14.x)

本文介绍了如何使用标准 R 工具将新的 R 包安装到 SQL Server 机器学习服务或 SQL Server R Services 的实例。 可以将包安装在具有 Internet 连接的 SQL Server 上,也可以安装在与 Internet 隔离的 SQL Server 上。

除了标准 R 工具之外,还可以使用以下工具安装 R 包:

  • T-SQL (CREATE EXTERNAL LIBRARY)

一般注意事项

  • 在 SQL Server 中运行的 R 代码只能使用在默认实例库中安装的包。 SQL Server 无法从外部库加载包,即使该库位于同一台计算机上也是如此。 这包括与其他 Microsoft 产品一起安装的 R 库。

  • R 包库位于 SQL Server 实例的“程序文件”文件夹中,默认情况下,在此文件夹中安装需要管理员权限。 有关详细信息,请参阅包库位置

    非管理员可以使用 RevoScaleR 9.0.1 或更高版本或使用 CREATE EXTERNAL LIBRARY 安装包。 dbo_owner 用户或具有 CREATE EXTERNAL LIBRARY 权限的用户可以将 R 包安装到当前数据库。 有关详情,请参阅:

    非管理员可以使用 RevoScaleR 9.0.1 及更高版本安装包。 dbo_owner 用户可以将 R 包安装到当前数据库。 有关详细信息,请参阅使用 RevoScaleR 安装 R 包

  • 在强化的 SQL Server 环境中,可能希望避免使用以下包:

    • 需要网络访问权限的包
    • 需要提升的文件系统访问权限的包
    • 用于 Web 开发或不受益于在 SQL Server 内部运行的其他任务的包

联机安装(能够访问 Internet)

如果 SQL Server 有权访问 Internet,则可以使用标准包安装工具安装 R 包。

  1. 确定实例库的位置(请参阅获取 R 包信息),并导航到安装 R 工具的文件夹。

    例如,SQL Server 默认实例的默认路径为:

    C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\bin\x64\

    例如,SQL Server 默认实例的默认路径为:

    C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\bin\x64\

  2. 以管理员身份从此文件夹运行 R 或 Rgui

  3. 运行 R 命令 install.packages,并指定包名称。 如果包有任何依赖项,则安装程序会自动下载并安装这些依赖项。

如果你有多个 SQL Server 并行实例,请分别对要使用包的每个实例运行安装。 无法跨实例共享包。

脱机安装(无法访问 Internet)

通常,托管生产数据库的服务器无法连接 Internet。 若要在该环境中安装 R 包,你需要提前下载并准备包和依赖项(作为压缩的文件),然后将这些文件复制到服务器上的文件夹。 文件就绪后,可以脱机安装包。

标识所有依赖项变得非常复杂。 对于 R,建议使用 miniCRAN 创建本地存储库。 miniCRAN 具有要安装的包列表,可分析依赖项,并收集所有必要的压缩文件。 然后,它将创建单个存储库,可以将其复制到隔离的 SQL Server 实例。 igraph 包还有助于分析包依赖项

有关详细信息,请参阅使用 miniCRAN 创建本地 R 包存储库

zip 文件位于 SQL Server 实例上后,即可使用服务器上的标准 R 工具安装它。

  1. 确定实例库的位置(请参阅获取 R 包信息),并导航到安装 R 工具的文件夹。

    例如,SQL Server 默认实例的默认路径为:

    C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\bin\x64\

    例如,SQL Server 默认实例的默认路径为:

    C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\bin\x64\

  2. 以管理员身份从此文件夹运行 R 或 Rgui

  3. 运行 R 命令 install.packages,并指定包或存储库名称以及压缩文件的位置。 例如:

    install.packages("C:\\Temp\\Downloaded packages\\mynewpackage.zip", repos=NULL)
    

    此命令从其本地压缩文件中提取 R 包 mynewpackage,并安装包。 如果包具有任何依赖项,则安装程序会检查库中的现有包。 如果已创建包含依赖项的存储库,则安装程序还将安装所需的包。

    注意

    如果实例库中不存在任何所需的包,并且在压缩文件中找不到这些包,则目标包安装失败。

作为 miniCRAN 的替代方法,可以手动执行以下步骤

  1. 标识所有包依赖项。
  2. 检查是否已在服务器上安装了任何所需的包。 如果已安装包,请验证版本是否正确。
  3. 将包和所有依赖项下载到能够访问 Internet 的单独计算机。
  4. 将包和依赖项放置在单个包存档中。
  5. 如果尚未压缩存档,则将其压缩。
  6. 将文件移动到服务器可以访问的文件夹。
  7. 运行受支持的安装命令或 DDL 语句,将包安装到实例库中。

另请参阅