2017-12-24 2 views
0

에서 (DB2)에 대상 테이블 (DB1)에 소스 테이블의 모든 데이터를 얻을. db1의 경우 읽기 권한이고 db2 인 경우 읽고 쓰기 권한입니다. DB1되는 프로덕션 데이터베이스 내 작업은 DB2에서 '새로 테이블을 만들 수 '는에 DB1에 점진적으로 'public.purchases'테이블의 모든 데이터를 얻을 것입니다, 'public.purchases'라는 테이블이 있습니다 (테이블을 'public.purchases_copy'라고 부릅시다.) 그리고이 작업을 수행하기 위해 스크립트를 실행할 때마다 에있는 'public.purchases_copy'인 대상 테이블을 db2 테이블을 완전히 다시로드하지 않고 업데이트해야합니다.는 점진적으로 나는 AWS 서버 엔드 포인트에 두 PostgreSQL을 데이터베이스 <strong>DB1 = 소스 데이터베이스</strong> 및 <strong>DB2 = 대상 데이터베이스</strong>이 PostgreSQL을

제 질문은이 작업을보다 효율적으로 수행하는 가장 좋은 방법입니다. 나는 꽤 많은 온라인 리서치를 수행했으며, 'psycopg2'모듈을 사용하여 Python을 PostgreSQL에 연결함으로써이 문제를 해결할 수 있음을 알았습니다. 나도 파이썬에 익숙하지 않아서 누군가가 StackOverflow의 링크를 지적 해 주었고 비슷한 질문에 답을 얻었거나 수행 할 수있는 일에 대해 안내하거나 어떻게 달성 할 수 있는지 또는 특정 튜토리얼을 안내하면 큰 도움이 될 것입니다. 나는 그것을 참조 할 수 있는가? 미리 감사드립니다.

의 PostgreSQL 버전 : 사용 9.5, PostgreSQL의 GUI : pgadmin 3, 파이썬 버전이 설치 :이 사용하는 파이썬을 할 수 있지만 3.5

답변

1

, 내가 포스트 그레스에보고 첫 번째 추천 자신의 모듈 postgres_fdw, 가능한 경우 당신은 그것을 사용하기 위해 :

postgres_fdw 모듈은 외부 데이터를 래퍼를 제공 PostgreSQL를 외부 서버에 저장된 데이터를 액세스하는 데 사용할 수 postgres_fdw.

당신이 원하는 각 원격 테이블, FOREIGN TABLE 또는 IMPORT FOREIGN 스키마를 작성하여, 외국 테이블을 만듭니다 postgres docs 볼 수 있지만, 특히 당신이 그것을 설정 한 후, 당신은 할 수

세부 사항 접속하다. 외부 테이블 의 열은 참조 된 원격 테이블과 일치해야합니다. 가능하면 외부 테이블 개체의 옵션으로 올바른 원격 이름을 지정하면 원격 테이블과 다른 테이블 및/또는 열 이름을 사용할 수 있습니다.

지금 당신이 데이터에 액세스하는 외국 테이블에서 선택 만하면 간단한 설정에 대한 기본 원격 테이블

에 저장, 아마 외국 하나 DB를 읽기 전용으로 사용하는 것이 가장해야한다.