如何用R连接到SQL Server?

时间:2017-07-21 11:38:52

标签: sql-server r odbc

我想使用与SQL Server数据仓库中存储的数据的连接在R中创建模型。 我尝试使用返回的RevoScaleR库

  

包RevoScaleR不可用(对于R版本3.4.1)

所以,我编辑了ODBC库的连接字符串(在下面的代码中给出):

install.packages("RevoScaleR")
#require("RevoScaleR")

if (!require("RODBC"))
    install.packages("RODBC")

conn <- odbcDriverConnect(connection="Driver={SQL Server Native Client 11.0}; Server=CZPHADDWH01/DEV; Database=DWH_Staging; trusted_connection=true")

sqlWait <- TRUE;
sqlConsoleOutput <- FALSE;
cc <- RxInSqlServer(connectionString = conn, wait = sqlWait)
rxSetComputeContext(cc)

train_query <- "SELECT TOP(10000) * FROM dim.Contract"
formula <- as.formula("Cosi ~ ContractID + ApprovedLoanAmount + ApprovedLoadDuration")
forest_model <- rxDForest(formula = formula,
                            data = train_query,
                            nTree = 20,
                            maxDepth = 32,
                            mTry = 3,
                            seed = 5,
                            verbose = 1,
                            reportProgress = 1)
rxDForest_model <- as.raw(serialize(forest_model, connection = conn))

lenght(rxDForest_model)

然而:

  

包&#39; RODBC&#39;成功解压缩并检查MD5总和

     

下载的二进制包在     C:\ Users \用户sjirak \应用程序数据\本地的\ Temp \ Rtmpqa9iKN \ downloaded_pa​​ckages   odbcDriverConnect出错(connection =&#34; Driver = {SQL Server Native   客户端11.0};服务器= CZPHADDWH01 / DEV;数据库= DWH_Staging;   trusted_connection = true&#34;):找不到功能   &#34; odbcDriverConnect&#34;在库中(包,lib.loc = lib.loc,   character.only = TRUE,logical.return = TRUE,:没有   包裹名为&#39; RODBC&#39;   任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

查看ODBC的文档,我看到以下函数

odbc-package 
dbConnect,OdbcDriver-method 
dbUnQuoteIdentifier 
odbc 
odbc-tables 
OdbcConnection 
odbcConnectionActions 
odbcConnectionIcon 
odbcDataType 
OdbcDriver 
odbcListColumns 
odbcListDataSources 
odbcListDrivers 
odbcListObjects 
odbcListObjectTypes 
odbcPreviewObject 
OdbcResult 
odbcSetTransactionIsolationLevel 
test_roundtrip

因此我在这个列表中看不到你的功能。这可能就是为什么......

因此,请检查文档中是否有正确的功能。