适用于: Linux 上的 SQL Server 2022 (16.x)
本文指导你在 Linux 上安装 SQL Server 机器学习服务。 可使用机器学习服务在数据库中执行 Python 和 R 脚本。
可在 Ubuntu 和 Red Hat Enterprise Linux (RHEL) 上安装机器学习服务。 不支持 SUSE Linux Enterprise Server (SLES)。
你可以在运行Linux发行版的Docker容器上安装机器学习 Services。 在 Docker 容器内部,步骤如下。
有关详细信息,请参阅 Linux 上的 SQL Server 安装指南中的“受支持的平台”部分。
Important
本文涉及的是 SQL Server 2022 (16.x)。 关于Linux版SQL Server 2019,请参见“在Linux上安装SQL Server 2019 机器学习 Services(Python和R)”。 关于 Windows 上的 SQL Server,请参阅在 Windows 上安装 SQL Server 2022 机器学习服务(Python 和 R)。
安装前清单
安装 Linux 上的 SQL Server,然后验证安装。
查看 SQL Server Linux 存储库中的 Python 和 R 扩展。 如果你已经为数据库引擎安装配置了软件源仓库,你可以用相同的仓库注册来执行
mssql-server-extensibility包安装命令。应有用于运行 Transact-SQL (T-SQL) 命令的工具。
- 可以使用任何熟悉的SQL Server客户端工具连接到SQL Server实例, 例如 sqlcmd、SQL Server Management Studio (SSMS) 或 MSSQL 扩展(适用于 Visual Studio Code)。
在此安装过程中,将需要重启 SQL Server 实例。
包列表
在已连接 Internet 的设备上,将使用针对每个操作系统的包安装程序独立于数据库引擎下载和安装相应的包。
以下安装包适用于 Linux 上的 SQL Server 2022(16.x):
| 包名称 | 适用对象 | Description |
|---|---|---|
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 机器学习服务的终端用户许可协议(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 运行时
用 Linux 的 SQL Server 配置已安装的 R 运行时。 以下命令使用默认的R安装路径。 如果你在别处安装了R,请更新路径。
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重新启动
mssql-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重新启动
mssql-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
脱机安装
有关安装包的步骤,请按照脱机安装说明进行操作。 找到你的下载网站,然后按照上面的套餐列表下载特定的套餐。
Tip
一些包管理工具提供可帮助确定包依赖项的命令。 对于 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 运行时”部分的说明操作。