2010-07-21 5 views
3

내가 특정 수정 찾는 게 아니에요으로 이것은 아마 underspecified 질문이 될 것입니다 :크론 작업

나는 SQL Server의 일부 데이터에 기계 학습 알고리즘을 실행하려면 데이터 베이스. R을 사용하여 계산을 수행합니다. R을 사용하여 데이터베이스에 연결하고 데이터를 처리하며 결과 테이블을 다시 데이터베이스에 기록합니다.

이것이 가능합니까? 내 추측은 그렇다. 클라이언트를 사용하여 문제가되지 않아야합니다 ...

그러나 리눅스 상자에서 이것을 cron 작업으로 설정할 수 있습니까?

답변

5

모두 예!

스크립팅에 대한 선택은 in this previous post과 같이 Rscript 또는 littler입니다.

Linux에서 MSSQL 데이터베이스에 연결하는 데 어려움이 있으시면 MSSQL에 대한 데이터베이스 연결에 RJDBC을 사용하는 것이 좋습니다. RODBC를 사용하여 Windows에서 연결했지만 Linux에서 제대로 작동하지 못했습니다. RJDBC를 작동 시키려면 Linux를 제대로 설치해야하며 일부 환경 변수를 변경해야 할 수도 있습니다 (항상 rjava로 잘못 설정된 것 같습니다). directly from Microsoft을 얻을 수있는 Linux 용 JDBC 드라이버도 다운로드하여 설치해야합니다.

당신은 RJDBC 설치 얻고 드라이버가 설치되면, 다음과 같은 템플릿과 같을 것이다 데이터베이스에서 데이터를 끌어에 대한 코드 : 당신은

dbWriteTable(conn, "myData", SomeTable, overwrite=TRUE) 
같은 것을 사용하여 테이블을 작성할 수 있습니다

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) 

DB를 업데이트 할 때 일반적으로 dbWriteTable()을 사용하여 데이터베이스 서버에 임시 테이블을 만든 다음 dbSendUpdate()을 발행하여 주 테이블에 임시 테이블을 추가 한 다음 dbSendUpdate() 임시 테이블을 삭제합니다. 그 패턴이 유용 할 수도 있습니다.

내가 만난 유일한 "잡았다"는 Windows 도메인/사용자 이름을 연결 시퀀스에서 작동시킬 수 없다는 것입니다. 나는 sa와 같은 개별 SQL Server 계정을 설정해야했습니다.

0

당신은 R 코드를 포함하는 스크립트를 작성하고 첫 번째 줄에 넣고 수

#!/usr/bin/env Rscript 

변경 파일 권한은 실행을 허용하고 떠들썩한 파티 스크립트 것으로의 crontab에 넣어.

관련 문제