본문 바로가기

IT관련

DVDesktop 에서 Oracle Database 접속하는 방법

앞에서 Oracle OAC(Oracle Advanced Cloud)의 Desktop 버전인 DVDesktop(Data Visualization Desktop)을 내 PC에 설치해보고, 간단한 머신러닝 실습도 해봤습니다.

 

이번에는 DVDesktop에서 Oracle Database 에 접속해서 테이블을 가져와서 차트를 만드는 실습을 해보겠습니다.

DVDesktop 에서 Oracle Database 를 접속할 때, 두가지 경우가 있습니다.

Oracle Cloud Database 인 ADW(Autonomous Data Warehouse)를 접속할 때 사용하는 Wallet을 다운로드 받아서 이 것을 통해 접속하는 방법이 첫번째이고,

일반(Onpremise) Oracle DB에 SQL*Net TNS 이름을 통해서 접속하는 방법이 두번째입니다.

 

이중에서 이번에는 두번째 방법인 TNS 접속하는 방법을 해보겠습니다.

내 PC에 있는 DVDesktop 에서 SQL*Net 을 통해 Oracle Database 에 접속하려면, 내 PC에 오라클 Client 모듈이 설치되어 있어야 합니다.(정확히는 SQL*Net Client 모듈)

내 PC에 오라클 Client 모듈을 설치하는 방법도 여러가지가 있긴하지만, 현재 시점에서 가장 빠르게 다운로드 받아서 설치하는 방법은 무료 Oracle Database 인 Express Edition을 다운로드 받아서 설치하는 것입니다.

 

          ▶ Oracle 무료 데이터베이스 Oracle XE (Express Edition) 다운로드 및 설치방법 

 

TNS 접속을 하기위해서는 내 PC에 있는 SQL*Net TNS 세팅을 해줘야 합니다.

탐색기에서 <오라클 홈디렉토리>\network\admin 디렉토리로 갑니다.

XE버전은 C:\app\사용자이름\product\18.0.0\dbhomeXE\network\admin

tnsnames.ora 파일에 아래 내용을 입력해줍니다.

파일이 없으면 tnsnames.ora 라는 이름으로 파일을 생성해주면 됩니다.

ORCL =
     (DESCRIPTION =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.152)(PORT = 1521))
       (CONNECT_DATA =
         (SERVER = DEDICATED)
         (SERVICE_NAME = orcl)
       )
     )

제가 접속할 오라클 DB는 서비스명이 orcl 이라 TNS 이름도 ORCL 이라고 정했습니다.

본인이 접속할 DB 서비스명을 사용하면 됩니다.

HOST에는 접속할 DB가 있는 서버의 IP Address를 입력합니다.

 

TNS 가 정상적으로 세팅되었는지는 윈도우즈 CMD 창을 띄워서 창을 띄워서 tnsping 명령어를 실행해보면 확인할 수 있습니다.

 

이제 내 PC에서 SQL*Net 을 통해서 Oracle Database 에 접속할 준비는 끝났습니다.

 

DVDesktop 에서 [데이터] - [접속] 화면에서 [생성] 버튼을 클릭하고,

팝업창에서 다시 [접속] 메뉴를 선택합니다.

 

[접속 생성] 팝업창에서 [Oracle Database] 를 선택합니다.

 

아래와 같이 *(별표)가 있는 항목들은 모두 입력해줍니다. [클라이언트 전자 지갑] 에는 뭔가 입력할 필요 없습니다.

[서비스 이름] 에는 앞에서 만든 TNS 이름인 "ORCL" 을 입력해줍니다.

저는 접속 사용자로 system 을 사용했습니다.

실제로 CMD창에서 sqlplus system/*****@ORCL  으로 접속 가능해야 합니다. 이게 안되면 DVDesktop도 접속 안됩니다.

[저장] 버튼을 누르면 정상적으로 접속이 되는 경우 다음과 같이 MyDB1 이라는 접속명이 생성됩니다.

 

MyDB1 을 클릭하면, 아래와 같이 바로 [데이터 집합]을 만드는 화면으로 이동하고, DB User명을 리스트합니다.

바로 DB에 있는 테이블을 가져와서 데이터 집합을 만들라는 얘기죠~ 

sys 유저를 선택합니다.

그러면, sys 유저에 있는 모든 테이블들을 보여주는데, 아래처럼 검색창에 v_$diag_alert_ext 라고 입력해서 테이블을 찾습니다.

 

아래와 같이 컬럼 2개를 선택한 후, [선택된 항목 추가] 를 누르면 테이블에서 2개의 컬럼만 선택됩니다.

그러면 2개의 컬럼 데이터만 DB에서 가져오게 됩니다. 

 

이제 [추가] 버튼을 누르면 DB에서 데이터를 내 PC로 가져오게 되는데, 먼저 가져올 테이블이름에서 V_$ 를 제거합니다. 특수문자 $ 때문에 에러가 발생하네요..

데이터가 많은 경우는 매우 오래 걸릴 수 있습니다. 너무 많은 경우는 읽어오다가 PC의 메모리가 부족해서 DVD님이 돌아가실 수도 있슴돠~

 

 

드뎌, DB에 있는 데이터를 내PC로 가져왔습니다.

RECORD_ID 를 선택하고, 왼쪽 아래에 [집계] 항목에 "합계" 라고 보이는 부분을 클릭합니다.

이걸 "개수" 로 바꿉니다.

RECORD_ID 값을 합해버리면 의미가 없죠.. 집계시 Count만 해야 하니까 "개수"로 바꾸는 겁니다.

 

[스크립트 적용] 버튼을 눌러서 변경사항을 저장합니다.

그리고나서 오른쪽 상단에 있는 [프로젝트 생성] 버튼을 눌러서 바로 이 데이터를 가지고 분석차트를 만들어 보겠습니다.

 

왼쪽에 보이는 DIAG_ALERT_EXT 테이블에서 2개의 컬럼을 동시에 선택(Ctrl키 눌러서)한 후, 오른쪽 캔버스로 드래그합니다.

그러면, 차트가 그려지다가 보통 에러가 납니다. 너무 데이터가 많거든요 ^^

일자별로 차트를 그려보겠습니다.

날짜항목은 클릭하면 연도,분기,월,일... 등등으로 분해해서 볼 수가 있습니다.

"일"을 선택한 후 드래그 해서 기존에 차트에 있는 "범주(X축)" 위치에 갖다 놓으면 바꿔치기가 됩니다.

 

짜잔~~

드뎌 차트가 그려졌습니다. ^^

 

저는 제 PC에 있는 조그만 테스트용 DB에서 가져온 거라.. DB를 항상 올려놓고 있는게 아니여서 가운데 2014년~2018년까지 가운데가 비어있습니다.ㅎㅎ  아마 실제 운영이었다면 훨씬 아름다운(?) 차트가 만들어질 겁니다.

선차트라 중간을 이어버려서 마치 데이터가 있는것 처럼 이상하게 보이네요..

막대차트로 바꿔봅니다. 

음~ 이게 훨 낫네요.. 

이렇게 보면 평상시 에러가 너무 많이 발생한 경우가 있다면 금방 알 수 있겠죠 ^^

차트에 필터를 추가해서 날짜범위를 지정하면 더 Gorgeous 한 차트가 만들어질 것 같긴하지만.. 귀찮아서 여기까지~~