如何将大型数据库表导入R

时间:2019-05-06 13:02:28

标签: r database oracle

我正在尝试将大型数据库表导入R以进行一些全局分析。 我使用ROracle连接到Oracle DB,并使用dbGetquery。 直接在查询中进行最小选择和必要的where子句以减小数据集的范围,但对于1,200万行,它仍然是40列。

我的PC只有8GB的RAM,我该如何处理? 有没有办法将这些数据存储在磁盘上而不是RAM上?或类似的方式? SAS中所做的相同的事情很好用。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

一些想法:

  1. 也许可以在服务器端进行一些汇总?

  2. 您将使用R中的此数据来执行某些操作,对不对?因此,您可以尝试不加载数据,而是创建tbl对象并在R中进行操作和聚合

    library(dplyr)

    my_tbl <- 'SELECT ... FROM ...' %>% sql() %>% tbl(con, .)

其中con是您的联系人

答案 1 :(得分:0)

这里有几个想法供您考虑。

library(RODBC)
dbconnection <- odbcDriverConnect("Driver=ODBC Driver 11 for SQL Server;Server=Server_Name; Database=DB_Name;Uid=; Pwd=; trusted_connection=yes")
initdata <- sqlQuery(dbconnection,paste("select * from MyTable Where Name = 'Asher';"))
odbcClose(channel)

如果您可以将表格导出为CSV文件...

require(sqldf)
df <- read.csv.sql("C:\\your_path\\CSV1.csv", "select * from file where Name='Asher'")
df
相关问题