2016-12-09 69 views
4

支持的功能我只是想知道是什麼,是在官方MS-SQL服務器2016網站上所提到基礎研發一體化先進的R集成特徵之間的區別?版本和SQL服務器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

你應該去R Services節這樣的信息,特別是Differences in R Features between Editions of SQL Server

據此,Standard和Express具有流程限制和較低的可擴展性。您的代碼將運行,但它會慢一些,並運行一個沉重的訓練任務時會達到飽和的服務器:

但是,標準版不支持資源調控。使用資源管理是定製服務器資源以支持各種R工作負載(如模型培訓和評分)的最佳方式。

與Enterprise Edition和Developer Edition相比,標準版還提供有限的性能和可擴展性。具體而言,所有ScaleR函數和包都包含在Standard Edition中,但啓動和管理R腳本的服務在其可以使用的進程數量方面受到限制。而且,腳本處理的數據必須適合內存。

您可以測試與SQL Server Express的差異,例如,在VM:

Express Edition與高級服務

Express版本是受同樣的限制標準版。

+0

感謝您指向鏈接。它並沒有說任何有關'web'版本支持哪些功能的內容。 – steadyfish

+0

網絡版用於*網站*網站。這是僅通過託管商銷售的版本,而不是您可以自行安裝的版本。它只提供基本的R集成。您可以在[SQL Server 2016的版本和支持的功能]中檢查各種版本的功能(https://docs.microsoft.com/zh-cn/sql/sql-server/editions-and-supported-features-對於-SQL服務器-2016) –

1

從我在這MSDN documentation閱讀,也有一些在SQL Server中提供[R支持等級的。我沒有看到任何所謂的「高級R集成」,儘管SQL Server企業版擁有最強大的研發支持:

包括兩個R服務,在SQL Server 2016數據庫內分析,以及R服務器(Standalone),可用於連接到各種數據庫並提取數據以進行大規模分析,但不能在數據庫中運行。還包括DeployR,可用於將R腳本和模型部署爲Web服務。

沒有限制。通過並行化和流式傳輸優化了性能和可擴展性。通過使用ScaleR函數,對不適合可用內存的大型數據集進行Suopprts分析。

SQL Server中的數據庫內分析支持外部腳本的資源管理以自定義服務器資源使用情況。

所有其他版本的SQL Server都有比這更少的R支持,只有上述功能的一部分。據推測,其中一人將被認爲只有基本的整合。