개발 시 데이터베이스를 이용하다 보면 다른 데이터베이스에 있는 정보를 조회해야 하는 경우가 종종 있다.
위와 같이 test2 DB에서 test DB의 정보를 조회하는 경우이다.
먼저 dblink를 사용하기 위해서는 몇 가지 알아야 하는 정보들이 있다.
당연하겠지만 접근하여 데이터를 가져오고자 하는 서버의 ip, DB이름, 사용자계정, port 정보를 알고 있어야 원하는 DB로 접속하여 데이터를 가져올 수 있다.
먼저 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이다"
정도로 설명할 수 있겠다.
이렇게 쿼리를 작성 후 실행해보면 정상적으로 정보를 가져올 것이라고 기대했겠지만
이 경우 당황하지 말고 다음의 쿼리를 실행!
postgreSQL의 경우 dblink와 같은 function들이 준비되어 있지만 언제든 호출하여 사용할 수 있도록 되어 있지는 않다.
따라서 함수를 쓸 수 있게끔 쿼리를 날려주는 작업이 필요하고 위의 쿼리가 dblink 함수를 활성화시켜주는 쿼리이다 dblink를 활성화시켜주고 앞서 작성한 쿼리를 다시 날려보자
다음과 같이 정상적으로 test DB의 데이터를 test2 DB에서 조회할 수 있다.
다른 DB에 있는 데이터를 조회해야 할 경우 사용하는 방법에 대해 알아보았다. 이 글이 도움이 되었으면 좋겠고 웬만한 함수들은 다 만들어져 있는 거 같으니 잘 가져다 쓰자!
'💾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 |