5

데이터 마트를 구축하려고합니다.하나 이상의 팩트 테이블?

저는 많은 차원과 몇 가지 측정 값 - 사실을 가지고 있습니다. 모든 측정 값은 비즈니스 차원에서 모든 차원에 연결됩니다. 모든 조치가 포함 된 하나의 큰 팩트 테이블이 존재한다는 표준 접근 방식이 있습니다.

하지만 아이디어가 있습니다. 각 측정 값에 대해 팩트 테이블을 분리하면 어떨까요? 데이터베이스 성능, 솔루션 확장 성 등으로 무엇을 할 것인가?

EDIT ::: 정말 복잡한 기업 환경에서 olap 큐브를 기반으로하는 거대한 솔루션이있을 것입니다. 따라서 처음에는 쉽게 확장 성과 유지 보수가 가능합니다.

+0

각 측정 값에 대한 별도의 팩트 테이블? 당신은 당신이 생각하고있는 것에 더 구체적 일 수 있습니까? – Diego

+0

모든 측정 값에 대한 별도의 사실 테이블은 측정 값이있을 때와 동일한 수의 사실 테이블이 있음을 의미합니다. 단 하나의 측정 값이있을 때마다 모든 측정 값과 함께 하나의 큰 사실 테이블이있을 수 있습니다. – John

답변

7

절벽 노트 : 확장 성 문제는 하나의 사실 테이블/측정법의 개념과 관련이 있습니다.

목표가 "확장 성 및 유지 관리"인 경우 업계 전반의 표준 방법론 (예 : Kimball)을 고려하고 비즈니스 프로세스별로 사실을 그룹화하고 두 번째로 규격에 맞게 세분화 할 수 있습니다. 확장 성 및 확장 성을 보장하면서 표준화를 통해 최대 유연성 (&)을 제공 할 것입니다.

SAN-admins는 측정 값의 수에 따라 공간 요구 사항을 효과적으로 늘리므로 각 측정 값에 대해 별도의 팩트 테이블을 디자인하는 경우 귀하의 용기가 싫어합니다. 단일 팩트 테이블

DW에 대한 쿼리 성능 또한 문제가 될 수 있습니다 ... 산 관리가 여전히 사용자와 대화하고 충분히 관대 한 경우 보고서 또는 임시 쿼리가 검색해야합니다 (또는 검색 ... ). 사실 테이블의 쓰레기를 올바르게 색인화하는 데 필요한 공간을 부여하려면) 언제든지 1 개 이상의 측정을 결합해야합니다.

아직 olap 큐브에 대해서는 언급하지 않았지만 이미 처리 할 문제가 있습니다. 전반적인 테이블 스캔 ... 또는 파티션 스캔 ... 사실 테이블에 파티션을 구현하면 ... 이제 SQL 2012를 수평선에 놓아야합니다 ... ColumnStore 인덱스를보고 있습니다!

0

모든 측정 단위의 세분성이 동일하면 동일한 테이블에 보관하십시오. 서로 다른 세분화 수준의 사실이있는 경우에만 여러 팩트 테이블을 사용하기 시작합니다. 모든 사실이 모든 차원에 연결되어 있다고 말했듯이이 단계에서는 하나의 사실 테이블 만 필요합니다.

+0

Ther은 치수를 더 많거나 적게 조정하고, 사실을 추가하고, 차원을 추가하는 등 다양한 변경 요청이 될 수 있으며 새 ETL이 필요하고 ETL이 오랜 시간 동안 많은 CPU 전력을 소비 할 수있는 이러한 변경 요청 위에 - 수백만 개의 행이 다시 계산 될 것입니다. 그래서이 방법으로 이것을 보게됩니다. 확장 성과 유지 보수를 쉽게 할 수 있습니다. – John

+0

차원 세분성 변경, 사실 추가, 수정 추가 ... 이들 모두는 별도의 사실 테이블에서 각 사실을 분리했는지 여부와 관계없이 ETL 개발 작업이 필요합니다. –