SQL Server中安装机器学习
SQL Server自2016版开始支持机器学习,但2016版支持安装R语音,从SQL Server 2017版开始支持Python语音的机器学习,让我们安装体验一把吧。
1.打开SQL Server安装程序,在机器学习服务和语言扩展中选择要安装的Python语言

2.安装完成后会在SQL Server所在的文件夹路径多出一个python_Services文件夹

3.安装完成后在SQL Server启用sp_execute_external_script
sp_configure 'external scripts enabled' --启用外部脚本,设置config_value为1 EXEC sp_configure 'external scripts enabled', 1 RECONFIGURE WITH OVERRIDE
4.在SSMS中执行下面这段测试Python语言命令的时候
EXECUTE sp_execute_external_script @language = N'Python'
, @script = N'
a = 1
b = 2
c = a/b
d = a*b
print(c, d)
'
执行完成后有可能报错:
Msg 39021, Level 16, State 1, Line 0
无法启动“Python”脚本的运行时。请检查“Python”运行时的配置。
Msg 39019, Level 16, State 2, Line 0
发生外部脚本错误:
错误原因:安装路径中出现了空格
解决方法:
1.找到pythonlauncher.config文件,如我的地址为:
D:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\pythonlauncher.config
2.使用操作系统管理员权限启动记事本(notepad),打开pythonlauncher.config,找到WORKING_DIRECTORY这一项修改为一个不带空格的文件夹路径,这里我使用了自定义的一个文件夹D:\SQLPythonWorkspace\ExtensibilityData(并把文件复制一份过来)
修改如下:

复制ExtensibilityData文件(改文件在SQL Server实例的安装路径下,不在Python_Servics路径下):

到D盘(此地址为pythonlauncher.config文件中配置的地址):

3.配置D:\SQLPythonWorkspace文件权限,赋予SQLRUserGroup和MSSQLLaunchpad

4.找到registerRext.exe,需要在命令行使用该命令卸载,重新注册下SQL Server实例


5.使用管理员身份打开命令行工具,导航到该文件夹下:

6.执行卸载命令:
registerRext.exe /uninstall /instance:MSSQLSERVER
7.执行安装命令
RegisterRExt.exe /install /instance:MSSQLSERVER
8.重新测试:
EXECUTE sp_execute_external_script @language = N'Python'
, @script = N'
a = 1
b = 2
c = a/b
d = a*b
print(c, d)
'
9. 结果如下,Python语言模块成功运行!

总结:在SQL Server中首次安装使用机器学习,难度有点大,希望微软以后的版本(目前使用的SQL server版本是2019)中可以改进这一点。希望本帖能帮助那些想要体验SQL Server机器学习的同学,在安装过程中少走一些弯路。


浙公网安备 33010602011771号