서버별로 메시지 수행시간을 그래프로 그리려고 한다.
우선 데이터는
아래 사진과 같이
//서버 이름 // 메시지 이벤트 이름// 이벤트 끝난시간// 메시지 수행시간// 이벤트 처리 결과
의 컬럼으로 이루어져 있다.
이제 위의 데이터를 각각의 서버별로 그래프를 그리려고 한다.
내가 원하는 그래프는 다음 사진과 같다.
#install.packages("rJava") #install.packages("DBI") #install.packages("RJDBC") #install.packages("ggplot2") library(DBI) library(rJava) library(RJDBC) library('ggplot2') drv<-JDBC("oracle.jdbc.driver.OracleDriver","D:\\app\\ParkJeongSu\\product\\11.2.0\\dbhome_2\\jdbc\\lib\\ojdbc6.jar") conn<-dbConnect(drv, " URL "," 아이디 "," 패스워드 ") query<- " SELECT A.SERVERNAME, A.EVENTNAME, TO_DATE (SUBSTR (A.TIMEKEY, 0, 14), 'YYYYMMDDHH24MISS') TIME, A.TIMEKEY, A.ELAPSEDTIME, A.RESULT FROM CT_TRANSACTIONLOG A WHERE 1 = 1 AND A.TIMEKEY BETWEEN '201912230000' AND '201912232399' AND A.SERVERNAME LIKE 'PEXsvrPEXsvr%' " result <- dbGetQuery(conn,query) head(result2) all_graph<- ggplot(data=result,aes(x=TIMEKEY,y=ELAPSEDTIME,group=SERVERNAME,color=SERVERNAME)) + geom_line() + theme(axis.text.x = element_blank()) print(all_graph) facet_graph<- ggplot(data=result,aes(x=TIMEKEY,y=ELAPSEDTIME,group=SERVERNAME,color=SERVERNAME)) + geom_line() + facet_wrap(~ SERVERNAME) + theme(axis.text.x = element_blank()) print(facet_graph)
패키지 설치가 필요한경우 아래의 "#" 주석 해제 후 ctrl + Enter
#install.packages("rJava")
#install.packages("DBI")
#install.packages("RJDBC")
#install.packages("ggplot2")
Library 를 이제 불러오고
library(DBI)
library(rJava)
library(RJDBC)
library('ggplot2')
db 접속하고,
drv<-JDBC("oracle.jdbc.driver.OracleDriver","D:\\app\\ParkJeongSu\\product\\11.2.0\\dbhome_2\\jdbc\\lib\\ojdbc6.jar")
conn<-dbConnect(drv, " URL "," 아이디 "," 패스워드 ")
쿼리 결과를 result에 저장한다.
query<-
"
SELECT A.SERVERNAME,
A.EVENTNAME,
TO_DATE (SUBSTR (A.TIMEKEY, 0, 14), 'YYYYMMDDHH24MISS') TIME,
A.TIMEKEY,
A.ELAPSEDTIME,
A.RESULT
FROM CT_TRANSACTIONLOG A
WHERE 1 = 1
AND A.TIMEKEY BETWEEN '201912230000' AND '201912232399'
AND A.SERVERNAME LIKE 'PEXsvrPEXsvr%'
"
result <- dbGetQuery(conn,query)
그래프 결과를 facet_graph에 저장하고,
facet_graph<- ggplot(data=result,aes(x=TIMEKEY,y=ELAPSEDTIME,group=SERVERNAME,color=SERVERNAME)) + geom_line() + facet_wrap(~ SERVERNAME) + theme(axis.text.x = element_blank())
그래프를 보여준다.
print(facet_graph)
데이터 55만 건을 조회하는데 30초가 걸렸고,
데이터 55만건을 그래프로 그리는데 40분이 걸렸다.
'dev > 프로그래밍' 카테고리의 다른 글
파이썬 리스트 컴프리헨션 과 곱하기 연산 (0) | 2021.12.22 |
---|---|
C# UGrid Header checkBox 제거 (0) | 2019.11.29 |
java Debuging 시 xml 보는 코드 (0) | 2019.11.11 |
encodeURIComponent (0) | 2018.01.16 |