프로덕션 환경에서 데이터베이스의 크기는 수백 기가 바이트입니다. 개발 및 테스트를 위해 기능적으로는 동일하지만 크기가 10GB 또는 20GB에 불과한이 데이터베이스의 스냅 샷을 생성해야합니다.
문제는 비즈니스 엔터티의 데이터가 여러 테이블에 분산되어 있다는 것입니다. 일부 엔티티 만 덤프에 포함 되도록 일종의 필터링 된 스냅 샷을 생성하려고합니다 . 이렇게하면 개발 및 테스트를 위해 매월 새로운 스냅 샷을 얻을 수 있습니다.
예를 들어 다음과 같은 다 대다 관계를 가진 항목이 있다고 가정 해 보겠습니다.
- 회사에는 N 개의 부서가 있습니다.
- 부서에는 N 명의 직원이 있습니다.
- 직원이 N 개의 출석 기록을 가지고 있습니다.
1000 개의 회사, 2500 개의 부서, 175000 명의 직원, 수천만 개의 출석 기록이있을 수 있습니다. 우리는 예를 들어 처음 100 개 회사 와 모든 구성 부서, 직원 및 출석 기록 을 가져 오는 복제 가능한 방법을 원합니다 .
현재 스키마에 pg_dump를 사용하고 --disable-triggers 및 --data-only와 함께 pg_dump를 실행하여 더 작은 테이블에서 모든 데이터를 가져옵니다. 우리는 빠른 개발주기를 가지고 있고 사용자 지정 스크립트가 깨지기 쉽고 오래 될 가능성이 있기 때문에 데이터의 일부를 추출하기 위해 사용자 지정 스크립트를 작성하고 싶지 않습니다.
어떻게 할 수 있습니까? 데이터베이스에서 논리 파티션을 가져 오는 데 도움이되는 타사 도구가 있습니까? 이러한 도구를 무엇이라고합니까?
일반적인 조언도 감사합니다!