r-如何从dbconnect数据库加速collect()



我正在从amazonaws服务器上的odbc驱动程序读取表。我在64位windows计算机上使用R 4.0.0。在家工作,使用公司的VPN,所以我的网速大约是17 Mbps下载。

我使用此语句连接到数据库con<-dbConnect(odbc::odbc((,";数据库名称";,超时=10(

我用这句话访问表格case_tbl<-tbl(con,dbplyr::in_schema("fhv_owner","case"((大小写<-收集(case_tbl(

该表有500K行和60列,所以它并不庞大,但下载大约需要2分钟。如果我的网络速度慢,有时需要30分钟。

有什么办法加快速度吗?也许是用data.table代替dplyr?

我试过过滤我选择的列,但有时我需要更多的列,必须重新运行。

也许我只是需要为更快的互联网付费。

谢谢,Jennifer

由于您在这里不做任何数据操作data.table都不会帮助您加快进程
要确保延迟是由于您的Internet连接速度,而与dbplyr无关,请直接使用DBI:

library(DBI)
con <- dbConnect(odbc::odbc(), "databasename", timeout = 10)
system.time({case_tbl <- dbGetQuery(con, "SELECT * FROM fhv_owner.case")})

根据您的用例和数据库系统,用RPostgres::Postgres()替换odbc::odbc()可能是有意义的(如果您有postgres数据库,否则还有其他包…(。这至少帮了我很多!

最新更新