在R中更快地读取SQL表

问题描述 投票:0回答:1

我正在开发一个R闪亮的项目,我需要从我的Shiny应用程序中读取SQL表。我尝试过使用RODBC和RJDBC软件包,并且发现RJDBC更快。但它仍然需要花费大量时间阅读。

以下是我使用过的代码:

LocationOfJDBC <- "/usr/lib/sqlserver_jdbc/sqljdbc_4.1/enu/jre7/sqljdbc41.jar"
options(java.parameters = "-Xmx8048m")
drv <- JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver" ,  LocationOfJDBC ,identifier.quote="`")

df<-dbGetQuery(mydb, "Select char1,char2,char3,int4,date5 from table1")

上述查询大约需要90秒才能读取280万行和5列(3个字符,1个int和1个日期列)。

有没有更快的方法来读取R ??中的SQL表?

sql r shiny rodbc rjdbc
1个回答
0
投票

假设您已经尝试过明确的解决方案,例如正确的索引,我建议将大型sql表保存为磁盘上的快速文件传输格式。如果您需要在表上查询功能,请使用包fst;如果不需要,请使用包羽。比较两个包有各种线程。我首选的格式是fst,因为它允许从磁盘查询。

install.packages("fst")
library(fst)
?fst

理想情况下,除非您的闪亮服务器确实需要所有2.8米行,否则我会建议根据需要提取数据。

© www.soinside.com 2019 - 2024. All rights reserved.