Pentaho中R Executor运行R脚本能否直接将结果插入DB表
Pentaho R Executor直接写入数据库实现方案
完全可以不导出CSV中间文件,有两种成熟的实现方式:
- 优先推荐用Pentaho自带的数据流能力实现:你只需要在R脚本中将最终计算结果整理为data.frame格式,赋值给名为
output的变量,R Executor会自动将这个变量的内容识别为输出数据流,在R Executor步骤后直接连接「表输出」组件,配置好对应的数据库连接、目标表字段映射关系,就可以直接将结果写入指定数据库表,全程无本地文件生成,还可以复用Pentaho已配置的数据库连接,无需在R脚本中重复维护数据库凭证。 - 也可以在R脚本内部直接完成数据库写入:根据你使用的数据库类型引入对应的R连接包即可,比如MySQL用
RMySQL、PostgreSQL用RPostgres、通用ODBC数据源用odbc包,在脚本内完成数据库连接配置后,直接调用dbWriteTable这类函数就可以将结果直接写入目标表,不需要生成CSV文件。
如果你选择第二种方案,不要将数据库账号密码硬编码在R脚本中,可以先在Pentaho的转换/作业中配置为参数,再通过R Executor的变量传递功能传入R脚本,避免敏感信息泄露。
内容的提问来源于stack exchange,提问作者pmiranda
相关产品推荐
相关产品推荐

