SQL Server 2016的版本和支持的功能

时间:2016-12-09 14:36:20

标签: sql-server r msdn sql-server-2016

我只是想知道 基本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

2 个答案:

答案 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支持,只有上述功能的一部分。据推测,其中一个将被认为只有基本的整合。