제품 여행

CUBRID DBLink

by airnet posted Jun 07, 2022

CUBRID DBLink

데이터베이스에서 정보를 주고받다 보면 종종 다른 타 데이터베이스의 정보 조회가 필요한 경우가 있다.

이렇게 타 데이터베이스의 정보를 조회할 수 있는 방법이 필요 하게 되었으며, CUBRID DBLink를 이용하면 타 데이터베이스의 정보를 사용할 수 있다.

CUBRID DBLink는 CUBRID, Oracle, MySQL의 데이터베이스의 정보를 조회할 수 있도록 기능을 제공하며,

타 데이터베이스의 정보를 마치 하나의 데이터베이스에서 조회하는 것과 같은 효과를 발휘한다.

단 타 데이터베이스를 여러 게 설정이 가능 하나, 정보를 조회할 때는 한개의 타 데이터베이스의 정보만 조회가 가능하다.

 

1. CUBRID DBLink 구성도

CUBRID DBLink는 동일기종 간에 DBLink 와 이기종 간의 DBLink를 지원한다.

 

- 동일기종 간의 DBLink 구성도

동일기종의 타 데이터베이스의 정보를 조회하기 위한 구성도를 보면 Database Server에서 CCI를 이용하여

동일기종의 Brokers에 접속하여 타 데이터베이스의 정보를 조회할 수 있다.

 구성도1.png

 

- 이기종 간의 DBLink 구성도

이기종의 타 데이터베이스의 정보를 조회하기 위한 구성도를 보면 GATEWAY를 통해서 이기종 타 데이터베이스의 정보를 조회할 수 있다.

GATWAY는 ODBC(Open DataBase Connectivity)를 이용하고 있다.

 구성도2.png

 

 

 

2. CUBRID DBLink 설정

- 동일기종 설정

위의 동일기종 구성도를 보면 타 데이터베이스의 Broker에 연결을 해야 하므로 타 데이터베이스에 대해 Broker 설정이 필요 하다.

이 설정은 일반적인 Broker 설정과 동일하다.

 

- 이기종 설정

이기종(Oracle/MySQL)에 접속하기 위한 정보 설정이 필요 하며, 이기종 설정 값은 GATEWAY에 작성해야 한다.

GATEWAY이 설정은 cubrid_gateway.conf의 파라메터를 통해 설정할 수 있다.

(참고로, GATEWAY는 ODBC를 이용하기 때문에 Linux의 경우, unixODBC Driver Manager가 설치되어야 한다.)

 

cubrid_gateway.conf의 DBLink 설정 예이다.

 broker.png

 

3. CUBRID DBLink 사용 방법

동일기종의 Brokers와 이기종의 GATEWAY 설정을 했다면,

DBLink Query문을 작성하여 데이터베이스의 정보를 조회하는 방법에 대해서 알아본다.

 

데이터 조회를 위한 DBLINK Query문 작성 방법 두가지 방법에 대해서 알아보자

 

첫째, FROM절에 DBLINK 구문을 작성하여 타 데이터베이스의 정보를 조회하는 방법

아래의 Query문은 IP 192.168.0.1의 타 데이터베이스의 remote_t 테이블 정보를 조회하는 Query문이다.

dblink_sql.png

위 구문을 보면 Connection정보, 타 데이터베이스 정보 조회를 위한 SELECT문,

SELECT문에 대응하는 가상의 테이블과 컬럼명 이렇게 세 부분으로 나누어져 있다.

 

두번째, DBLINK Query문에는 타 데이터베이스에 접속하기 위해 Connection 정보가 필요 하다.

Connection 정보는 동일하고 SELECT문만 변경이 필요한 경우, Query문을 작성할 때 마다 매번 Connection 정보를

작성해야 하는 번거로움이 있고, 사용자 정보(id, password) 가 외부로 노출될 우려가 있다.

이런 번거로움과 정보 보호를 위해 CREATE SERVER문을 이용하면, Query문을 보다 간단하고, 사용자 정보 보호에도 도움이 된다.

dblink_sql1.png

위의 구문을 보면 remote_srv1으로 Connection 정보를 대체할 수 있다.

 

4. CUBRID DBLink를 이용한 타 데이터베이스 조회

이제 CUBRID DBLink를 이용하기 위한 모든 절차가 완료되었으므로. Cubrid 데이터베이스 정보와,

타 데이터베이스 정보를 조회할 수 있다.

아래의 예는 CUBRID에서 MySQL의 정보를 조회하여, CUBRID의 정보와 MySQL의 보여 주고 있다.

 

- Cubrid의 테이블 정보

 query2.png

 

- MySQL의 테이블 정보

 query3.png

 

- DBLink Query문

 query4.png

 

- DBLink Query 수행 결과

CUBRID의 정보와 MySQL의 정보를 동시에 조회한 결과이다.

 result.png