문제

사실과 희미한 테이블을 설정하고 시간 값을 설정하는 가장 좋은 방법을 찾으려고 노력하고 있습니다. AdventureWorksDW는 딤 타이트 테이블의 각 시간 항목에 대해 Timekey (UID)를 사용합니다. 대신 시간 값을 사용해서는 안되는 이유가 있는지 궁금합니다. 즉, 0106090800 (내 세분성은 시간별)입니까?

도움이 되었습니까?

해결책

"지능형 키"(이 경우 코딩 된 날짜 및 시간 번호)는 차원에서 정의를 변경하려고 할 때 문제를 일으킬 수 있습니다. 예를 들어, 사용자는 현지 시간에서 UTC로의 변경을 고집 할 수 있습니다. 이제 키는 더 이상 실제로 유용한 숫자가 아니며 차원의 오래된 값입니다.

또한 자정 롤오버 문제로 인해 지능형 키의 날짜 부분은 UTC의 실제 날짜와 현지 시간 변경과 일치하지 않을 수 있습니다.

키가 문제가되지 않도록하려면 어떤 종류의 계산에도 사용할 수 없습니다. 이 경우 간단한 가이드 또는 자동 증가 번호보다 조금 낫습니다.

자동 증가 키 (또는 안내서)는 빠르고 간단합니다. 가장 중요한 것은 모든 차원에서 사소한 일관성이 있습니다.

시간은 숫자 매핑을 가지고 있지만, 이것을 보는 데 도움이되는 것은 좋은 디자인의 기초가 아니라 이상한 우연의 일치입니다.

다른 팁

여기 랄프 킴볼이 있습니다 최신 시간 차원에서. 2004 년 날짜이지만 여전히 좋습니다.

이 하나 도 도움이 될 것입니다.

기본 키는 대리가되어야합니다. 그러나 날짜 치수 키에 yyyymmdd를 사용하는 것은 저항하기 어렵고 쉬운 테이블 파티셔닝을 가능하게합니다. 속임수는 여전히 의미가없는 것으로 간주되어야한다는 것입니다. 날짜처럼 보인다는 사실은 순전히 우연의 일치로 간주되어야합니다. 이 키는 비즈니스 사용자에게 노출되어서는 안됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top