2011-05-09 1 views
1

DW에 대한 위치 치수 테이블 작성; 저는 날짜/시간에 익숙하지만 위치에 대해서는 대륙, 국가, 지역, 도시, 우편 등의 열을 사용하고 있습니다. 이제 문제는 레코드에 도시 ​​나 우편이없고 지역으로 만 끝나는 경우입니다. DW에는 모든 기록에는 도시가 있지만 사실 테이블에는 설문 조사 수집시 필수 데이터가 아닌 데이터가있을 수 있으므로이 테이블을 디자인하는 방법은 무엇입니까? 나는 나머지를 국가를위한 대륙과 같은 관계를 구축하고있는 동안 지키고있는 동안, 오직 나라, 유일한 도시, 유일한 우편, 등등을 제외하고는 오직 자치령 만 행을 삽입해야합니까?위치 치수 테이블

답변

2

이 문제를 처리하는 두 가지 기본 방법.

  1. 를 사용하여 누락 된 값에 대한 알 수없는. 따라서 각 도시에는 알 수없는 우편 번호가 있으며, 각 지역은 알 수 없음 도시입니다. citypostal 열을 드롭이 경우 -이 방법 region로 끝나는 위치, City='unknown' , Postal='unknown'

  2. 단순히 모든 레코드에 존재에만 열을 사용 있습니다. Darmir의 솔루션은 흥미 롭다 @

+0

null 대신 '알 수 없음'을 사용하면 실제로 임시 쿼리 및/또는 보고서를 작성해야하는 분석가에게 시간을 절약 할 수 있습니다. – Olaf

+0

이것은 아마도 가장 좋은 방법입니다. –

0

, 그 큰 플러스가 한 테이블에 지리적 데이터를 유지한다는 것입니다, 단점은 당신이 대륙, 국가, 지역에 대한 '알 수없는'레코드 매우 많은 수를 얻을 수 있다는 것입니다, 도시, 우편 조합 - ETL 중에 즉석에서 생성되거나 하나의로드로 생성됩니다 (최종적으로 완료 될 수있는 경우).

자연스럽게 여기에 계층 구조가 있으므로 분명히 사용하려고합니다.

하지만 대신에 하나의 치수 표 대신 여러 치수 표를 작성하는 것이 흥미로울 수 있다고 생각합니다. 최악의 경우, 각각의 DimContinent, DimCountry, Dimregion, DimCity 및 DimPostCode에 대용 키가있는 Fact 테이블을 가질 수 있습니다. 그러나 일부 프로파일 링을 사용하면 이러한 테이블을 함께 분류 할 수 있습니다. 뒤에 오는 질문을 고려하십시오 ...

  1. (항상/일반적으로) 채워지는 필드가 있습니까?
  2. 필드 세트가있는 경우 하나가 채워지면 다른 필드도 채워지겠습니까?
  3. 누락 된 데이터를 향상시키고 채우기 위해 참고 자료를 얻을 수 있습니까?

다음 (2) 국가가 기입되면 대륙이 제출되고 그렇지 않으면 둘 다 알 수 없음을 알 수 있습니다. 그러면 자연스럽게 두 필드가 모두 포함 된 DimCountry 테이블을 제안합니다.

"모든 기록에 도시가 있습니다"라고 말하면 데이터를 풍부하게 만드는 방법을 찾을 수 있다면 (단계 3) DimCity 테이블을 만들 수 있습니다 (대륙/국가/지역/도시).

큐브에 이러한 개별 치수를 표시하면 해당 큐브를 계층 구조로 작성한 다음 쉽게 계층 구조를 사용할 수 있습니다.

이 솔루션에 대해 완전히 확신하지는 못했지만 도움이 필요할 경우를 대비하여 앞으로 던질 것이라고 생각했습니다.

0

나는 평생 동안 몇 가지 위치 측정 기준을 만들었으며 현재는 큰 위치 측정 기준을 사용하여 시스템을 관리하고 있습니다. 나는 내가 어떻게 내 블로그에서 그것을 만들 었는지 설명했다. https://dimensionalmodelingblog.wordpress.com/creating-a-location-dimension-in-a-data-warehouse/

위치 치수가 까다롭기 때문에 Ralph Kimball도 문제가 있음을 인식합니다 (데이터웨어 하우스 구축 10 장 참조).

당신은 실제로 각 레벨과 그 레벨 (대륙, 국가, 지역, 도시, 우편물, 대륙, 국가, 지역, 도시 등을위한 하나의 차원)에 대해 5 개의 차원이 필요합니다. 도시 정보가없는 데이터가 있고 지역 차원 등을 사용합니다.

5 개의 별도 테이블을 만드는 대신 하나의 테이블에 모든 것을 만들고 해당 테이블에 대한보기를 만들어 하나의 위치 측정 기준 만 유지하도록 제안합니다. .

이 대륙과 같을 것이다 테이블, 국가, 지역, 도시, 우편, Level1Flag, Level2Flag, Level3Flag, Level4Flag, Level5Flag

프로세스 플래그 값에 적절한 수준의 모든 항목, 첫 번째 각 레벨을 다음 레벨 값으로 입력 : 예를 들어, 콜로라도 주에 15 개 도시가 있으며, 각각 레벨 4로 flaged되고 첫 번째 flaged는 Level3 입니다. 그런 다음 LocationCity보기에 처음 4 개의 열과 필터가 표시됩니다 LocationRegion보기는 Level3Flag의 첫 번째 3 열과 필터를 보여줍니다.

그런 다음 유지 관리 할 하나의 차원 테이블과 최소 크기처럼 작동하는 5 가지 역할보기를 모두 사용할 수 있습니다.