http://www.ganguoyuan.com/08/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98%E4%B9%8Br%E4%B8%8Esql/
转
最近在数据挖掘专业网站 KDnuggets 上刊出了2011年度关于数据挖掘/分析语言流行度的调查,不出意料R、SQL、Python果然排在了前三位。当然有看官说了,参与调查的样本数量太 少,而且以登录KDnuggets网站的用户为主,样本的信息显然是有偏的。实话说,我也对KDnuggets网站的Poll持保留态度,但它的结果毕竟 代表了某一类人群的使用偏好,尤其是在语言角度。
我们看排名前5位的语言:
后四种语言同R语言还都有一些关系,闲扯起来还真是没完没了,这里就不再赘述,各位可以在搜索引擎上搜索R+XXX。如果我们将范围限制在数据挖掘这个主题,R同SQL的关系则变得非常非常紧密。
众所周知,R的强项在于灵活的算法,以及开发速度,但其所有的计算都是在内存中进行,一旦数据量达到了内存上限,基本上就是叫天天不灵,叫地地不应 了。所以在使用R做数据挖掘时,就必须考虑使用其他的数据工具弥补R在这方面的劣势。尤其是在商业应用上,不能搭建R环境的条件下,SQL语言是提供挖掘 结果的不二选择。
支持SQL的商用数据库比如Oracle、DB2性能优异,但对系统的占用非常厉害,假如本地装了Oracle,又开了点其他应用,2G的内存很快 就会吃到1.5G甚至以上,再想用R做分析那只能用“捉襟见肘”这个词来形容了。当然如果在办公条件下有相应的服务器环境最好,在某些应用环境下,甚至可 以通过本地多开R进程来达到并行计算的目的。
或者本地分析比较多,但数据量又时常上到百兆,虽然R也能够处理,但依然建议将数据移植到本地构建的轻量数据库环境,比如MySQL环境。从我的经验上看,虽然MySQL对比Oracle、DB2来说小巧很多,但在同R语言配合的本地应用上,性能更加有保证。
有了支持SQL的数据库环境,就要聊一聊R语言到底和SQL有什么关系:
说句题外话:不知道哪位看官见过70万字符长度的庞大SQL语句——是的,你没看错,70w,R转义的,可以执行,对于数据库而言不过是半分钟的事情。
http://www.chinakdd.com/portal.php?mod=view&aid=125704