将 Microsoft SQL Server 中的数据读入 R

Posted

技术标签:

【中文标题】将 Microsoft SQL Server 中的数据读入 R【英文标题】:Reading data from Microsoft SQL Server into R 【发布时间】:2010-10-14 12:02:27 【问题描述】:

是否可以从R接口读取存储在MS SQL server中的数据?

如果是这样的话,如果有人能告诉我这样做的方法,我也将不胜感激。

【问题讨论】:

RODBC?看看R Data Import/Export manual。 【参考方案1】:

已经试过RODBC 包了吗?

http://cran.r-project.org/web/packages/RODBC/index.html

还有RJDBC 包:http://www.rforge.net/RJDBC/

另见: http://www.r-bloggers.com/connecting-to-sql-server-from-r-using-rjdbc/

【讨论】:

【参考方案2】:

我已经应用了其他用户建议的 RODBC 功能。 LinkSQL Server RODBC Connection

library(RODBC)
dbhandle <- odbcDriverConnect('driver=SQL 
Server;server=mysqlhost;database=mydbname;trusted_connection=true')
res <- sqlQuery(dbhandle, 'select * from information_schema.tables')

根据您的数据表更改两个变量。 'server=mysqlhost;database=mydbname'

【讨论】:

【参考方案3】:

Niko,你运行的是什么操作系统?您的问题的答案因您使用的平台而异。

如果您使用的是 Windows(任何条带),通过 ODBC (RODBC) 连接到 MSSQL Server 是最有意义的。当我连接到 Linux 上的 MSSQL Server 时,我按照 Joris 的建议使用 JDBC。我认为 JDBC 也是 Mac 的最佳解决方案,但我很可能错了。

【讨论】:

Linux 上的 freetds 包也对我有用,与 RODBC 结合使用。 我什至没有想到 freetds,但你说得对,那将是一个不错的选择。我通常觉得 JDBC 连接更容易设置,但它也需要 Java,有些人觉得这令人沮丧/难以使用。 也许你可以看看新的有前途的选项rsqlserver package。【参考方案4】:

outperform RODBC and RJDBC 似乎还有另一个选项

rsqlserver agstudy 编写的包。

安装:

require(devtools)
install_github("rClr", 'jmp75')
install_github('rsqlserver', 'agstudy',args='--no-multiarch')

【讨论】:

并且根据另一条评论不再可用。 RSQLServer != rsqlserver 这似乎是真的【参考方案5】:

允许您连接到 MSSQL 数据库的最新库是 RSQLServer

可以在GitHub和CRAN上找到。

【讨论】:

此软件包似乎不再可用。 >> 软件包“RSQLServer”已从 CRAN 存储库中删除。 >> 可以从存档中获得以前可用的版本。 >> 存档于 2016-12-01,尽管有提醒,但检查问题仍未得到纠正。来源:cran.r-project.org/web/packages/RSQLServer/index.html【参考方案6】:

您可以使用 DBI 包连接到 SQL Server,我认为它比 RODBC 效果更好。 DBI 是关系数据库的数据库接口包。对于 SQL,我将它与 odbc 包一起使用,如下例所示。

访问此页面了解完整详情:Database Queries with R

一个例子如下

library(DBI) library(odbc) con <- dbConnect(odbc::odbc(), .connection_string = "driver=SQL Server; server= ServerName; database=DatabaseName; trusted_conncetion=true")) dbGetQuery(con,'Select * from Table')

【讨论】:

rsqlserver 在我使用的时候要快得多【参考方案7】:

库(“RODBC”)

dbhandle ;database=;trusted_connection=true')

currTableSQL

currTableDF

【讨论】:

以上是关于将 Microsoft SQL Server 中的数据读入 R的主要内容,如果未能解决你的问题,请参考以下文章

我可以将 PIVOT 与 Microsoft SQL Server 中的内部联接结合起来吗?

插入前Microsoft SQL Server转换中的存储过程

将 SQL Server 表导出到 Microsoft Excel xlsx 文件

如何轻松连接表 Microsoft SQL Server?

如何在 Microsoft SQL Server 中“取消堆叠”SQL 中的数据

在 Kitura 中使用 Microsoft SQL Server