2016-10-06 6 views
2

스타 다이어그램을 모델링하도록 요청 받았습니다.큰 치수의 주기적 스냅 샷 사실 테이블

  1. 날짜 (년, 월, 일, 주, 분기, ...)
  2. 장소 (500 개 고유 값)
  3. 제품 (80K 다른 제품)
:
나는 3 차원이

주요 질문은 모든 장소에서 하루가 끝날 때 얼마나 많은 항목 (제품)이 저장되는지입니다.

차원 모델링과 관련하여 약간의 학습을 마친 후. 주기적 스냅 샷 테이블을 구현해야한다고 생각합니다. Kimball Docs를 읽는 동안 필자는주기적인 스냅 샷이 모든 차원 조합에 대한 항목을 필요로한다는 것을 알아 냈습니다. 즉, 매일 40M 행을 추가해야합니다 (80k * 500).
제품이 (실제) 느린 발동기이고 많은 장소에 장시간 제품이 인 제품이 있다는 것을 알고 있다면 이는 극단적 인 잔인한 소리처럼 들립니다.
FYI 소스 DB의 트랜잭션은 3 년 후 150k 행입니다.

매일 40M 행을 실제로 추가해야합니까? 아니면 비어있는 매장에 제품을 지정하여 추가 할 수 있습니까? 또한 어떤 이유로 든 모든 상점이 비어있는 경우에도 해당 일에 대한 항목을 만들어야합니까? (매장 및 제품의 경우 N/A가 필요합니까?)

+0

나중에 질문 할 질문을 모르기 때문에 항상 가장 낮은 곡물로 가야합니다. "N/A"가있는 빈 상점을 처리하는 규칙을 정의하면이를 수행 할 수 있습니다. 또는 어쩌면 비즈니스에서이 케이스를 식별하고 이후에 모델링 할 것인지 묻습니다. – tobi6

+0

나는 가장 낮은 그레인에 동의하지만 트랜잭션으로 만들고 싶지 않다. 내 쿼리를 더 복잡하게 만든다. (목표는 각 매장에 대해 지난 10 일간의 그래프를 갖고 트랜잭션 그레인으로 많은 날짜가 채워지지 않을 것임) – Bee157

+0

나는 항상 가장 복잡한 세분성을 갖도록하기 위해 좀 더 복잡한 질의와 좋은 인덱스를 사용했다. – tobi6

답변

2

올바르게 모델링했습니다. 사양에 따라 다르지만 일반적으로 위치에있는 제품 만 저장하면 (사용자가 0을 저장하지 않음) 최대 80k보다 훨씬 적은 수를 생성 할 수 있습니다.

숫자를 더 줄이려면 마지막 N 일을 저장 한 다음 데이터를 "콜드"테이블로 옮길 수 있습니다. 지난 10 일간의 스냅 샷을 저장 (말) 한 다음 주요 "핫"사실 테이블에 매월 스냅 샷 만 저장합니다.

환경에 따라 보고서 시스템에서 스냅 샷을 계산할 가능성을 제외하지 마십시오 (예 : MDX 또는 DAX의 경우). 혼합 솔루션도 가능합니다 (즉, 지난 달 계산 만 가능).