다중 팩트 관계 모델을 사용해야 하는 경우
다중 팩트 관계 모델은 단일 데이터 원본에 서로 관련이 없는 테이블을 추가한 다음 시각적 분석 중에 관련 필드를 사용하여 기본적으로 컨텍스트에 따라 테이블을 스티치할 수 있는 데이터 모델입니다. 혼합과 달리 데이터는 단일 데이터 원본 내에 존재하므로 주 데이터 원본 및 보조 데이터 원본의 개념이 적용되지 않으며 왼쪽 조인에서 데이터가 삭제되지 않습니다. 단일 테이블 데이터 모델과 달리 여러 개의 기본 테이블은 테이블 간에 공유되는 테이블에 대한 자체 컨텍스트 설명을 유지합니다. 다중 팩트 관계 데이터 모델을 사용하면 Tableau에서 다중 팩트 분석을 수행할 수 있는 더 많은 옵션이 제공됩니다.
날씨와 아이스크림 판매 추세를 함께 분석하려는 경우를 예로 들어 보겠습니다. 날씨와 아이스크림 판매는 모두 특정 시간과 특정 장소에서 발생하지만, 아이스크림 판매와 날씨 사이에는 직접적인 연관성이 없습니다. 이는 날짜 및 위치라는 공유된 개념과 관련이 없는 데이터 조각입니다.
이 질문은 다중 팩트 관계 모델을 만드는 데 도움이 됩니다. Ice Cream Sales(아이스크림 판매) 및 Weather(날씨)를 각각 기본 테이블로 추가하고 공유 테이블인 Date(날짜) 및 Location(위치)와 관계를 설정할 수 있습니다.
관련 없는 테이블을 모델링하는 기능을 구축한 이유가 무엇입니까?
분석에는 종종 서로 직접적인 관계는 없음에도 날짜, 위치 등 동일한 공통 정보와 관련된 테이블의 데이터를 함께 가져오는 작업이 포함됩니다. 다중 팩트 관계 모델은 관련성 정도 개념을 도입하여 느슨한 의미적 결합을 지원하며, 서로 관련이 없는 여러 개의 기본 테이블로 데이터 모델을 구축할 수 있습니다.
의미론적 결합은 데이터가 얼마나 긴밀하게 결합되어 있는지 설명하는 데 사용되는 용어입니다. 조인 또는 유니온은 여러 테이블을 새로운 물리적 테이블로 결합한 다음 단일 테이블로 작동하게 하는 긴밀한 의미론적 결합입니다. 관계는 테이블을 논리적으로 서로 연결하여 개별 테이블로서의 고유한 상태를 유지하는 테이블 간의 느슨한 결합입니다. 의미론적 결합 스펙트럼에서 더 나아가 데이터 혼합은 개별 데이터 원본의 결과를 두 데이터 원본 간에 공유되는 요소를 기반으로 시각적으로 결합하는 것입니다. 다중 팩트 관계 모델은 혼합에 가깝지만, 데이터 원본 전체가 아닌 단일 데이터 원본 내에서 사용됩니다.
다중 팩트 관계 모델(여러 기본 테이블이 있는 데이터 모델)은 공유 테이블이 함께 모델에 존재하는 한 모델에서 관련 없는 테이블을 허용합니다. 분석 중에 공유 테이블의 필드는 공통된 공유 차원(예: 같은 위치 또는 같은 시간에 발생)을 기반으로 서로 관련 없는 데이터 테이블을 함께 '스티치'합니다. 각 테이블의 세부 사항이나 기본 세부 수준을 유지하는 등 관계의 모든 이점이 유지됩니다.
단일 기본 테이블 데이터 모델과 마찬가지로, Tableau는 비주얼리제이션의 구조를 기반으로 백그라운드에서 사용할 최상의 조인 유형을 결정합니다. 그러나 다중 팩트 관계 모델에서는 다양한 수준의 관련성을 처리하기 위해 외부 조인과 교차 조인을 포함하도록 조인 옵션이 확장됩니다. 자세한 내용은 다중 팩트 관계 데이터 모델 정보를 참조하십시오.
이름은 어디에서 유래되었습니까?
다중 팩트 관계는 다중 팩트 분석에서 이름을 따왔습니다. 데이터 웨어하우스 모델에서 데이터는 차원 테이블로 둘러싸인 중앙 팩트 테이블에 저장됩니다. 이 맥락에서 팩트는 데이터에 대한 팩트를 포착하는 데이터의 숫자 필드인 측정값 또는 메트릭, 즉 Tableau의 측정값을 의미합니다. 차원 테이블에는 이러한 팩트에 대한 특성이 포함되어 있습니다.
팩트 테이블을 기반으로 하는 스키마는 차원 테이블 구성 방식에 따라 스타 또는 눈송이 모양으로 구성되는 경우가 많습니다. 팩트 테이블 전체에 걸쳐 분석을 수행해야 하는 경우 이를 다중 팩트 분석이라고 합니다. 분석은 공유 차원 또는 준수 차원이라고 하는 공통 차원 테이블의 컨텍스트에서 수행됩니다. Tableau에서는 관계를 사용하여 이러한 데이터 모델을 작성하므로 이 기능 집합을 다중 팩트 관계라고 명명했습니다.
다중 팩트 관계 데이터 모델을 사용해야 하는 경우
데이터가 모두 서로 관련된 테이블로 구성된 경우 관계로 구축된 단일 기본 테이블 데이터 원본을 사용할 수 있습니다. 다중 팩트 관계 모델은 데이터가 여러 팩트 테이블의 형태로 서로 다른 개념에 걸쳐 있거나 서로 관련이 없는 여러 컨텍스트에 걸쳐 있는 경우에 필요합니다.
가능하다면 단일 기본 테이블을 사용하여 데이터 원본을 구축하십시오. 단일 기본 테이블 데이터 모델에서는 모든 테이블이 서로 관련되어 있으므로 관련성 정도를 고려할 필요가 없습니다. 다중 팩트 관계의 데이터 모델 구조가 필요할 때만 다중 팩트 관계를 사용하십시오.
다중 팩트 분석
다중 팩트 분석은 Tableau에서 다중 팩트 관계의 핵심 사용 사례입니다. 이 예에서 팩트 A와 팩트 B는 Date 테이블을 공유합니다.
Tableau에서 이를 모델링하기 위해 팩트 테이블이 기본 테이블이 되고 공유 차원 테이블에 대해 여러 수신 관계가 설정됩니다.
기타 시나리오
그러나 다중 팩트 관계 데이터 모델은 다중 팩트 분석만을 위한 것이 아닙니다. Tableau에서는 팩트 또는 차원 테이블에 대한 엄격한 정의가 필요하지 않습니다. 모든 테이블이 기본 테이블이 될 수 있습니다(단, 기본 테이블의 특성에 적합해야 함). 다중 기본 테이블 데이터 원본을 나타내는 몇 가지 시나리오가 도움이 될 수 있습니다.
- 단계를 거쳐 이동: 지원서, 성적표 및 동문 행사에 대한 기본 테이블과 같은 단계를 거쳐 공유 학생 테이블로 이동합니다.
- 동일한 이벤트에 대한 다른 컨텍스트: 진료 예약 및 청구 송장 이벤트에 대한 기본 테이블과, 의사 또는 환자 컨텍스트를 설정하는 공유 테이블을 사용할 수 있습니다.
- 서로 연관될 수 있는 다양한 도메인: 아이스크림 판매와 날씨가 날짜 및 위치의 공유 테이블을 통해 상관 관계를 갖는 것처럼, 이전에는 데이터 혼합으로 가장 잘 처리할 수 있었던 시나리오와 같이 서로 연관될 수 있는 다양한 도메인이 있습니다.
다중 팩트 관계가 유용한 경우에 대한 자세한 내용은 Tableau 블로그 게시물 Tableau에서 다중 팩트 관계를 사용하는 경우 및 방법(영문)을 참조하십시오.
기본 테이블 식별
다중 팩트 관계 모델에서는 방향성이 중요합니다. 즉, 모델의 왼쪽에서 어떤 테이블이 기본 테이블이고 어떤 테이블이 다운스트림에서 공유되는지는 분석 결과를 반환하기 위해 관계를 평가하는 방식에 영향을 미칩니다.
청구서, 예약, 의사 및 환자의 개념적 나비넥타이를 고려하십시오.
Tableau에서 데이터 모델을 작성하는 올바른 방법은 Invoices(청구서)와 Appointments(예약)를 기본 테이블로 사용하고 Doctors(의사)와 Patients(환자)를 공유 테이블로 사용하는 것입니다(Doctors 및 Patients를 기본 테이블로 사용하지 않음).
정답: Invoices 및 Appointments를 기본 테이블로 사용 | 오답: Doctors 및 Patients를 기본 테이블로 사용 |
개념적으로 환자(또는 의사)는 예약 이벤트와 청구서 이벤트를 하나로 스티치하는 엔터티입니다.
데이터 모델이 역방향인 경우(예: 예약 및 청구서 대신 의사 및 환자를 기본 테이블로 사용하는 경우) 외부 조인 스티칭 동작은 그다지 유용하지 않습니다. 분석 결과에 테이블 범위 측정값과 모호성이 많이 나타날 수 있습니다. 예상하지 못한 모호하게 관련된 필드가 있는 경우 기본 테이블로 사용 중인 테이블을 재평가하고 데이터 모델을 역방향으로 전환해야 하는지 확인하십시오.
기본 테이블과 공유 테이블의 특성
다중 팩트 분석을 수행하는 경우 팩트 테이블은 기본 테이블이 되고 모든 공유 차원 테이블은 공유 테이블이 됩니다. Tableau에서는 팩트 및 차원 테이블 특성을 엄격하게 준수할 필요가 없습니다. 그러나 어떤 테이블이 기본 테이블이고 어떤 테이블이 공유 테이블인지 식별하는 데 도움이 될 수 있는 특정 특성이 있습니다.
기본 테이블 | 공유 테이블 |
데이터 웨어하우스 스키마의 팩트 테이블 | 데이터 웨어하우스 스키마의 공유 차원 또는 준수 차원 테이블 |
컨텍스트나 분석에 따라 달라짐 (항공편 정보, 에너지 사용량) | 다양한 컨텍스트에서 일관된 개념 (날짜, 위치) |
주로 측정값 | 주로 차원 |
더 자주 업데이트됨/트랜잭션형 (진료 예약, 처방전, 바이탈) | 더욱 안정적/지속적 (의사, 환자) |
외래 키 필드가 있음 | 기본 키 필드가 있음 |
이벤트 기반 (수업 일정, 과제 성적) | 엔터티 기반 (학생, 교실) |
기본 테이블과 공유 테이블 사이에 중간 테이블이 있는 경우 데이터 모델을 근본적으로 변경하지 않고도 어느 테이블이 기본 테이블인지 바꿀 수 있습니다. (첫 번째 예에서는 Parlor Info 및 Ice Cream Sales가 해당) 중요한 것은 공유 테이블의 업스트림은 무엇이고 공유 테이블은 무엇인지입니다.
추가적인 기본 테이블을 사용해 보는 대안
다음과 같이 단일 기본 테이블 데이터 원본이 아닌 여러 기본 테이블을 사용하여 다중 팩트 관계 모델을 구축해야 할 수 있는 다양한 시나리오가 있습니다.
- 주기가 있는 데이터 원본을 구축하려는 경우 다운스트림 테이블은 대신 다른 기본 테이블이어야 합니다.
- 동일한 관계 절 집합(예: 날짜 및 위치)에 관련된 일련의 테이블이 있는 경우 해당 차원을 추출하여 대신 공유 테이블로 만들어야 합니다.
- 여러 관계 절이 모두 참(논리적으로 AND)이어야 테이블이 해당 레코드에 대해 연관성을 갖기 때문에 이는 특히 유용합니다.
- 대신 한 번에 하나만 참일 수 있는 레코드(상황별 OR)를 분석하려는 경우, 공유 차원 테이블로 데이터 모델을 설정하면 이러한 유연성이 제공됩니다.
- 혼합을 사용 중이지만 주 및 보조 데이터 원본이 없는 동등한 혼합을 원한다면 혼합의 데이터 원본을 공유 테이블의 연결 필드와 결합하는 데이터 모델을 구축하면 됩니다.