💾DB

[PostgreSQL] dblink사용하기

이줭 2021. 8. 25. 08:54
728x90

개발 시 데이터베이스를 이용하다 보면 다른 데이터베이스에 있는 정보를 조회해야 하는 경우가 종종 있다.

DB예시

위와 같이 test2 DB에서 test DB의 정보를 조회하는 경우이다.

 

먼저 dblink를 사용하기 위해서는 몇 가지 알아야 하는 정보들이 있다.

당연하겠지만 접근하여 데이터를 가져오고자 하는 서버의 ip, DB이름, 사용자계정, port 정보를 알고 있어야 원하는 DB로 접속하여 데이터를 가져올 수 있다.

 

먼저 DBLink를 사용하기 위한 쿼리를 보자!

DBLink 쿼리

위의 쿼리를 보면 크게 세부분으로 나눌 수 있다.

 

먼저 첫번째 부분은 접근하고자 하는 DB의 dbname, port, host, user, password 정보를 작성하고, 두번째 부분은 가져올 테이블의 조회 쿼리, 세번째 부분은 가져올 column과 column 형식을 작성한다.

 

이 쿼리를 말로 풀어보면

"ip가 127.0.0.1인 서버에 DB name이 test인 DB에 유저정보를 가지고 접근하여,  person 테이블에서 id, name, age를 조회하는데 각각의 column명은 id, name, age이고 자료형은 bigint, varchar, int이다"

정도로 설명할 수 있겠다.

이렇게 쿼리를 작성 후 실행해보면 정상적으로 정보를 가져올 것이라고 기대했겠지만

Error

이 경우 당황하지 말고 다음의 쿼리를 실행!

create extension

postgreSQL의 경우 dblink와 같은 function들이 준비되어 있지만 언제든 호출하여 사용할 수 있도록 되어 있지는 않다.

 

따라서 함수를 쓸 수 있게끔 쿼리를 날려주는 작업이 필요하고 위의 쿼리가 dblink 함수를 활성화시켜주는 쿼리이다 dblink를 활성화시켜주고 앞서 작성한 쿼리를 다시 날려보자

쿼리결과

다음과 같이 정상적으로 test DB의 데이터를 test2 DB에서 조회할 수 있다.

 

다른 DB에 있는 데이터를 조회해야 할 경우 사용하는 방법에 대해 알아보았다. 이 글이 도움이 되었으면 좋겠고 웬만한 함수들은 다 만들어져 있는 거 같으니 잘 가져다 쓰자!

728x90

'💾DB' 카테고리의 다른 글

[PostgreSQL] Extract 함수 (날짜 시간 추출)  (0) 2022.07.06
[PostgreSQL] pgAgent  (0) 2022.06.10
[PostgreSQL] UPDATE/DELETE JOIN  (0) 2022.01.24
[PostgreSQL] import csv file  (0) 2021.08.25
[PostgreSQL] import csv file with pgAdmin  (0) 2021.08.25