2017-01-23 3 views
0

현재 프로덕션 응용 프로그램을 지원하는 분석 솔루션을 개발할 잠재력이있는 개발 프로젝트가 있습니다. 명백하게 우리는 합리적으로 최신 데이터에 대해 쿼리를 실행하려고하지만 주 데이터베이스를 (아마도 값 비싼) 분석 쿼리로 직접 쿼리하는 운영상의 위험을 원하지는 않습니다.분석을위한 PostgreSQL 데이터 복제

  • 는 별도의 "분석"데이터베이스
  • 에 "생산"PostgreSQL 데이터베이스의 복제본을 만드는 방법 등 추가 테이블/뷰를 추가

    나는 우리가 다음을 수행하고 싶은 생각이 작업을 수행하려면 분석 솔루션 만 지원하는 "analytics"데이터베이스와 이 아닌은 응용 프로그램 DB의 일부가되어야합니다.
  • 은 (실시간 복제가 반드시 필요하다고 단정 할 수는 없지만 몇 초 지연보다 더 좋은 없을 것) 합리적으로 최신의 방식으로 생산 데이터의 복제 사본을 유지

데이터베이스가되지 않습니다 지나치게 큽니다 (많은 사용자가 있지만 한 번에 활성화 될 가능성이 거의없는 웹/모바일 응용 프로그램입니다).

PostgreSQL에서 가능할 가능성이 있습니까? 그렇다면 가장 좋은 전략/복제 기법은 무엇입니까?

답변

1

읽기 전용 데이터베이스에 테이블을 추가 할 수 없기 때문에 streaming replication을 사용할 수 없습니다. 그러나 프로덕션 데이터베이스에 추가 테이블을 추가하지 않아도된다는 재고가있을 수 있습니다.

그러나 Slony, Bucardo 또는 Londiste과 같은 다른 복제 기술이 있습니다.

온라인 트랜잭션 처리 데이터베이스에 적합한 데이터 모델은 일반적으로 분석 응용 프로그램에 적합하지 않으므로 분석 쿼리의 성능에 상당히 만족하지 않을 수 있습니다 . 이를 위해 일반적으로해야 할 일은 data warehouse 일종의 데이터를 더 비정규 화 된 형식으로 저장하는 것입니다. 일반적으로 star schema과 같은 형식으로 저장됩니다.

그러나이 경우에는 “의 지연 시간이 ”이되지 않습니다. 그것이 정말로 필수적인 것인지 두 번 확인하십시오. 일반적으로 분석 쿼리에는 적합하지 않습니다.

+2

pglogical 또는 BDR도 옵션이 될 수 있습니다. –

+0

답변을 주셔서 감사합니다. 그럴 수도 있습니다. 물론 원시 데이터 테이블이 분석 쿼리에 적합하지 않다는 것을 알고 있습니다 (추가 테이블의 주된 이유입니다). – mikera

관련 문제