욱이의 냉철한 공부

[R, DB연동] ORACLE과 연동하여 R에서 SQL 사용하기 본문

데이터분석/R

[R, DB연동] ORACLE과 연동하여 R에서 SQL 사용하기

냉철한 욱 2021. 6. 28. 05:21

 

 

ORACLE과 연동하기 전에 이해하고 해야 할 것이 있다.

 

1. rJava : 이 패키지로 자바에 있는 리소스를 가져 올 수 있다.

즉 rjdbc를 사용할 수 있다.

이러한 패키지를 사용하기 위해서는 jdk가 필요하다.

그래서 보통 R을 설치하기 전에 자바를 설치한다.

 

2. rjdbc : R하고 자바가 설치되어 있어야 사용할 수 있다.

모든 데이터베이스하고 연동하게 해준다.

 

3. ojdbc6.jar : jar 파일은 자바패키지 파일 덩어리이다.

DB연동을 위해 ojdbc6.jar에 있는 패키지를 사용할 것이다.

 

ojdbc6.jar 파일을 C드라이브에 위치시킨다.

 

ojdbc6.zip
1.97MB

 


 

1. 오라클DB 연결

- JDBC함수를 사용하여 자바패키지를 사용한다.

- 자바패키지를 사용할 수 있는 jdbcDriver 객체로 오라클 scott관리자의 데이터베이스로 접속한다.

- tiger는 해당 비밀번호이다.

- 접속 한 객체는 conn이다.

 

 

 

 

 

 

2. SQL 사용

 

- dbGetQuery 함수를 사용하여 오라클에 접속한 객체 conn이 SQL로 데이터를 가져온다.

- 가져온 데이터베이스의 테이블은 R의 데이터프레임이 된다.

- 파랑색 박스의 데이터들이 일치하다는 것을 확인 할 수 있다.

 

r <- dbGetQuery(conn, "SELECT * FROM scott.emp")

 

 

 

 

 

3. SQL 사용 - 그룹별 계산

- sql쿼리가 길기 때문에 따로 sql변수명에 쿼리를 작성하였다.

- DB에 접속한 conn객체가 sql 쿼리를 사용하여 R에 데이터프레임으로 데이터를 가져온다.

- 파랑색 박스의 데이터들이 일치하다는 것을 확인 할 수 있다.

 

sql <- "select deptno, sum(sal) as sumsal

from scott.emp

group by deptno

order by deptno ";

r <- dbGetQuery(conn, sql)

 

 

 

 

 

 

4. SQL 사용 - 그룹별 계산 및 시각화

 

1) 오라클 테이블에서 R 데이터프레임으로 가져오기

- sql쿼리가 길기 때문에 따로 sql변수명에 쿼리를 작성하였다.

- DB에 접속한 conn객체가 sql 쿼리를 사용하여 R에 데이터프레임으로 데이터를 가져온다.

- 파랑색 박스의 데이터들이 일치하다는 것을 확인 할 수 있다.

 

sql <- "select job, sum(sal) as sumsal

from emp group by job

order by job desc ";

r <- dbGetQuery(conn, sql)

 

2) 시각화

- 막대그래프로 시각화한다.

- 자세한 방법은 아래 링크로 참고한다.

https://warm-uk.tistory.com/71

 

[R, 시각화] 기본 그래프 그리기(막대 그래프) - barplot()

여러 패키지 함수들, 그래프 함수 인자들 다 기억할 수 없어요. 저는 사용 할 시기가 되면 서적에서 봤던 거, 배웠던 거 정리한 것을 찾아서 활용해요. 가장 중요한 것은 함수들과 인자들을 외우

warm-uk.tistory.com

bp<-barplot(r$SUMSAL, names.arg=r$JOB, las=1, col=rainbow(5),ylim = c(0,10000))

text(x=bp, y=r$SUMSAL* 1.1,labels = r$SUMSAL,col="black",cex=1.2)