[R语言]foreach和doParallel包实现多个数据库同时查询

R语言在进行数据库查询时,每执行一条语句,都会阻塞。直到查询语句返回结果之后,才会进行下一条语句。

为了能够实现同时对多个数据库进行查询,以节省顺序执行下来的时间,首先考虑通过多线程来进行数据库查询。

不过多数据库同时查询,多个结果合并起来过大的话,本地机器的内存可能是一个风险点,心里要对可能需要的内存有所把握。

R下进行多线程依赖与doParallel包和foreach包。

> install.packages(‘doParallel‘)

> install.packages(‘foreach‘)

> library(doParalled)

> library(foreach)
> library(RMySQL)
# 生成2个集群,多少个集群结合本地机器硬件配置和自己需要 > cl <- makeCluster(2) 

# 注册多线程,个人理解,parallel包应该是声明在后端开启多核处理模式,让硬件准备环境,分配资源 > registerDoParallel(cl) 

# %dopar%是foreach包的语法格式,表示多线程运行.# foreach默认返回一个list,也可以指定一个函数,在线程处理完成后直接对结果进行rbind,sum等组合操作。更多查看?foreach
> qdata <- foreach(i=1:2) %dopar% {
  if (i == 1) conn <- connectdb_1()
  else conn <- connectdb_2()
  re <- dbGetQuery(conn, query)
  dbDisconnect(conn)
  return(re)
}
# 关闭集群
> stopCluster(cl)
时间: 2024-09-28 19:20:39

[R语言]foreach和doParallel包实现多个数据库同时查询的相关文章

R语言量化投资常用包总结

前言 总是被很多的人问,为什么用R语言做量化投资,R.Python.Matlab比起来哪个更好?其实,答案很简单,你哪个用的熟就用哪个,工具是用来提升效率的,结果才是你会得到的.认准一门语言,坚持把它做好你就会成长. 每个领域,每种编程语言都用推动它前进的人,跟上牛人的脚步,你慢慢地也会变牛. 目录 为什么用R语言做量化投资? 常用量化投资工具包 完整文章:http://blog.fens.me/r-quant-packages/

R语言自带数据包

Datasets(r自带数据包) 作者:王书宇 作品来源:百度百科 dating from #配对的病例对照数据,用于条件logistic回归 InsectSprays #使用不同杀虫剂时昆虫数目 iris #3种鸢尾花形态数据 LifeCycleSavings #50个国家的存款率 longley #强共线性的宏观经济数据 morley #光速测量试验数据 mtcars #32辆汽车在11个指标上的数据 OrchardSprays #使用拉丁方设计研究不同喷雾剂对蜜蜂的影响 PlantGrow

R语言-查看加载包、卸除加载包及安装包与卸载包

在R语言中,常需要看哪个包加载了或是看多个相似功能的包,看到底是哪个包在起作用,通过加载和卸除后进行运行比较分析. 1.查看已加载的包 >(.packages()) 注意外面的括号和前面的点不能省. 2.卸除已加载的包 如卸除RMySQL包 >detach("package:RMySQL") 注意是卸除,不是卸载,也就是说不是把包从R运行环境中彻底删除,只是不希望该包被加载使用. 在包使用函数冲突,检验函数依赖时比较有用. 3.安装包 >install.package

R语言:利用caret包中的dummyVars函数进行虚拟变量处理

dummyVars函数:dummyVars creates a full set of dummy variables (i.e. less than full rank parameterization----建立一套完整的虚拟变量 先举一个简单的例子: survey<-data.frame(service=c("very unhappy","unhappy","neutral","happy","very

R语言爬虫:Rvest包函数介绍

Rvest 包中常用函数一览: 函数 作用 read_html() 读取 html 页面 html_nodes() 提取所有符合条件的节点 html_node() 返回一个变量长度相等的list,相当于对html_nodes()取[[1]]操作 html_table() 获取 table 标签中的表格,默认参数trim=T,设置header=T可以包含表头,返回数据框 html_text() 提取标签包含的文本,令参数trim=T,可以去除首尾的空格 html_attrs(nodes) 提取指定

【数据分析 R语言实战】学习笔记 第三章 数据预处理 (下)

3.3缺失值处理 R中缺失值以NA表示,判断数据是否存在缺失值的函数有两个,最基本的函数是is.na()它可以应用于向量.数据框等多种对象,返回逻辑值. > attach(data) The following objects are masked fromdata (pos = 3): city, price, salary > data$salary=replace(salary,salary>5,NA) > is.na(salary) [1] FALSEFALSE TRUE

NLP︱R语言实现word2vec(词向量)经验总结(消除歧义、词向量的可加性)

R语言由于效率问题,实现自然语言处理的分析会受到一定的影响,如何提高效率以及提升词向量的精度是在当前软件环境下,比较需要解决的问题. 笔者认为还存在的问题有: 1.如何在R语言环境下,大规模语料提高运行效率? 2.如何提高词向量的精度,或者说如何衡量词向量优劣程度? 3.词向量的功能性作用还有哪些值得开发? 4.关于语义中的歧义问题如何消除? 5.词向量从"词"往"短语"的跨越? 转载请注明出处以及作者(Matt),欢迎喜欢自然语言处理一起讨论~ ---------

R语言基础编程技巧汇编 - 27

1.      向量循环移位 library("magic") x <- 1:10 magic::shift(x,1) # [1] 10 1  2  3 4  5  6 7  8  9 magic::shift(x,1) # [1] 10 1  2  3 4  5  6 7  8  9 magic::shift(x,2) # [1] 9 10  1  2 3  4  5 6  7  8 magic::shift(x,3) # [1] 8  9 10  1 2  3  4 5  6

R语言基础编程技巧汇编 - 25

1.      使用rClr包访问.NET库 下载地址:http://r2clr.codeplex.com/ library(rClr) clrLoadAssembly('c:/path/to/myassembly.dll') myObj <-clrNew('MyNamespace.MyClass,MyAssemblyName') clrCall(myObj, 'SayHelloWorld') 2.      向C语言代码传递数据框参数示例 data.frame是一个list对象 #includ