0

CRM에 대한보고 플랫폼을 구축하려고합니다. 시스템 설계에는 각 클라이언트에 대해 동일한 구조의 별도 DB가 있습니다. 이 50 개의 DB를 보고서 서버에 복제 (트랜잭션)하고 있지만 이제는 모든 데이터를 하나의 '보고'DB로 가져 오려고합니다. 각 테이블에는 레코드를 고유하게 유지하고 새 클라이언트 테이블에 링크하는 새 클라이언트 ID 열이 있습니다.SQL Server 크로스 데이터베이스보기

가능한 한 데이터를 최대한 오래 사용할 수 있기를 바랍니다 (따라서 트랜잭션). 나는 큰 십자가 데이터베이스 뷰를 사용하는 것을 생각했는데, 이것이 뭔가를하는 가장 좋은 방법이 아니라는 것을 말해 준다.

업데이트, 삭제 또는 삽입이있을 때마다보고 DB를 업데이트 한 각 클라이언트 DB에 트리거가 발생할 수 있다고 생각합니다. SSIS를이 용도로 사용할 수 있는지 확실하지 않습니다. 나는 과거에 ETL에만 사용했다.

여러 데이터베이스를 함께 가져와 데이터를 프로덕션 환경과 동기화하는 것이 가장 좋은 방법이 무엇인지 알고 싶습니다.

+0

내가 동기화하려는 각 테이블에 대해 SSIS 예약 병합 문을 사용합니다. –

답변

1

나는보기를 분명히하지 않을 것이다. 조인은 미친 짓이며 새로운 클라이언트를 추가 할 때 확장되지 않습니다.

나는 트리거를 사용할 수도 확실하지 않습니다. 그것은 효과가있을 수 있지만, 실제로 그 시점에서 복제를 복제하지 않습니다?

나는 복제를 사용하여 해당 테이블을보고 서버에 복제합니다. 그런 다음 복제 된 테이블을 원하는대로 만들 수 있습니다. 복제는 제대로 작동하기에는 약간의 고통이 될 수 있지만 작동하면 정말 훌륭합니다.