'R DB'에 해당하는 글 2건

R Oracle Connection

R 2014.02.24 13:13

지난번 R DB Connection 글에서 R에서 RDBMS에 Connection하는 방법을 알아보았다.

지난 글에서는 MySQL를 접속했었는데 Oracle접속하는 방법도 간단하다.


ojdbc.jar파일을 다운로드 받은 후 특정폴더에 복사한다.

여기서는 지난 MySQL과 마찬가지로 /usr/share/java 폴더로 복사였다.


Oracle connection 소스는 아래와 같다. 자세한 사항은 지난 R DB Connection을 참고하기 바란다.

library(DBI)
library(RJDBC)
library(rJava)
drv<-JDBC("oracle.jdbc.driver.OracleDriver", "/usr/share/java/ojdbc14.jar")
conn<-dbConnect(drv, "jdbc:oracle:thin:@//<db_ip>:<port>/<sid>","<id>","<pw>")
query = "SELECT * FROM TABLES"
dbGetQuery(conn, query)

실제 소스 실행화면


저작자 표시
신고

'R' 카테고리의 다른 글

R on Hadoop and Amazon EMR  (0) 2014.08.19
R Oracle Connection  (4) 2014.02.24
R svn commit history 시각화  (0) 2014.02.21
R boxplot을 이용한 출근시간 분석 및 시각화  (0) 2014.02.19

WRITTEN BY
빵군
Web Programmer HOONS닷넷(http://www.hoons.kr) 2011 ASP.NET 시삽 http://about.me/y2kpooh

받은 트랙백이 없고 , 댓글  4개가 달렸습니다.
  1. 안녕하세요 컴퓨터공학과 4학년입니다. 현재 R과 하둡을 이용하여 빅데이터를 분석후 워드클라우드 같은 것을 웹에 JSP를 이용하여 뿌려 주려하는데요
    혹시 확장자 .R 소스(라이브러리 등등)을 .java에서 가져오게 하려면 어떻게 해야하나요? JRI 이용한 지금까지의 소스를 볼수 있을지 해서 올려봅니다. 즐거운 하루 되세요!
    • R과 Java간의 인터페이스는 Java Runtime Interface를 이용하여 가능합니다.
      http://using.tistory.com/55 여기를 참고해주세요
  2. 안녕하세요 질문이 있어서 연락드립니다.
    drv<-JDBC("oracle.jdbc.driver.OracleDriver", "/usr/share/java/ojdbc14.jar")

    여기서 classPath 잡는 부분이 잘 안되서요.
    ojdbc14.jar를 기존 client 설치되어 있는 곳으로 연결하려고 하거든요.
    classpath를 정확히 어떻게 잡아줘야 class가 로드될지 알고 싶습니다.

    windows7 이고요.. 로컬 환경변수 설정해서 연결해도 잘 안되네요..

    그럼, 수고하세요
    • 우선 작성해주신 내용만으로는 파악이 어렵네요 ^^;

      단순 클래스패스 설정 문제라면 검색하면 많이 나옵니다.
secret

R DB Connection

R 2014.01.28 11:02

R에서 일반적인 분석 방법은 아래와 같다.

1. DB에서 분석할 데이터를 가져와 csv, txt와 같은 파일 형태로 생성한다.

2. R에서는 각종 read 함수를 이용하여 생성한 파일을 메모리에 올려 분석 작업을 진행한다.


이 방법의 단점은 R에서 분석하기 위해서는 DB에서 데이터를 가공해서 파일로 전달할때 까지 기다려야 한다는 것이다.

분석가와 DBA간의 커뮤니케이션에 문제가 있을 경우 위 1,2번의 작업을 몇 차례나 더 해야 할 수도 있다.


그래서 이번에는 R에서 직접 RDBMS를 Conncetion하는 방법을 알아보고자 한다.

이 방법의 장점은 SQL을 조금만 알면 분석가는 DBA에게 데이터를 요청할 필요도 없으며 SQL로 쉽게 데이터를 선 정제 후 R에서 분석가능하다.


여기서 부터 아래 작업은 Ubuntu 64bit 기준으로 작성되었으며 R이 이미 설치되어 있다고 가정한다.

R Version은 >= 2.15 이상이어야 한다.


RJDBC 패키지를 사용하기 위해서는 우선 java를 설치해야 한다.

 $ sudo apt-get install openjdk-7-jdk


그리고 아래와 같이 실행하기 바란다.(Root 계정으로 실행)

 $ R CMD javareconf


이제 R에서 DB Connection하기 위한 Package를 설치해야 한다.

install.packages(rJava)
install.packages(DBI)
install.packages(RJDBC)

환경변수 세팅

 LD_LIBRARY_PATH=/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/:/home/user/R/x86_64-pc-linux-gnu-library/3.0/rJava/jri:$LD_LIBRARY_PATH


설치 후 해당 Package가 제대로 load되는지 확인이 필요하다.

library(DBI)
library(rJava)
library(RJDBC)

RJDBC는 rJava에 의존적으로 rJava를 먼저 load 후 loading해야 한다.

혹 rJava load 시 아래와 같은 에러가 발생할 경우 이 링크를 참조하기 바란다.

(만약 이도저도 다 해봤는데 안되면 재부팅 해보길 바란다... ^^;)

 Error in dyn.load(x, as.logical(local), as.logical(now)) : 
      unable to load shared library '/usr/local/lib/R/site-library/rJava/libs/rJava.so':
  libjvm.so: cannot open shared object file: No such file or directory

여기서는 mysql를 접속하기 위해서 mysql connector를 설치해야 한다.(oracle이라면 이글 참고)

 $ sudo apt-get install libmysql-java

설치를 하게 되면 /usr/share/java/ 폴더에 jar파일이 있을 것이다.


이제 다 끝났다. 이제 직접 R에서 DB Connection을 해보자.

library(DBI)
library(rJava)
library(RJDBC)
drv <- JDBC("com.mysql.jdbc.Driver", "/usr/share/java/mysql-connector-java.jar", identifier.quote="`")
conn <- dbConnect(drv, "jdbc:mysql://<db_ip>:<db_port>/<dbname>", "<id>", "<passwd>")
df.table <- dbGetQuery(conn, "select * from DBTABLE")
class(df.table)

실제 소스 실행화면


위 실행화면을 보면 dbGetQuery로 SQL문을 작성하여 해당 테이블을 가져와 df.table R 객체에 할당하였고 테이블 데이터를 확인할 수 있다. 또한 class 함수로 df.table형을 확인해보면 data.frame을 알 수 있다. ^^

저작자 표시
신고

'R' 카테고리의 다른 글

R 상위버전 설치  (0) 2014.01.28
R DB Connection  (0) 2014.01.28
R 상관분석(Correlation) 시각화  (1) 2014.01.24
R 데이터프레임(DF) grep & gsub  (0) 2014.01.17

WRITTEN BY
빵군
Web Programmer HOONS닷넷(http://www.hoons.kr) 2011 ASP.NET 시삽 http://about.me/y2kpooh

받은 트랙백이 없고 , 댓글이 없습니다.
secret