본문 바로가기



PostgreSQL을 활용한 데이터 연동: 외부 데이터베이스 접근



데이터는 현대 기업의 핵심 자산 중 하나입니다. 하지만 데이터가 분산되어 있는 상황에서 이를 효과적으로 관리하고 활용하는 것은 쉽지 않은 일입니다. 특히, 서로 다른 데이터베이스 관리 시스템(DBMS) 간의 데이터를 연동하려 할 때, 기술적인 도전에 직면하게 됩니다. 오늘은 PostgreSQL의 Foreign Data Wrapper(FDW)를 활용해 외부 데이터베이스에 접근하고, 데이터를 연동하는 방법을 소개합니다.

외부데이터 연동

1. 환경 준비하기

먼저, PostgreSQL에서 외부 데이터베이스에 접근하기 위한 환경을 준비합니다. 이를 위해 postgres_fdw 확장 기능을 활성화합니다. 이 확장 기능은 PostgreSQL 데이터베이스를 외부 데이터베이스에 연결하는 Foreign Data Wrapper를 제공합니다.

CREATE EXTENSION IF NOT EXISTS postgres_fdw;

2. 외부 서버 연결 설정

다음 단계는 외부 데이터베이스 서버에 연결하기 위한 설정입니다. CREATE SERVER 명령어를 사용해 연결할 외부 서버를 정의합니다. 이 예에서는 호스트 주소, 데이터베이스 이름, 포트 번호를 지정합니다.

CREATE SERVER my_db_link
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host '172.10.10.119', dbname 'mydb', port '5432');

3. 사용자 매핑 생성

외부 데이터베이스 접근 권한을 설정합니다. CREATE USER MAPPING 명령어를 이용해 PostgreSQL 데이터베이스 사용자와 외부 데이터베이스 사용자 간의 매핑을 생성합니다.

CREATE USER MAPPING FOR postgres
SERVER my_db_link
OPTIONS (user 'myuser', password '1234');

4. 외부 테이블 연동

외부 데이터베이스의 특정 테이블에 접근하기 위해, CREATE FOREIGN TABLE 명령어로 외부 테이블을 정의합니다. 이 구문은 외부 데이터베이스의 스키마와 테이블 이름을 지정하여 사용합니다.

CREATE FOREIGN TABLE local_obj_info_view (
    id varchar(30),
    name varchar(100)
)
SERVER my_db_link
OPTIONS (schema_name 'my', table_name 'my_tab');

5. 데이터 조회

마지막으로, 외부 테이블에서 데이터를 조회합니다. 이제 PostgreSQL 쿼리를 사용해 외부 데이터베이스의 데이터에 접근할 수 있습니다.
 

SELECT id, name
FROM local_obj_info_view;

 
PostgreSQL의 FDW를 활용하면, 다양한 데이터베이스 시스템 간의 데이터 연동이 가능해집니다. 이를 통해 데이터 관리와 분석의 유연성이 크게 향상됩니다. 데이터베이스 관리자나 개발자라면, 이 기술을 활용하여 데이터 기반 의사결정을 보다 효과적으로 지원할 수 있습니다.