当前位置:  开发笔记 > 后端 > 正文

Cron Job with R和SQL Server

如何解决《CronJobwithR和SQLServer》经验,为你挑选了1个好方法。

这可能是一个未说明的问题,因为我不是在寻找具体的修复:

我想对SQL Server数据库中的某些数据运行机器学习算法.我想使用R来进行计算 - 这将涉及使用R连接到数据库,处理数据,并将结果表写回数据库.

这可能吗?我的猜测是肯定的.使用客户端应该不是问题...

但是,将它作为一个cron工作设置在Linux机器上是否可行?



1> JD Long..:

全部同意!

您在脚本编写方面的选择是Rscript或者更小的,如上一篇文章所述.

我一直在努力从Linux连接到MSSQL数据库,我建议使用RJDBC连接到MSSQL的数据库.我使用RODBC从Windows连接,但我无法在Linux中正常工作.要使RJDBC正常工作,您需要在Linux机器上正确安装Java,并且可能需要更改一些环境变量(似乎我总是使用rJava错误配置SOMETHING).您还需要下载并安装Linux的JDBC驱动程序,您可以直接从Microsoft获得.

一旦安装了RJDBC并安装了驱动程序,从数据库中提取数据的代码将类似于以下模板:

require(RJDBC)
drv <- JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver",
            "/etc/sqljdbc_2.0/sqljdbc4.jar")
conn <- dbConnect(drv, "jdbc:sqlserver://mySqlServer", "userId", "Password")
sqlText <- paste("
  SELECT  * 
  FROM SomeTable
       ;")
myData  <- dbGetQuery(conn, sqlText)

你可以用类似的东西写一张桌子

dbWriteTable(conn, "myData", SomeTable, overwrite=TRUE)

当我对我的数据库进行更新时,我通常使用dbWriteTable()在我的数据库服务器上创建一个临时表,然后我发出一个dbSendUpdate()将临时表附加到我的主表,然后第二个dbSendUpdate()删除临时表.您可能会发现该模式很有用.

我遇到的唯一"陷阱"是我永远无法在连接序列中使用Windows域/用户名.我不得不设置一个单独的SQL Server帐户(如sa).

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有