小编And*_*ott的帖子

在R中并行化SQL查询

我有六个SQL查询,我通过R编写脚本,每个查询需要很长时间(每个约30分钟).一旦每个查询返回I,然后操纵一些标准报告的数据.

我想做的是使用我的多核机器从R并行运行这些SQL请求.

我在带有Oracle DB的Windows机器上.我正在关注一篇博文,使用doSNOW和foreach来尝试拆分这些请求,这是我在stackoverflow上找到的最好的东西.

我已经能够让这个过程适用于foreach的非并行%do%版本而不是%dopar%.使用%dopar%,它只返回一个空集.下面是设置表并运行查询的代码,以便您可以看到发生了什么.如果基本代码太多,请提前道歉.

我看了一些其他的R包,但没有看到明显的解决方案.此外,如果你有更好的方法来管理这种过程,我有兴趣听到它 - 请记住,我是一名分析师,而不是一名计算机科学家.谢谢!

#Creating a cluster
library(doSNOW)
cl <- makeCluster(c("localhost","localhost"), type = "SOCK")
registerDoSNOW(cl)

#Connecting to database through RODBC
ch=odbcConnect("",pwd = "xxxxx", believeNRows=FALSE)
#Test connection
odbcGetInfo(ch)

#Creating database tables for example purposes
qryA1 <- "create table temptable(test int)" 
qryA2 <- "insert into temptable(test) values((1))" 
qryA3 <- "select * from temptable" 
qryA4 <- "drop table temptable" 
qryB1 <- "create table temptable2(test int)" 
qryB2 <- "insert into temptable2(test) values((2))" 
qryB3 <- "select * …
Run Code Online (Sandbox Code Playgroud)

sql parallel-processing multicore r

16
推荐指数
1
解决办法
6291
查看次数

标签 统计

multicore ×1

parallel-processing ×1

r ×1

sql ×1