今天看到刘思喆 @bjt 大佬多年前的一篇博文 数据挖掘之R与SQL提到的R与SQL进行交互的内容,发现其中一段话很有意思,恰巧最近在学习数据库而且COS论坛上少有类似帖子,摘录在此:
有了支持SQL的数据库环境,就要聊一聊R语言到底和SQL有什么关系:
- 各大数据库厂商已经开发了相关的支持R语言的数据挖掘套件,比如Oracle的RODM,Teradata的 teradataR等。
- R本身就可以通过扩展包来对数据库执行SQL,这时你可以把R语言作为调度环境。R的计算过程结果可以直接作为参数传递到数据库中,并将相应的结果返回,供R环境使用。
- 通过sqldf包,在R内部使用标准SQL对数据进行预处理,包括group by,order by,join,where等操作。
- 当然R最重要的用途是将数据挖掘的结果转义为标准SQL语言,利用数据库来实现挖掘结果。当然有人说了,不是有pmml可以将模型嵌入到数据库么?!扯!到现在我也没见pmml成为应用标准,老老实实的将模型结果转义到SQL才是王道。比如用于概率预测的Logistic回归或者分类模型的Tree-based Models,这些模型的转义工作都不难,这样最终的工程实施都脱离了R环境,更具通用性,且利用了数据库的高速性能。
以上共4点,第1点应该是数据库场上提供的产品;第2点大抵是使用R包连接数据库,并对数据库进行操作,如dbplyr 的一系列包;第3点是耳熟能详的在R中使用SQL查询语言。
我不太理解的就是第4点了,如何将 数据挖掘的结果转义为标准SQL语言 呢? 这样做相当于将算法 翻译 成SQL版本在SQL中跑一遍吗?在谷歌搜索相关的内容,我只搜到了转换 R 代码以在 SQL Server(数据库内)实例中执行这篇文章。那么请问这种 R模型转义为SQL 具体如何实施,并在业界中如何应用呢?
P.S. 2019年上海R会讲到的 sql flow工具似乎就是提供在sql中进行机器学习的一种解决方案,似乎相关。
COS的相关帖:https://d.cosx.org/d/420048-python-r/16