使用 dplyr 0.7 和 R 连接到 Microsoft SQL 数据库

罗伯特·迈尔斯

我正在尝试将dplyr/ dbplyr( version 0.7) 与数据库 ( Microsoft SQL Server 2014) 一起使用。我已经能够连接到它并使用RODBC,DBIodbc提取数据当我尝试将 dplyr 动词直接与 base 一起使用时,问题就出现了。

当我尝试使用时dplyr,出现以下错误:

Error in new_result(connection@ptr, statement) : std::bad_alloc

我在dplyr repo上提出了这个问题,Hadley 告诉我这很可能是一个odbc错误。当我repo提出问题时,Jim 非常有帮助odbc,但无法解决问题。

要清楚:

RODBC::sqlQuery()并且DBI::dbGetQuery()两者都有效:我按照我的预期获得了一个数据帧,并且我可以使用SQL查询来获得我想要的任何东西。我只在尝试使用dplyr动词时遇到内存分配错误(实际上,即使我尝试tbl())。有很多数据,但我正在查询其中的一个子集,它非常适合 R 内存。

理想情况下,我宁愿保持数据出来的r内存完全,如果可能的话。这样做的原因是我正在构建一个Shiny应用程序,应用程序将根据用户选择的数据方面生成绘图等。可以想象,每次用户执行此操作时,连接到数据库、发送查询和接收数据都会使应用程序变得有些无用,因为它太慢了。我的理想情况是这样的RStudio

my_db <- src_mysql(
  dbname = "shinydemo",
  host = "shiny-demo.csa7qlmguqrf.us-east-1.rds.amazonaws.com",
  user = "guest",
  password = "guest"
)

> my_db %>% tbl("City") %>% head(5)
# Source:   lazy query [?? x 5]
# Database: mysql 10.0.17-MariaDB [[email protected]:/shinydemo]
     ID           Name CountryCode      District Population
  <dbl>          <chr>       <chr>         <chr>      <dbl>
1     1          Kabul         AFG         Kabol    1780000
2     2       Qandahar         AFG      Qandahar     237500
3     3          Herat         AFG         Herat     186800
4     4 Mazar-e-Sharif         AFG         Balkh     127800
5     5      Amsterdam         NLD Noord-Holland     731200

但是,以我的基地我无法做到这一点。任何帮助将表示赞赏。

罗伯特·迈尔斯

叹。(回答任何遇到类似问题的人。)

原来这是我试图访问的特定表的问题。

这张表可以很好地恢复,RODBC并且没有问题DBI/odbc,但是一旦我使用dplyr它就会吐出这个错误。

数据库中的其他表可以很好地使用dplyr,因此它必须与此特定表有关。更糟糕的是,我不知道为什么。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Python连接到Microsoft SQL Server

无法使用SQuirrelSQL连接到SQL数据库

无法使用JDBC连接到Sql Server数据库

使用存储的凭据通过dplyr连接到MySQL数据库

无法使用docker-compose与mysql和php 7连接到数据库

使用Tedious和Node JS无法连接到本地SQL Server数据库

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

C#使用服务器的用户名和密码连接到本地SQL Server数据库

如何使用PHP从网站连接到Microsoft SQL数据库

我正在尝试使用node和hapi.js连接以连接到我的SQL Server数据库

如何使用C#和SQL Server连接到数据库

C,SQL Server和mysqlclient-程序无法使用mysql_real_connect()连接到本地数据库

使用R连接到Microsoft SQL Server(视图位于Microsoft SQL Server Management Studio(SSMS)中的数据库中

如何在OSX和Windows VM上使用R + DBI + ODBC连接到Teradata数据库

创建数据库后无法连接到Microsoft SQL Server数据库(“系统找不到指定的文件”)

将Django连接到Microsoft SQL数据库

如何使用Microsoft Silverlight连接到我的SQL Azure数据库?

在Microsoft Visual Studio中使用Python连接到数据库

使用Java创建并连接到SQL数据库

使用Java JDBC连接到MS SQL数据库

使用RODBC将R连接到Microsoft SQL Server

使用Hibertane和JSP连接到数据库

使用 SQL 和 PHP 连接到数据库

使用 sequelize 连接到本地 SQL Server 数据库

如何使用函数和 sqlalchemy 连接到数据库

尝试使用 Peewee (python) 连接到 Microsoft SQL 数据库

无法使用 codeigniter 连接到 SQL SERVER 数据库

如何使用 Angular Material Paginator 和连接到 SQL 数据库的节点 js 后端获取前端的文档计数?

使用 R 连接到 Oracle 数据库实例