postgres_fdw 크로스 라이브러리 원격 데이터 조작 실현

1728 단어 postgresql
배경:
두 개의 서로 다른 라이브러리 간에 표 데이터에 서로 접근할 때 정상적인 상황에서는 하기 어렵다.간단한 사용 장면은 보고서 라이브러리와 응용 라이브러리의 상호작용이다.
예를 들어 지금 A 라이브러리 아래의user표를 조회하고 B 라이브러리 아래의dept표를 조회하려면 어떻게 관련 조회를 해야 합니까!결과는 할 수 없다.
그래서 목표 라이브러리에 원격 맵을 만들어야 합니다.
설명:
       1. 서버 A 라이브러리(대상 데이터베이스)에 user 테이블이 있습니다. user 테이블에 대응하는 부서 데이터를 조회해야 합니다.
        2.서버 B 라이브러리(원본 데이터베이스)에 dept표가 있습니다.
대상 데이터베이스 A에 연결을 만들고 원본 데이터베이스 B의 테이블을 A 라이브러리에 비추면 A 라이브러리가 B 라이브러리의 데이터에 접근할 수 있습니다.

하나.fdw 확장 설치

 create extension postgres_fdw;

postgres의 모든 확장을 조회하여 fdw 설치가 성공했는지 확인합니다.
 select * from pg_available_extensions; 

2. 원격 서비스 만들기, 대상 라이브러리에 연결 만들기


  CREATE SERVER b_server_11_ml         FOREIGN DATA WRAPPER postgres_fdw         OPTIONS (host '192.168.200.18', port '5432', dbname 'ais_ml',updatable 'true');
 
CREATE USER MAPPING FOR postgres         SERVER b_server_11_ml         OPTIONS (user 'postgres', password '123');
설명:b_server_11_ml:연결명,'192.168.200.18': 데이터베이스가 있는 서버 주소,'5432': 데이터베이스 포트,'ais_ml': 데이터베이스 이름
user'postgres': 사용자 이름은postgres,password'123': 비밀번호는 123입니다.
 
3. 원격 테이블 모델 가져오기
IMPORT FOREIGN SCHEMA "public"LIMIT TO (   dept_1,dept_2 )FROM SERVER b_server_11_ml INTO public;
 
설명: SCHEMA "public":public은 원본 라이브러리 B가 있는 SCHEMA를 가리킨다.
           dept_1,dept_2: 소스 라이브러리 B에서 매핑해야 하는 테이블을 가리키며 여러 개의 경우 를 사용합니다.
          b_server_11_ml INTO public:b_server_11_ml는 연결 이름을 가리키고,public는 테이블을 대상 라이브러리 B에 비추는 SCHEMA를 가리킨다
완성되면 목표 라이브러리 A에서 원본 라이브러리 B의 표를 볼 수 있습니다. 이때 원하는 데이터 조회를 할 수 있습니다.

좋은 웹페이지 즐겨찾기