r - SQL 来自多个访问数据库的大型数据集

r - SQL on large datasets from several access databases

我正在进行流程改进,将在 r 中使用 SQL 来处理大型数据集。目前,源数据存储在几个不同的 MS Access 数据库中。我最初的做法是使用 RODBC 将所有源数据读入 r,然后根据需要使用 sqldf() 汇总数据。不过,在我开始使用 sqldf() 之前,我 运行 内存不足。

有没有更有效的方法让我使用 r 完成这个任务?我一直在寻找一种方法来 运行 SQL 查询连接单独的数据库 before 将它们读入 r,但到目前为止我还没有找到任何支持此功能的软件包。

如果您的数据在 a 数据库中 dplyrtidyverse 的一部分)将是您正在寻找的工具。

您可以使用它连接到本地/远程数据库,将您的连接/过滤器/任何东西推送到那里,collect() 结果作为数据框。您会在 http://db.rstudio.com/dplyr/

上找到该过程的简洁总结

我不太确定 - 但它不是 R 问题而是 MS Access 问题 - 是跨 多个 MS Access 数据库访问数据的方法。

您可能需要为此编写自定义 SQL 代码并通过 DBI::dbGetQuery() 将其传递到其中一个数据库并让 MS Access 处理数据库 link.

您发布的 link 看起来很有希望。如果它没有产生预期的结果,请考虑 link 将一个 Access 数据库连接到所有其他数据库。链接几乎不占用内存。联合 link 并从那里获取数据。

# Load RODBC package
library(RODBC)

# Connect to Access db
channel <- odbcConnectAccess("C:/Documents/Name_Of_My_Access_Database")

# Get data
data <- sqlQuery(channel , paste ("select * from Name_of_table_in_my_database"))

这些 URL 也可能有帮助。

https://www.r-bloggers.com/getting-access-data-into-r/

How to connect R with Access database in 64-bit Window?