将R连接到SQL Server数据库引擎

D.R*_*oca 6 sql-server r pentaho

在我的工作中,我安装了R-Studio(Microsoft R Open 3.2.5),并希望连接到Microsoft SQL Server数据库,使用我拥有的表运行脚本.

我是否有可能使用Pentaho连接到SQL Server数据库,然后使用对象执行R脚本来创建OLAP多维数据集?我需要一个包来连接SQL引擎吗?执行的步骤是什么?

我已经有了数据库的雪花arquitectura.使用事实表和状态表.但我不知道从哪里开始.

Mih*_*ošt 7

您可以使用至少4个库(RODBCrsqlserverRSQLServerRJDBC)直接从R连接到SQL Server 。

只要您有足够的RAM,就可以将数据导入R并在其中使用令人惊奇的dplyrdata.table包进行分析。另一方面,您可以仅连接到SQL Server,然后将SQL查询发送到服务器,然后在数据库中进行数据整理,然后将结果导入R以进行进一步(统计)分析和可视化。

  • 从2019年2月开始,RSQLServer的作者建议使用odbc软件包。这是RSQLServer的存档:https://github.com/imanuelcostigan/RSQLServer,并且在odbc包的链接中:https://github.com/r-dbi/odbc (3认同)

ASH*_*ASH 7

这样的事情应该有效:

library(RODBC)
dbconnection <- odbcDriverConnect("Driver=ODBC Driver 11 for SQL Server;Server=YourDBName\\SQLEXPRESS; Database=TestDB;Uid=; Pwd=; trusted_connection=yes")
initdata <- sqlQuery(dbconnection,paste("select * from MyTable;"))
odbcClose(dbconnection)
Run Code Online (Sandbox Code Playgroud)

看看这些链接:

RODBC odbcDriverConnect()连接错误

https://andersspur.wordpress.com/2013/11/26/connect-r-to-sql-server-2012-and-14/

最后,确保SQL Server已应用所有适当的权限.


ASH*_*ASH 6

这是使用 Windows 凭据连接到 SQL Server 的另一种方法。

library("RODBC")
#library("XLConnect")

dbhandle <- odbcDriverConnect('driver={SQL Server};server=Name_Of_Server;database=Name_Of_DB;trusted_connection=true')
currTableSQL<-paste("SELECT * From Your_Table",sep="")
currTableDF<-sqlQuery(dbhandle,currTableSQL)
Run Code Online (Sandbox Code Playgroud)

如果您想使用该库,请取消对 XLConnect 的注释。我觉得很多时候如果您使用 SQL Server,那么您也在使用 Excel。