728x90
PostgreSQL의 foreign table은 외부 데이터 소스(예: 다른 데이터베이스, 파일 등)에 접근할 수 있도록 해주는 가상 테이블이다.
쉽게 말해:
foreign table = 다른 시스템의 테이블을 PostgreSQL 안에서 마치 내 테이블처럼 사용할 수 있게 해주는 기능
✅ 핵심 개념 요약
| 용어 | 설명 |
| FDW (Foreign Data Wrapper) | 외부 데이터를 PostgreSQL에서 읽을 수 있게 해주는 인터페이스 |
| Foreign Table | FDW를 통해 접근할 수 있게 만든 가상 테이블 |
| 예시 | 다른 PostgreSQL DB, Oracle, MySQL, CSV 파일 등 |
728x90
✅ 예시: PostgreSQL → 다른 PostgreSQL 테이블 연결
1. FDW 확장 설치
CREATE EXTENSION postgres_fdw;
2. 외부 서버 등록
CREATE SERVER 외부서버이름
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host '192.168.0.10', dbname 'otherdb', port '5432');
3. 사용자 매핑
CREATE USER MAPPING FOR CURRENT_USER
SERVER 외부서버이름
OPTIONS (user 'otheruser', password 'otherpass');
4. Foreign Table 생성
CREATE FOREIGN TABLE foreign_table_name (
id INT,
name TEXT
)
SERVER 외부서버이름
OPTIONS (schema_name 'public', table_name 'original_table');
이제 foreign_table_name을 일반 테이블처럼 SELECT, JOIN할 수 있다. (view 테이블도 가능)
✅ 다른 FDW 예시
- mysql_fdw: MySQL 연결
- oracle_fdw: Oracle 연결
- file_fdw: CSV 같은 파일
- odbc_fdw: ODBC 지원하는 다양한 데이터소스
- mongo_fdw: MongoDB
- redis_fdw: Redis
✅ 장점
- 다양한 데이터 소스를 PostgreSQL 하나로 통합 가능
- ETL 없이도 바로 조인하거나 조회 가능
- PostgreSQL 쿼리 안에서 외부 데이터를 사용할 수 있음
❗주의점
- 성능은 네트워크/외부 DB 성능에 따라 좌우
- 일부 FDW는 INSERT, UPDATE, DELETE가 안 되는 read-only
- 외부 DB 변경이 생기면 foreign table 정의도 맞춰줘야 함
2025.04.16 - [개발/데이터베이스] - PostgreSQL(FDW) -> Oracle DB를 foreign table로 연결 사용
PostgreSQL(FDW) -> Oracle DB를 foreign table로 연결 사용
✅ 1. oracle_fdw 설치 방법 (Linux 기준)# 필요한 라이브러리 설치sudo apt install postgresql-server-dev-14 # PostgreSQL 버전에 맞춰 설치sudo apt install libclntsh-dev libaio-dev # Oracle Client SDK 필요# oracle_fdw 다운로드 및
piterjk.tistory.com
728x90
'개발 > 데이터베이스' 카테고리의 다른 글
| PostgreSQL FDW(Foreign Data Wrapper) 확인 점검 (0) | 2025.04.16 |
|---|---|
| PostgreSQL(FDW) -> Oracle DB를 foreign table로 연결 사용 (0) | 2025.04.16 |
| PostgreSQL 락(lock) 프로세스 확인 및 강제 종료(kill) (0) | 2025.04.08 |
| PostgreSQL에서 WITH ... AS MATERIALIZED 물리적 임시저장 (0) | 2025.03.18 |
| Postgresql 테이블스페이스 생성 관리 (0) | 2025.03.17 |