我只是想知道 基本R集成 和 高级R集成 功能之间的区别是什么官方MS-SQL Server 2016网站上提到的?
与组件的比较表的链接是here。
以下代码属于哪个类别?
DROP TABLE IF EXISTS #TempTable
CREATE TABLE #TempTable (x NVARCHAR(MAX), y NVARCHAR(MAX))
INSERT INTO #TempTable
EXEC [dbo].[proc_ReturnDataForCurveGraphsDoubleNorm]
@sRAWFILEID = @sRAWFILEID,
@PREBLEACHVALUES = @sPREBLEACHVALUES,
@BLEACHVALUES = @sBLEACHVALUES,
@INITIALBLEACHVALUES = @sINITIALBLEACHVALUES
BEGIN TRY
execute sp_execute_external_script
@language = N'R'
, @script = N'
df <- as.data.frame(c(InputDataSet));
xdata <- as.numeric(as.character(df[,1]));
ydata <- as.numeric(as.character(df[,2]));
m = nls(ydata ~ yo - a * exp(-b * xdata),
data = df,
start = list(yo = 0.9, a = 0.5, b = 0.563),
trace = F,
control = list(maxiter = 1000, warnOnly = TRUE),
lower = list(0, 0, 0),
upper = list(1, 100, 100), algorith = "port");
param <- coef(m);
RSS.p <- sum(residuals(m)^2);
TSS <- sum((ydata - mean(ydata))^2);
r_square <- 1 - (RSS.p/TSS);
yo <- param[1];
a <- param[2];
b <- param[3];
xdata2 <- seq(0,max(xdata),0.01);
fe2 <- yo - a*exp(-b*xdata2);
mf <- ( (yo - fe2[1]) / (1 - fe2[1] ) ) ;
thalf <- log(2) / b;
OutputDataSet <- data.frame( round( yo , 4 ),
round( a, 4),
round( b, 4),
round( mf , 2 ),
round( thalf , 2 ),
round( r_square, 2) );
'
, @input_data_1 = N' SELECT * FROM #TempTable;
WITH RESULT SETS (([yo] NVARCHAR(MAX),
[a] NVARCHAR(MAX),
[b] NVARCHAR(MAX),
[mobile_fraction] NVARCHAR(MAX),
[t_half] NVARCHAR(MAX),
[r_square] NVARCHAR(MAX)));
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_MESSAGE() AS ErrorMessage;
END CATCH
END
答案 0 :(得分:2)
您应该查看R Services部分以获取此类信息,特别是Differences in R Features between Editions of SQL Server。
据此,Standard和Express具有流程限制和较低的可扩展性。您的代码将运行但速度较慢,并且在运行繁重的培训任务时可能会使服务器饱和:
但是,Standard Edition不支持资源调控器。使用资源治理是自定义服务器资源以支持各种R工作负载(如模型培训和评分)的最佳方法。
与企业版和开发人员版相比,标准版还提供有限的性能和可伸缩性。具体来说,所有ScaleR功能和包都包含在Standard Edition中,但启动和管理R脚本的服务在其可以使用的进程数量方面受到限制。此外,脚本处理的数据必须适合内存。
您可以使用SQL Server Express测试差异,例如在VM中:
具有高级服务的Express Edition
Express Edition受到与Standard Edition相同的限制。
答案 1 :(得分:1)
根据我在此MSDN documentation中的内容,SQL Server中提供了许多R支持层。虽然SQL Server企业版拥有最强大的R支持,但我没有看到任何名为“高级R集成”的内容:
包括R Services,用于SQL Server 2016中的数据库内分析,以及Windows上的R Server(独立),可用于连接各种数据库并提取数据以进行大规模分析,但是不在数据库中运行。还包括DeployR,可用于将R脚本和模型部署为Web服务。
没有限制。通过并行化和流式传输优化性能和可扩展性。通过使用ScaleR函数,对不适合可用内存的大型数据集进行Suopprts分析。
SQL Server中的数据库内分析支持外部脚本的资源治理,以自定义服务器资源使用情况。
所有其他版本的SQL Server都具有比此更有限的R支持,只有上述功能的一部分。据推测,其中一个将被认为只有基本的整合。