我只是想知道这是否可行。我已将 R 服务(数据库中)与 SQL Server 2016(在 SP1+ CU1 处修补)一起安装。
我注意到 R 服务版本是 3.2.2,您可以运行以下脚本来检查
declare @v varchar(100);
exec sp_execute_external_script @language=N'R'
, @script = N'v <- toString(getRversion())'
, @params = N'@v varchar(100) output'
, @v = @v out;
print @v;
-- returns 3.2.2
但我也安装了 Microsoft R 客户端,并注意到它的 R 服务引擎版本为:3. 3 .2。
所以我的问题是“SQL Server R 服务(数据库内)现在支持 R 版本 3.3 .2吗?” 如果是这样,我该如何升级它?如果没有,我想我会等到 MS 发布更新。
我阅读了MSDN,其中提到了使用sqlBindR.exe
来进行更新,但是这个工具仅适用于我没有安装的 Windows R 服务器,我什至怀疑如果我安装了它,它是否会更新数据库R 服务。
我遇到了同样的问题(当尝试按照使用 sqlBindR.exe 升级 R Services 实例中描述的步骤时)。我找不到任何
SQLBindR.exe
.我的一个朋友向我指出,我必须明确安装“Microsoft R Server”,而不是作为 SQL Server 安装的一部分,而是作为单独的下载。
有关如何下载 Microsoft R Server 的所有选项都在 MSDN 上的一篇博文中进行了描述,Heidi Steen为 Windows 运行 Microsoft R Server 。
下载和安装在几分钟内完成。SQLBindR 花了一些时间。瞧:现在下面的脚本向我展示了我正在寻找的东西。:-)
SQL Server 2016 CU14 及更高版本会将 R Services(在数据库中)升级到 3.5.2 或更高版本。您可以在此处下载 CU14:catalog.update.microsoft.com/ ...。
然后您需要更改默认的 R 语言运行时版本。这可以使用
C:\Program Files\Microsoft SQL Server\MSSQL13.xx\R_SERVICES.x.x\library\RevoScaleR\rxLibs\x64\RegisterRext.exe
命令行程序来完成。请务必使用RegisterRext.exe
包含最新版本 R_SERVICES 的文件夹中的程序。下面是一个示例,假设安装了 SQL Server 的默认实例并且 R_SERVICES 是 3.5 版:cd "C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES.3.5\library\RevoScaleR\rxLibs\x64"
.\RegisterRext.exe /configure /rhome:"C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES.3.5" /instance:MSSQLSERVER
您还可以使用该选项删除以前的运行时版本。
/cleanup
Microsoft 文档中的教程也适用于 SQL Server 2017(CU22 及更高版本),适用于 Python(仅限 2017)和 R。
社区维基回答:
我认为MSDN相当清楚。R 安装程序位于 SQL Server 2016 安装介质上;它是“安装”选项卡上的最后一项,称为“新 R 服务器(独立)安装”。
或者,您可以按照在没有 Internet 访问的情况下安装 R 组件的说明进行操作。如果要确认,请在 VM 上练习。
我同意MEhrenmueller的回答,但据我了解,绑定服务附带 R-server,这意味着昂贵的企业许可证。此外,当我“解除绑定”我的 R 数据库时,我的 R 数据库文件夹被完全擦除。我不得不重新安装 SQL Server。
我期待 R in-database 可以使用 SP1 或 CU 进行更新,但实际上从我的测试来看似乎并非如此。不幸的是,我不记得告诉我这一点的消息来源。
所以实际上从我的测试中(通过 SP 或 CU 升级,或绑定)我目前看不到这个问题的解决方案。