Innovating today, leading tomorrow

OpenSQL_Technical Guide
[OpenSQL] postgres_fdw

[OpenSQL] postgres_fdw

postgres_fdw


postgres_fdw 란?

fdw는 Foreign Data Wrappers라고 하며 외부데이터 소스와 통신할 수 있는 PostgreSQL 데이터베이스 용 라이브러리로, 데이터 소스에 연결하고 데이터를 얻는 세부 정보를 추출하는데 사용합니다.
– PostgreSQL 공식 문서 –


설치 요구사항

  • 설치 요구사항
    • PostgreSQL contrib 에 포함되어 있는 Extension따로 설치 요구사항이 필요하지 않음

테스트

EXTENSION 사용 방법

CREATE EXTENSION [extension_name]

예시

CREATE EXTENSION postgres_fdw;
ERROR: permission denied to create extension “postgres_fdw”
HINT: Must be superuser to create this extension.

postgres_fdw를 사용하기 위해서는 extension 확장하는 User에게 superuser 권한이 있어야 함.

ostgres_fdw 사용 방법

외부데이터 서버 생성

/*
CREATE SERVER (1)
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host ‘(2)’, port ‘(3)’, dbname ‘(4)’);
*/
$ CREATE SERVER test FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host ‘192.168.0.10’, port ‘5432’, dbname ‘test’);
CREATE SERVER

psql 메타 명령 문법

  1. 서버명. 임의설정
  2. 원격 DB IP addr
  3. 원격 DB Port
  4. 원격 DB 데이터베이스 명

사용자 매핑 설정

/*
CREATE USER MAPPING FOR (1)
SERVER (2)
OPTIONS (user ‘(3)’, password ‘(4)’);
*/
$ CREATE USER MAPPING FOR test SERVER test OPTIONS (user ‘test’, password ‘1234’);
CREATE USER MAPPING

1. 현재 DB 사용자명
2. 임의 설정한 서버명
3. 원격 DB 사용자명
4. 원격 DB 사용자 비밀번호
1. 원격 테이블 생성

/*
CREATE FOREIGN TABLE (1) (
(5)
)
SERVER (2)
OPTIONS (schema_name ‘(3), table_name (4)’);
*/
$ CREATE USER MAPPING FOR test SERVER test OPTIONS (user ‘test’, password ‘1234’);
CREATE USER MAPPING

1. 사용할 테이블명
2. 임의 설정한 서버명
3. 원격 DB Schema
4. 원격 DB 테이블명
5. 원격 DB 테이블 column
1. 전체 테이블 사용

/*
IMPORT FOREIGN SCHEMA (1) FROM SERVER (2) INTO (3);
*/
$ CREATE SCHEMA ms;
CREATE SCHEMA
$ IMPORT FOREIGN SCHEMA public FROM SERVER test INTO ms;
IMPORT FOREIGN SCHEMA

1. 원격 DB Schema
2. 임의 설정한 서버명
3. 스키마명
1. 활용

/*
SELECT * FROM (1).(2);
*/
$ SELECT * FROM ms.members;

1. 스키마명
2. 원격
DB 테이블명

FDW Options 설정

/*
SELECT * FROM (1).(2);
*/
$ SELECT * FROM ms.members;

  1. 스키마명
  2. 원격 DB 테이블명

Server 설정 확인

$ des+
List of foreign servers
Name | Owner | Foreign-data wrapper | Access privileges | Type | Version | FDW options | Description
———-+——–+————————-+——————-+——+———+—————+————-
test | test | postgres_fdw | | | | (host ‘192.168.0.10’, port ‘5432’, dbname ‘test’, updatable ‘true’) |
(1 row)

foreign table 변경

$ alter foreign table test.members add column memo text;

foreign table 변경
foreign table 변경

  • 주의사항
    1. postgresfdw 사용을 위해 주체가 되는 디비 유저가 superuser 권한을 가지고 있어햐 함
      2. 외부 PostgreSQL 서버에 저장된 데이터에 액세스하는 데 사용되는 fdw맨 처음 프로시저만 생성하면 일반 테이블 사용과 다르지
      않음

지금까지 PostgreSQL의 ‘postgres_fdw’에 관해 알아보았습니다

‘pgbench’를 바로 이어서 확인해보세요!

광고성 정보 수신

개인정보 수집, 활용 목적 및 기간

(주)티맥스티베로의 개인정보 수집 및 이용 목적은 다음과 같습니다.
내용을 자세히 읽어보신 후 동의 여부를 결정해 주시기 바랍니다.

  • 수집 목적: 티맥스티베로 뉴스레터 발송 및 고객 관리
  • 수집 항목: 성함, 회사명, 회사 이메일, 연락처, 부서명, 직급, 산업, 담당업무, 관계사 여부, 방문 경로
  • 보유 및 이용 기간: 동의 철회 시까지

※ 위 개인정보 수집 및 이용에 대한 동의를 거부할 권리가 있습니다.
※ 필수 수집 항목에 대한 동의를 거부하는 경우 뉴스레터 구독이 제한될 수 있습니다.

개인정보의 처리 위탁 정보
  • 업체명: 스티비 주식회사
  • 위탁 업무 목적 및 범위: 광고가 포함된 뉴스레터 발송 및 수신자 관리
 

개인정보 수집 및 이용

개인정보 수집, 활용 목적 및 기간

(주)티맥스티베로의 개인정보 수집 및 이용 목적은 다음과 같습니다. 내용을 자세히 읽어보신 후 동의 여부를 결정해 주시기 바랍니다.

  • 수집 목적: 티맥스티베로 뉴스레터 발송 및 고객 관리
  • 수집 항목: 성함, 회사명, 회사 이메일, 연락처, 부서명, 직급, 산업, 담당업무, 관계사 여부, 방문 경로
  • 보유 및 이용 기간: 동의 철회 시까지

※ 위 개인정보 수집 및 이용에 대한 동의를 거부할 권리가 있습니다.
※ 필수 수집 항목에 대한 동의를 거부하는 경우 뉴스레터 구독이 제한될 수 있습니다.

개인정보의 처리 위탁 정보

  • 업체명: 스티비 주식회사
  • 위탁 업무 목적 및 범위: 광고가 포함된 뉴스레터 발송 및 수신자 관리
  •