将 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 文件