适用于:SQL Server 2022 (16.x) - Linux
本文指导你在 Linux 上安装 SQL Server 机器学习服务。 可使用机器学习服务在数据库中执行 Python 和 R 脚本。
可在 Ubuntu 和 Red Hat Enterprise Linux (RHEL) 上安装机器学习服务。 目前不支持 SUSE Linux Enterprise Server (SLES)。
可以在运行 Linux 发行版的 Docker 容器上安装 ML 服务。 在 Docker 容器中,步骤如下所示。
有关详细信息,请参阅 Linux 上的 SQL Server 安装指南中的“受支持的平台”部分。
重要
本文涉及的是 SQL Server 2022 (16.x)。 对于 Linux 上的 SQL Server 2019,请参阅在 Linux 上安装 SQL Server 2019 机器学习服务(Python 和 R)。 关于 Windows 上的 SQL Server,请参阅在 Windows 上安装 SQL Server 2022 机器学习服务(Python 和 R)。
安装前清单
安装 Linux 上的 SQL Server,然后验证安装。
查看 SQL Server Linux 存储库中的 Python 和 R 扩展。 如果已为数据库引擎安装配置了源存储库,则可以使用相同的存储库注册运行 mssql-server-extensibility 包安装命令。
应安装用于运行 T-SQL 命令的工具。
- 你可使用免费的 Azure Data Studio 数据库工具,该工具在 Linux、Windows 和 macOS 上运行。
在此安装过程中,将需要重启 SQL Server 实例。
包列表
在已连接 Internet 的设备上,将使用针对每个操作系统的包安装程序独立于数据库引擎下载和安装相应的包。
Linux 上 SQL Server 2022 (16.x) 的可用安装包:
| 包名称 | 适用对象 | 说明 |
|---|---|---|
mssql-server-extensibility |
All | 用于运行 Python 和 R 的扩展性框架。 |
安装 mssql-server-extensibility 包
针对 Linux 发行版配置存储库以便安装和升级 Linux 上的 SQL Server。 使用包
mssql-server-extensibility和关联的依赖项libssl-dev安装 SQL Server 扩展性功能。Ubuntu
sudo apt-get install mssql-server-extensibility libssl-devRHEL
yum install mssql-server-extensibility查看并接受 SQL Server ML 服务的最终用户许可协议 (EULA)。
sudo /opt/mssql/bin/mssql-conf set EULA accepteulaml Y若要完成对 EULA 的接受,必须重启 SQL Server 实例。
sudo systemctl restart mssql-server
安装运行时和包
设置 R 支持
安装 R 运行时
下载并安装所需的 R 版本。 选择 R 4.2 或更高版本,可直接从 cran.r-project.org 下载。按照所需运行时的说明进行操作。
打开管理员 R 终端:
sudo R运行以下命令安装
CompatibilityAPI和RevoScaleR的依赖项:# R Terminal install.packages("iterators", lib="/usr/lib/R/library") install.packages("foreach", lib="/usr/lib/R/library") install.packages("R6", lib="/usr/lib/R/library") install.packages("jsonlite", lib="/usr/lib/R/library")下载并安装适用于 Linux 的
CompatibilityAPI和RevoScaleR。install.packages("https://aka.ms/sqlml/r4.2/linux/CompatibilityAPI_1.1.0_R_x86_64-pc-linux-gnu.tar.gz", repos=NULL, lib="/usr/lib/R/library") install.packages("https://aka.ms/sqlml/r4.2/linux/RevoScaleR_10.0.1_R_x86_64-pc-linux-gnu.tar.gz", repos=NULL, lib="/usr/lib/R/library")从 R 终端验证
RevoScaleR安装。library("RevoScaleR")
使用 SQL Server 配置 R 运行时
使用 SQL Server for Linux 配置已安装的 R 运行时,其中
path/to/是 R 二进制文件的文件路径,RFolderVersion是 R 运行时安装的特定于版本的文件夹名称,例如R4.2。sudo /opt/mssql/bin/mssql-conf set extensibility rbinpath /usr/lib/R/bin/R sudo /opt/mssql/bin/mssql-conf set extensibility datadirectories /usr/lib/R重新启动
Launchpadd服务。systemctl restart mssql-launchpadd.service将 SQL Server for Linux 配置为允许使用
sp_configure系统存储过程的外部脚本。EXECUTE sp_configure 'external scripts enabled', 1; GO RECONFIGURE; GO通过执行简单的 T-SQL 命令来验证安装以返回 R 的版本:
EXECUTE sp_execute_external_script @script = N'print(R.version)', @language = N'R'; GO
设置 Python 支持
安装 Python 运行时
下载并安装 Python。 具体选择 Python 3.10 版本,可直接从 python.org 下载。按照提供的说明进行操作。 此外,为运行时版本安装共享 Python 运行时库。 例如,要为 Ubuntu 安装
libpython3.10:sudo apt-get install libpython3.10。为根用户下载并安装
revoscalepy。sudo pip install dill numpy==1.22.0 pandas patsy python-dateutil sudo pip install https://aka.ms/sqlml/python3.10/linux/revoscalepy-10.0.1-py3-none-any.whl --target=/usr/lib/python3.10/dist-packages从 Python 终端验证
revoscalepy安装。 验证是否可以导入库。import revoscalepy
使用 SQL Server 配置 Python 运行时
使用 SQL Server 配置已安装的 Python 运行时,其中
pythonbinpath设置为已安装的 python 二进制文件的路径,datadirectories包括为所需版本的 python 安装包的路径,例如/usr/lib/python3.10/dist-packages。 将以下脚本与实际安装路径配合使用:sudo /opt/mssql/bin/mssql-conf set extensibility pythonbinpath /usr/bin/python3.10 sudo /opt/mssql/bin/mssql-conf set extensibility datadirectories /usr/lib:/usr/lib/python3.10/dist-packages重新启动
Launchpadd服务。systemctl restart mssql-launchpadd.service将 SQL Server for Linux 配置为允许使用
sp_configure系统存储过程的外部脚本。EXECUTE sp_configure 'external scripts enabled', 1; GO RECONFIGURE; GO通过执行简单的 T-SQL 命令来验证安装以返回 python 的版本:
EXECUTE sp_execute_external_script @script = N'import sys;print(sys.version)', @language = N'Python'; GO
安装 Java
若要安装 Java 语言扩展,请参阅在 Linux 上安装 SQL Server Java 语言扩展。
验证安装
若要验证安装,请使用以下任一方法:
运行 T-SQL 脚本,该脚本执行使用查询工具调用 Python 或 R 的系统存储过程。
请执行以下 SQL 命令以测试 SQL Server 中的 R 执行。 遇到错误? 尝试重启服务
sudo systemctl restart mssql-server.service。EXECUTE sp_execute_external_script @language = N'R', @script = N' OutputDataSet <- InputDataSet', @input_data_1 = N'SELECT 1 AS hello' WITH RESULT SETS ( ([hello] INT NOT NULL) ); GO请执行以下 SQL 命令以测试 SQL Server 中的 Python 执行。
EXECUTE sp_execute_external_script @language = N'Python', @script = N' OutputDataSet = InputDataSet; ', @input_data_1 = N'SELECT 1 AS hello' WITH RESULT SETS ( ([hello] INT NOT NULL) ); GO
脱机安装
有关安装包的步骤,请按照脱机安装说明进行操作。 找到下载网站,然后使用下面的包列表下载特定的包。
提示
一些包管理工具提供可帮助确定包依赖项的命令。 对于 yum,请使用 sudo yum deplist [package]。 对于 Ubuntu,请在使用 sudo apt-get install --reinstall --download-only [package name] 之后使用 dpkg -I [package name].deb。
适用于 Python 和 R 运行时的独立 RevoScale 包
RevoScale 包也作为适用于 Python 和 R 运行时的独立包受支持。 若要为独立方案设置 Python 或 R 运行时,请分别按照安装 Python 运行时和安装 R 运行时部分中的说明执行操作。