다중 팩트 관계 데이터 모델 정보
다중 팩트 관계를 사용하면 둘 이상의 기본 테이블이 있는 데이터 원본을 구축할 수 있습니다. 데이터 모델에서 여러 기본 테이블을 사용하면 Tableau에서 다중 팩트 분석을 수행할 수 있습니다.
기본 테이블에 근간을 둔 테이블 트리를 설정하여 서로 다른 개념적 도메인을 가진 데이터 구조를 모델링하고 공유 특성을 사용하여 연결할 수 있습니다. 이러한 유형의 분석을 흔히 다중 팩트 분석, 준수 차원 또는 공유 차원이라고 합니다. Tableau에서는 관계를 사용하여 구축하므로 이를 다중 팩트 관계 데이터 모델이라고 부릅니다. 다중 팩트 관계 데이터 모델에는 항상 여러 기본 테이블이 포함됩니다. 기본 테이블은 데이터 모델에서 가장 왼쪽에 있는 테이블입니다. 기본 테이블로 사용할 테이블을 결정하는 방법에 대한 지침은 다중 팩트 관계 모델을 사용해야 하는 경우를 참조하십시오.
관련성 수준
여러 개의 기본 테이블이 있는 데이터 모델은 데이터 조각이 서로 연관되거나 연관되지 않는 방식에 대해 많은 유연성을 제공합니다.
참고: 모든 수준의 관련성은 여러 기본 테이블이 있는 데이터 모델에만 관련됩니다. 다중 팩트 관계 데이터 모델 이전에는 모든 것이 관련되어 있거나(단일 데이터 원본 이내), 전혀 관련되어 있지 않았습니다(여러 데이터 원본에 걸쳐 혼합).
데이터 모델의 관련성
테이블은 데이터 모델의 구조에 따라 관련되거나, 관련되지 않거나, 공유됩니다. 데이터 원본에서 테이블의 관련성은 일정합니다. 간략히 설명하면 다음과 같습니다.
- 관련 테이블: 같은 트리에 있습니다.
- 2024.2 이전에는 모든 데이터 원본이 단일 트리로 구성된 단일 기본 테이블 데이터 원본이었으며, 단일 기본 테이블 데이터 원본에서는 모든 테이블이 관련되어 있습니다.
- 관련 없는 테이블: 서로 다른 트리에 있습니다. 기본 테이블은 항상 서로 관련이 없습니다. 정확히 하나의 기본 테이블의 다운스트림에 있는 테이블은 다른 트리의 테이블과도 관련이 없습니다.
- 공유 테이블: 여러 개의 수신 관계가 있고 둘 이상의 트리에 속합니다.
- 여러 수신 관계가 있는 테이블의 다운스트림 테이블도 공유된 것으로 간주됩니다.
분석 중 관련성
필드는 관련되거나, 관련 없거나, 아직 관계가 설정되지 않았거나, 모호하게 관련되어 있거나, 스티칭 필드 역할을 할 수도 있습니다. 필드 그룹 간의 관련성은 데이터 모델의 구조, 현재 사용 중인 필드(즉, 알약으로 선반에 있음) 및 해당 필드가 차원 또는 측정값인지 여부에 따라 시트 단위로 결정됩니다.
여러 테이블의 필드를 사용하여 비주얼리제이션을 만들려면 Tableau는 값을 계산하기 위해 백그라운드에서 조인을 수행해야 합니다. 사용되는 조인 유형은 필드의 관련성에 따라 달라집니다. 간략히 설명하면 다음과 같습니다.
- 비주얼리제이션에서 관련 필드를 사용하는 경우 차원이 내부 조인되고 측정값이 차원별로 분류됩니다.
- 이보다 조금 더 복잡해지면 측정값이 누락되지 않도록 하기 위해 백그라운드에서 추가 조인이 필요할 수 있습니다. 그러나 차원만 있는 비주얼리제이션에서는 관련 차원이 내부 조인되며 이것이 여기서의 주요 개념입니다.
- 이는 단일 기본 테이블 모델과 동일한 동작입니다.
- 비주얼리제이션에서 관련 없는 필드 가 사용되는 경우 차원이 교차 조인됩니다. 측정값은 테이블 범위가 지정되고(즉, 전체 테이블에 대해 단일 값으로 로컬 집계됨) 반복됩니다.
- 필드가 아직 관계가 설정되지 않았거나 모호하게 관련되어 있을 수도 있는데, 이는 활성 필드 조합의 경우 테이블 간의 관계를 해결할 수 있는 방법이 두 가지 이상 있다는 의미입니다. Tableau에서는 불확실성이 발견되면 필드를 관련 없는 것으로 처리합니다.
- 필드가 공유 필드를 기반으로 스티치 되는 경우 차원은 외부 조인됩니다. 측정값은 분류될 수 있는 모든 차원 수준에서 집계되며 반복될 수 있습니다.
- 차원 스티칭은 데이터 혼합의 필드 연결과 유사합니다. 관련 필드의 각 쌍에 대해 결과가 계산된 다음, 관련 없는 값은 이들 간에 공유되는 차원의 공유 값에 걸쳐 함께 스티치됩니다.
이러한 모든 개념과 정의는 이 항목의 뒷부분에서 자세히 설명합니다.
Tableau에서 측정값은 집계이며, 뷰의 차원에 의해 설정된 세부 수준까지 집계됩니다. 따라서 측정값은 차원의 맥락에 따라 달라집니다. 예를 들어, '시리얼 상자 수'는 총 재고를 의미하는지 아니면 브랜드별 상자 수를 의미하는지에 따라 달라집니다.
차원은 일반적으로 국가 또는 브랜드와 같은 범주형 필드입니다. Tableau에서 차원은 뷰의 세분성 또는 세부 수준을 설정합니다. 일반적으로는 데이터를 몇 가지 범주 조합의 마크로 그룹화하려고 합니다. 뷰를 작성하는 데 사용하는 차원에 따라 보유하는 마크 수가 결정됩니다.
측정값이 차원 없이 사용되는 경우 테이블 범위가 지정되었다고 합니다. 즉, 해당 값은 전체 테이블에 대해 완전히 집계된 값입니다. 비주얼리제이션에서 브랜드와 같은 차원을 사용하면 측정값이 더 세밀하게 분류됩니다. 이제 시리얼 상자의 총 개수는 브랜드별로 표시됩니다.
집계는 데이터가 결합되는 방식을 나타냅니다. Tableau에서 기본 집계는 SUM입니다. 이 집계를 평균, 중앙값, 고유 카운트, 최소값 등의 다른 옵션으로 변경할 수 있습니다. 세부 수준은 측정값이 얼마나 상세하거나 세분화 또는 분류되어 있는지를 나타내며, 이는 차원에 의해 제어됩니다. 측정값의 세부 수준이 행 수준(즉, 집계 해제됨)이 아닌 경우 해당 값을 집계해야 합니다.
예
'시리얼 상자 수'의 값은 무엇입니까?
이는 집계 유형과 차원에 설정된 세부 수준에 따라 달라집니다.
- 집계:
- 합계(또는 총합)
- 평균
- 세부 수준:
- 테이블 범위 지정/전체 집계(예시에서 파란색 막대)
- 브랜드 차원(예시에서 색상별 막대)으로 분류됨
필드 수준 관련성 표시기
분석에 사용하는 필드의 관련성 정도를 이해하는 데 도움이 되는 몇 가지 시각적 단서가 있습니다.
워크시트의 관련성 표시기
- 관련 없음 아이콘: Tableau에서 관련 없음 아이콘 이 사용되어 뷰의 일부 항목이 관련되어 있지 않음을 나타냅니다. 뷰 또는 데이터 패널의 알약에 관련 없음 아이콘이 표시되는 경우 아이콘을 마우스오버하면 자세한 정보를 볼 수 있습니다.
- 관련 있음 아이콘 은 필드가 관련 없는 필드를 스티칭하고 있음을 나타냅니다.
- 밝은 회색 필드명: 선반에서 사용 중인 어떤 필드와도 관련이 없는 필드명의 경우 데이터 패널에 밝은 회색 텍스트로 표시됩니다. 해당 비주얼리제이션에서 이러한 필드를 분석에 계속 사용할 수 있지만 관련 없는 필드는 관련 있는 필드와 분석에서 다르게 평가됩니다. 마우스오버하면 이러한 필드에도 관련 없음 아이콘이 표시됩니다.
참고: 이전 버전의 Tableau에서는 밝은 회색 필드명이 필드가 숨겨져 있고 숨겨진 필드 표시가 선택되어 있음을 나타냅니다. 숨겨진 필드가 표시된 경우 이제 클릭 가능한 눈 아이콘 으로 나타납니다.
관련성 경고 대화 상자
관련 없는 필드가 비주얼리제이션에서 함께 사용되는 경우 Tableau는 필드가 서로 관련이 없음을 알려주는 경고 대화 상자를 표시합니다. 이 경고는 성능에 영향을 줄 수 있는 우발적인 교차 조인을 방지하기 위해 관련 없는 필드를 추가할 때마다 나타납니다.
- 스티칭 없이 관련 없는 필드를 사용하려면 추가를 클릭하여 비주얼리제이션에 필드를 계속 추가합니다.
- 관련 없는 필드를 스티칭하려는 경우 스티칭 필드를 관련 없는 필드 앞에 가져오는 것이 가장 좋습니다. 스티칭 필드가 이미 사용 중인 경우 대화 상자에 표시되지 않습니다. 스티칭이 교차 조인을 방지하는 방법에 대한 자세한 내용은 각 관련성 수준에 조인을 사용하는 방법을 참조하십시오.
여러 필드가 추가 중이거나 이미 뷰에 있는 경우 세부 정보 영역이 대화 상자에 나타납니다. 사용 중인 모든 필드의 관련성에 대한 추가 정보를 확인하고 관련성 문제가 발생하는 위치를 식별하려면 이를 확장하면 됩니다.
경고 메시지가 전혀 나타나지 않게 하려면 이 메시지를 다시 표시 안 함 옵션을 선택합니다. 이러한 경고 메시지는 언제든지 다시 켜서 다시 사용하도록 설정할 수 있습니다.
- Tableau Desktop에서 도움말 메뉴 > 설정 및 성능 > 무시된 메시지 재설정을 엽니다.
- 브라우저에서 캐시된 데이터를 지웁니다. 예를 들어 Chrome에서 점 3개 메뉴 > 인터넷 사용 기록 삭제...를 엽니다. > '캐시된 이미지 및 파일' > 데이터 삭제를 선택합니다.
데이터 모델의 테이블 수준 관련성
여러 기본 테이블이 있는 데이터 모델에서 각 기본 테이블은 서로 연관되어 개념적 트리를 형성하는 테이블 집합을 정의합니다. 이러한 트리는 전체 데이터 원본이 단일 엔터티가 되도록 하나 이상의 공유 테이블로 연결되어야 합니다.
이전에는 연결 필드를 사용하여 혼합할 수 있는 두 개의 데이터 원본이 이제 공통 필드를 포함하는 공유 테이블로 연결된 두 개의 트리가 있는 단일 데이터 원본이 될 수 있습니다.
팁:데이터 모델에서 테이블이 관련되는 방식은 분석에서 해당 필드가 관련되는 방식에 영향을 미칩니다. 분석 중에 데이터 원본 탭을 다시 참조하여 테이블이 전체 데이터 모델에 어떻게 들어맞는지 확인하는 것이 유용할 수 있습니다.
이 예제 데이터 원본을 사용하여 어떤 테이블이 관련성이 있거나, 관련성이 없거나, 공유되는지 살펴보겠습니다. 두 개의 트리가 있으며, 하나는 기본 테이블 A에 의해 설정되고 다른 하나는 기본 테이블 B에 의해 설정됩니다.
관련 없는 테이블
기본 테이블은 근본적으로 관련이 없습니다. 마찬가지로 단일 트리에만 존재하는 테이블은 다른 트리의 테이블과 관련이 없습니다.
테이블 A와 테이블 X는 서로 관련이 없습니다. | 테이블 B와 테이블 X는 서로 관련이 없습니다. |
관련 테이블
동일한 트리에 있는 테이블은 관련된 것으로 간주됩니다.
테이블 A와 테이블 S는 서로 관련이 있습니다. | 테이블 B와 테이블 S는 서로 관련이 있습니다(테이블 A를 통해). |
공유 테이블
공유 테이블에는 여러 개의 수신 관계가 있습니다. 이러한 테이블은 여러 트리에 속하며 트리 전체에서 공유됩니다.
테이블 S와 테이블 T는 공유됩니다.
분석의 필드 수준 관련성
필드 간의 관련성은 데이터 모델의 구조, 현재 사용 중인 필드(즉, 비주얼리제이션의 어떤 필드가 선반에 알약으로 표시되는지 확인) 및 해당 필드가 차원 또는 측정값인지 여부에 따라 시트 단위로 결정됩니다. 필드 관련성이 비주얼리제이션 결과에 미치는 영향은 다음 섹션에서 다룹니다.
동일한 예제 데이터 원본을 사용하여 몇 가지 시나리오를 살펴보겠습니다. 각 필드의 이름은 테이블 B의 FieldB와 같이 해당 필드가 어떤 테이블에서 가져온 것인지를 나타냅니다. 필드는 별도의 언급이 없는 한 차원 또는 측정값일 수 있습니다.
관련 필드
높은 수준에서, Tableau가 단일 트리 내의 관계 경로를 기반으로 필드를 함께 평가하는 방법을 명확하게 결정할 수 있는 경우 필드는 관련성이 있는 것입니다.
예를 들어, FieldB(테이블 B)와 FieldS(테이블 S)는 서로 관련되어 있습니다.
관련 없는 필드
높은 수준에서 필드는 서로 관련이 없는 경우 어떤 경우에도 관련이 없는 것으로 간주합니다. 두 개의 기본 테이블의 필드를 사용하는 등 필드가 서로 관련이 없는 테이블의 필드이기 때문일 수 있습니다. 이 경우 서로 다른 기본 테이블의 필드는 근본적으로 관련이 없습니다.
예를 들어 FieldA와 FieldX는 서로 관련이 없습니다.
또는 모호하게 관련되거나 아직 관계가 설정되지 않은 경우와 같이 특정 시점에 필드가 서로 관련 없는 것으로 처리될 수도 있습니다. 대부분의 경우 관련성 표시기를 사용하여 비주얼리제이션의 컨텍스트에서 필드가 관련이 없는 경우 이를 알려줄 수 있습니다.
스티칭 차원
스티칭은 분석 중에 Tableau가 다중 팩트 데이터 모델에서 관련 없는 테이블의 필드를 평가하는 방식입니다. 비주얼리제이션에서 공유 테이블의 차원을 사용하면 서로 관련이 없는 필드를 스티치하여 동일한 비주얼리제이션에서 동시에 평가할 수 있습니다. 공유되는 차원을 기반으로 두 트리의 결과를 병치하는 것으로 생각하면 됩니다.
예를 들어 FieldA와 FieldX를 사용하여 비주얼리제이션을 작성한 경우 이 두 필드는 서로 관련이 없습니다. DimensionS를 추가하면 스티칭 필드가 나타납니다.
- FieldA와 DimensionS는 함께 평가됩니다.
- FieldX와 DimensionS는 함께 평가됩니다.
- 이들 중간 결과는 DimensionS 값을 기반으로 통합됩니다.
- 이제 FieldA와 FieldX가 스티치됩니다.
팁: 가장 좋은 방법은 비주얼리제이션에서 스티칭 필드를 사용하여 관련 없는 필드를 가져오는 것입니다. 예를 들어, FieldA, FieldX, DimensionS의 순서가 아닌, DimensionS를 먼저 끌어오거나, FieldA, DimensionS, FieldX의 순서로 끌어옵니다. 먼저 스티칭 필드를 추가하면 Tableau가 항상 관계를 평가하는 방법을 인식하고 관련 없는 차원을 교차 조인과 함께 평가할 때 발생할 수 있는 성능 문제를 방지할 수 있습니다.
스티칭하려면 공유 테이블의 차원이 비주얼리제이션에서 활성 상태여야 합니다. 필터 선반이나 마크 카드의 도구 설명 속성에 배치된 필드는 스티칭을 목적으로 할 때 활성 상태로 간주되지 않습니다.
아직 관계가 설정되지 않은 필드
필드는 여러 가지 방식으로 관련될 수 있지만 아직 관계가 설정되지 않은 상태일 수도 있습니다. 이는 두 공유 테이블(또는 다운스트림 공유 테이블) 간에 둘 이상의 가능한 관계가 있을 때 발생합니다.
FieldS와 FieldT를 예로 들어보겠습니다. 두 테이블은 기본 테이블 A로 정의된 트리와 기본 테이블 X로 정의된 트리를 통해 서로 관련되어 있습니다.
FieldS와 FieldT만 있는 비주얼리제이션에서는 이들의 관계를 설정하는 데 어떤 트리를 사용해야 하는지에 관한 정보가 없습니다. 추가 정보가 없으면 Tableau는 기본 테이블 A의 트리 또는 기본 테이블 B의 트리를 통해 이러한 필드의 관계를 설정할지를 평가할 수 없습니다.
FieldS와 FieldT는 관련 없는 필드로 처리됩니다. 즉, 여러 잠재적인 관계가 있습니다.
가능성이 있지만 아직 관계가 설정되지 않은 필드는 Tableau가 관계 경로를 명확하게 결정할 수 없기 때문에 관련 없는 상태로 평가됩니다. 스티칭만 가능한 실제 관련 없는 필드와 달리, 아직 관계가 설정되지 않은 필드는 해결할 수 있고 필드 관계를 직접 설정할 수 있습니다.
모호하게 관련된 필드
필드는 모호하게 관련될 수도 있습니다. 이는 공유 테이블(또는 다운스트림 공유 테이블) 사이에 둘 개 이상의 가능한 활성 관계가 있을 때 발생합니다. 아직 관계가 설정되지 않은 필드는 관련성이 낮거나 관련성이 부족한 것으로 간주할 수 있고, 이와 달리 모호하게 관련된 필드는 관련성이 매우 높거나 과도하게 관련된 것으로 간주됩니다.
FieldS와 FieldT를 예로 들어보겠습니다. 두 테이블은 기본 테이블 A로 정의된 트리와 기본 테이블 X로 정의된 트리를 통해 서로 관련되어 있습니다.
FieldA, Field X, FieldS 및 FieldT가 있는 비주얼리제이션에서는 이들의 관계를 설정하는 데 어떤 트리를 사용해야 하는지 결정하는 데 필요한 정보가 너무 많습니다. 정보를 정리하지 않고서는 Tableau가 기본 테이블 A의 트리 또는 기본 테이블 B의 트리를 통해 이러한 필드의 관계를 설정할지를 평가할 수 없습니다.
FieldS와 FieldT는 여러 개의 활성 관계가 있지만 관련 없는 것으로 처리됩니다.
모호하게 관련된 필드는 Tableau가 관계 경로를 명확하게 결정할 수 없기 때문에 관련 없는 상태로 평가됩니다. 스티칭만 가능한 실제 관련 없는 필드와 달리, 모호하게 관련된 필드는 해결할 수 있고 필드 관계를 직접 설정할 수 있습니다.
공유 테이블의 측정값
공유 테이블에서 차원을 사용하는 경우 관련 없는 업스트림 테이블의 필드를 함께 스티치합니다. 그러나 측정값은 스티치할 수 없으며 측정값의 값은 관련 차원에 따라 달라집니다.
DimensionA와 DimensionX가 있는 비주얼리제이션에서 이 두 차원은 서로 관련 없습니다. 테이블 S에서 MeasureS를 가져오는 경우, 이 측정값은 DimensionA 및 DimensionX의 조합과 관련이 없습니다. 둘 중 하나에 독립적으로 관련될 수는 있지만 동일한 비주얼리제이션에서 두 차원과 동시에 관련될 수는 없습니다.
공유 측정값은 일종의 모호성 또는 과도한 관련성으로 간주될 수 있으며 이 둘은 동일한 방식으로 해결됩니다.
필드 간의 불명확한 관계 해결
필드 간의 관계를 설정하는 방식에 대해 불확실성이 있는 경우 Tableau는 임의의 결정을 내리지 않고 관련 없는 것으로 처리합니다. 어떤 트리를 사용할지 불확실성을 명확히 하여 이러한 필드의 관계를 설정하는 것이 더 나은 경우가 많습니다.
아직 관계가 설정되지 않은 필드를 해결하려면 사용할 트리를 구성하는 필드를 추가하면 됩니다. 모호하게 관련된 필드를 해결하려면 사용할 트리를 구성하는 필드를 제거하면 됩니다.
예:
아직 관계가 설정되지 않은 필드 해결: 필드 추가
- FieldS 및 FieldT의 비주얼리제이션에서 테이블 A, B 또는 C의 필드를 비주얼리제이션에 추가하면 기본 테이블 A의 트리가 활성화되고 FieldS와 FieldT 사이의 원하는 경로가 해결됩니다.
- 또는 테이블 X의 필드를 사용하면 FieldS와 FieldT 사이의 원하는 경로가 기본 테이블 X의 트리로 해결됩니다.
모호하게 관련된 필드 해결: 하나 이상의 필드 제거
- FieldA, FieldX, FieldS 및 FieldT로 구성된 비주얼리제이션에서 FieldX를 제거하면 기본 테이블 A의 트리만 활성화되고 FieldS와 FieldT 사이의 원하는 경로가 해결됩니다.
- 또는 FieldA를 제거하면 기본 테이블 X의 트리를 통해 FieldS와 FieldT 사이의 원하는 경로가 해결됩니다.
공유 측정값 해결: 하나 이상의 필드 제거
- DimensionA, DimensionX 및 MeasureS로 구성된 비주얼리제이션에서 DimensionX를 제거하면 기본 테이블 A의 트리만 활성화되고 DimensionA와 MeasureS 사이의 원하는 경로가 해결됩니다.
- 또는 DimensionA를 제거하면 기본테이블 X의 트리를 통해 DimensionX와 MeasureS 사이의 원하는 경로가 해결됩니다.
아직 관계가 설정되지 않음 | 모호하게 관련됨 | 단일 트리로 관련성 해결 | |
기본 테이블 A를 통해 관련됨 | 기본 테이블 X를 통해 관련됨 | ||
불확실성을 해결하는 것은 FIXED LOD(세부 수준) 식을 사용하는 것과 유사합니다. FIXED LOD 식에서는 차원 선언을 정의하여 집계할 세부 정보 수준을 Tableau에 알려줍니다. 비주얼리제이션의 구조를 변경하여 하나의 트리만 활성화되도록 함으로써 불확실성을 해결하여 Tableau가 분석을 수행할 때 어떤 관계 경로를 고려할 수 있는지 알려줍니다.
스티칭과 불확실성 해결 비교
스티칭과 불확실성 해결은 모두 비관련성을 처리하는 방법이지만 결과는 다릅니다.
스티칭 | 불확실성 해결 |
공유 특성을 기반으로 관련 없는 필드 병치 | 여러 옵션(모호성 또는 공유 측정값)이 있는 경우 사용할 관계 경로를 좁히거나, 관계 경로가 없는 경우(아직 관계가 설정되지 않음) 관계 경로를 설정합니다. |
여러 기본 테이블 논리를 사용하여 결과 계산 | 단일 기본 테이블 논리를 사용하여 결과 계산 |
분석에 관련 없는 테이블이 포함됨 | 분석에 공유 테이블이 포함됨 |
각 관련성 수준에 조인을 사용하는 방법
필드 수준 관련성이 결정된 후 Tableau는 결과를 평가하여 실제 비주얼리제이션을 만들어야 합니다. 비주얼리제이션에 표시된 값을 계산하는 데 사용되는 쿼리는 조인에 의존합니다. 필드가 관련성이 있는지, 관련성이 없는지 또는 스티치되어 있는지에 따라 조인이 수행되는 방식에 다른 영향을 미칩니다. 참고로, 이 컨텍스트에서는 모호하게 관련된 필드 및 아직 관계가 설정되지 않은 필드는 관련 없는 필드로 처리됩니다.
이 섹션에서는 관련성과 조인을 설명하기 위해 테이블과 해당 필드, 그리고 해당 필드의 값을 사용합니다. Classes(클래스) 및 Clubs(클럽)라는 두 개의 기본 테이블과 Students(학생)라는 공유 테이블이 있는 다음 데이터 모델을 예로 들겠습니다.
Classes | Clubs | Students |
필드:
| 필드:
| 필드:
|
이 매우 간단한 모델은 다중 팩트 관계 데이터 모델에 대해 상위 수준 조인 논리가 계산되는 방식을 보여줍니다. 관계를 기반으로 구축된 단일 기본 테이블 데이터 모델에 사용되는 조인의 기본 사항에 대한 자세한 내용은 관계를 사용하는 다중 테이블 데이터 원본에서 분석이 작동하는 방식을 참조하십시오.
이 세 개의 테이블 데이터 모델의 경우 단일 기본 테이블 모델로 설정하거나, Classes-Students-Clubs 또는 Clubs-Students-Classes로 설정하거나, Students를 기본 테이블로 설정하고 싶을 수 있습니다. 일반적으로 다중 팩트 관계 데이터 모델은 특정 종류의 데이터 스키마 또는 분석 시나리오를 위해 만들어졌습니다. 데이터 모델에 다중 팩트 관계 데이터 모델에 가장 적합한 특성이 있는 경우, 기본 테이블을 개념적으로 관련 없는 상태로 유지하도록 설정합니다. 그러나 데이터에 이러한 유형의 구조가 필요하지 않은 경우에는 단일 기본 테이블 모델을 사용하는 것이 더 간단할 수 있습니다.
이 특정 사례에서는 이러한 테이블, 데이터 또는 모델에 대해 실제로 여러 개의 기본 테이블이 필요한 것은 없습니다. 이 모델은 조인 논리에 집중할 수 있도록 단순하게 유지하기 위한 예시로 사용하고 있습니다. 또는 논의를 지나치게 복잡하게 만들지 않기 위해 무시하고 있는 또 다른 관련 테이블인 Rooms(교실)가 있다고 상상할 수도 있습니다.
그러나 가장 좋은 방법은 데이터에 필요할 때만 다중 팩트 관계 모델을 사용하는 것입니다.
관련 차원은 내부 조인을 사용
관련 차원은 내부 조인됩니다. 내부 조인은 두 테이블에서 공유되지 않는 모든 차원 값을 삭제합니다.
- Tableau는 추가 논리를 사용하여 측정값이 손실되지 않도록 합니다. 이 섹션에서는 차원만 사용하여 Tableau가 관련 차원에 내부 조인을 적용하는 기본 방식을 보여줍니다.
다음 예에서는 데이터에 관련 차원이 있는 행만 반환하는 방법을 보여줍니다. Alarm Calls 101 클래스에 학생이 없으므로 결과에 표시되지 않습니다. Cardinal과 Jay는 어떤 클래스에도 속하지 않으므로 결과에 표시되지 않습니다.
관련 없는 차원은 교차 조인을 사용함
차원을 스티칭하지 않고 자체적으로 관련 없는 차원은 교차 조인됩니다.
교차 조인에서는 결과 조합이 데이터에 실제로 존재하지 않는 경우에도 한 차원의 모든 값이 다른 차원의 모든 값과 결합됩니다. 이 예에서 교차 조인은 Class와 Club의 가능한 각 조합에 대해 행을 추가합니다.
분석에서 교차 조인이 발생하는 경우를 인식하는 것이 중요합니다. 교차 조인에 대한 결과 테이블에 Advanced Songs + First Aid에 대한 행이 있지만 실제로는 이 활동 조합에 학생이 없습니다(다음 섹션의 스티칭 예에서 이에 대한 증거를 볼 수 있음).
모든 교차 조인 결과가 데이터에 기반하지 않는다는 점을 인식하는 것이 왜 중요할까요? 어떤 학생들에게도 갈등이 없도록 클래스와 동호회 일정을 짜려고 한다고 상상해 보십시오. Advanced Songs와 First Aid에는 학생이 없으므로 이 결과를 무시하고 해당 클래스와 동호회를 동시에 예약할 수 있습니다. 교차 조인은 데이터에 실제로 존재하는 값의 조합을 나타내지는 않습니다.
또한 카디널리티(고유 값의 수가 많은 경우)가 높은 경우 교차 조인이 성능에 영향을 미칠 수 있습니다. 연락처의 모든 전화 번호를 모든 이메일 주소와 교차 조인한다고 상상해 보십시오. 그러면 조합이 엄청나게 폭발적으로 늘어나고 잠재적으로 비용이 많이 드는 작업이 될 것입니다.
스티치 차원은 외부 조인을 사용함
스티칭 차원이 있는 경우 관련 없는 차원은 외부 조인됩니다.
이 예에서 Classes 테이블과 Clubs 테이블은 모두 공유 Students 테이블과 관련되어 있지만, 서로는 관련되어 있지 않으므로 Class와 Club 필드는 관련이 없습니다. Student 차원을 추가하면 Tableau가 분석에서 Class의 어떤 값과 Club의 어떤 값을 병치해야 하는지 알 수 있습니다. 이를 외부 조인 동작인 스티칭이라고 합니다.
스티칭은 전체 결과를 위해 다시 통합되는 중간 결과가 있다는 점에서 데이터 혼합과 유사합니다. 그러나 혼합과 달리 스티칭은 왼쪽 조인이 아닌 외부 조인이며 어느 쪽에서도 값을 삭제하지 않습니다. 모두 하나의 데이터 원본인 경우 주 데이터 원본 또는 보조 데이터 원본에 대한 개념이 없으므로 관련 없는 두 필드 모두 동일한 우선 순위가 부여됩니다.
중간 결과는 외부 조인됨
스티치 필드의 외부 조인에는 무엇이 들어갈까요? 관련 없는 필드와 스티칭 필드 각각에 대해 즉시 내부 조인이 계산된 다음 스티칭 차원의 값을 기반으로 중간 결과가 외부 조인됩니다.
예
Student 및 Class에 대한 내부 조인...
...Student 및 Club에 대한 내부 조인...
...그런 다음 Student에서 외부 조인됩니다.
측정값을 유지하기 위한 추가 조인
차원에 대한 조인 논리 외에도 측정값은 추가 조인을 도입할 수 있습니다. Tableau에 관계가 처음 도입되었을 때, 핵심 원칙 중 하나는 측정값이 손실되지 않는다는 것이었습니다. 이는 다중 팩트 관계 데이터 모델에서도 유지됩니다.
필수 세부 정보는 다음과 같습니다.
- 측정값은 관련 차원에 의해서만 분류됩니다.
- 관련 없는 차원에 대한 측정값은 반복됩니다.
- 차원 전용 비주얼리제이션에서 삭제되는 차원 값은 연관된 관련 측정값이 있는 경우 반환될 수 있습니다.
참고: 측정값은 집계이며 비주얼리제이션의 차원 조합에 의해 설정된 세부 수준(세분성)으로 계산됩니다. 이를 차원별로 분류된 측정값이라고 합니다. 측정값이 어떤 차원도 없이 사용되는 경우 테이블 범위가 지정되었다고 합니다. 즉, 측정값은 완전히 집계된 값입니다. 비주얼리제이션에서 차원을 사용하면 측정값은 차원 값을 기반으로 보다 세부적으로 분류됩니다. 따라서 분석의 측정값은 차원의 맥락에 따라 달라집니다.
관련 측정값
관련 차원 Student 및 Class의 내부 조인에 대해 반환되는 차원 값의 하위 집합을 생각해보겠습니다. Finch, Robin 및 Sparrow의 세 학생 값과 Advanced Songs, Nesting Basics 및 Flying for Fledgelings의 세 클래스 값이 있습니다.
Class 테이블에서 Length 측정값을 추가하면 네 개의 클래스가 모두 표시되고 Student에 대해 null이 있는 것을 볼 수 있습니다. 모든 클래스의 Length가 Class 수준에 표시됩니다.
대신 Student 테이블에서 Age 측정값을 추가하면 5명의 학생이 모두 표시되고 Class에 대해 두 개의 null이 있음을 알 수 있습니다. 클래스에 참여하지 않더라도 모든 학생의 결과가 보존됩니다. 모든 학생의 Age가 Student 수준에 표시됩니다.
관련 없는 측정값
관련 없는 차원 값에 대한 측정값은 반복됩니다.
Classes 테이블의 Length 측정값과 관련 없는 Club 차원을 살펴보면 이 측정값은 테이블 범위가 지정되고 Club의 모든 차원 값에 걸쳐 반복됩니다.
스티칭 차원이 있는 경우 측정값을 분류하고 반복할 수 있습니다.
여기서 측정값은 Age는 Students 테이블에서 가져온 것이며 학생 수준까지 분류되어 있습니다. Class 및 Club의 차원을 기준으로 학생이 반복될 때마다 Age 값이 반복됩니다.
문제 해결
다중 팩트 관계 데이터 모델 작업 시 고려 사항
테이블별 추출 필터
다중 팩트 관계 데이터 모델 추출에 대한 모든 추출 필터는 테이블 단위로 적용되며, 전체적으로 적용되는 것은 아닙니다. 따라서 라이브 연결과 추출 연결 간에 필터링 결과가 다를 수 있습니다.
행 수준 계산
행 수준 계산에서는 동일한 업스트림 기본 테이블을 공유하는 필드만 참조할 수 있습니다. 즉, 행 수준 계산은 트리 전체에서 수행될 수 없습니다.
결합된 필드
결합된 필드의 모든 필드는 업스트림 테이블을 공유해야 합니다. 즉, 다른 트리에 있는 필드를 사용하여 결합된 필드를 만들 수 없습니다.
집합
집합은 동일한 업스트림 기본 테이블을 공유하는 필드를 포함하는 정의로만 만들 수 있습니다. 그러나 비주얼리제이션에서는 마크가 집합을 정의하는 데 사용된 필드와 관련 없는 필드에 의해 정의된 경우 마크에서 '집합에 추가' 옵션을 사용할 수 있습니다. '집합에 추가'를 선택하면 Tableau는 관련 필드만 집합 정의에 추가합니다. 이는 단일 기본 테이블 데이터 원본에서의 '집합에 추가' 동작과 다릅니다. 이 경우에는 '집합에 추가'가 마크를 정의하는 모든 항목을 추가합니다.
INCLUDE 세부 수준 식의 유효성 검사
INCLUDE LOD 식은 관련 없는 필드 전체에서 평가될 수 없습니다. 필드 간의 관련성은 시트 단위로 평가되므로 데이터 패널 또는 계산 에디터에서 유효한 LOD 식이 특정 비주얼리제이션의 컨텍스트에서는 유효하지 않게 될 수 있습니다(관련 없는 차원이 있는 경우). 이런 일이 발생하면 LOD 알약이 빨간색으로 변합니다. LOD 식을 업데이트하여 관련 없는 필드 충돌을 제거하거나, 비주얼리제이션의 구조를 변경하거나, 비주얼리제이션에서 LOD 식을 제거할 수 있습니다.
게시된 데이터 원본 업데이트
연결된 모든 통합 문서에 새 데이터 모델이 필요하지 않은 경우 다중 팩트 관계 데이터 모델이 되도록 수정하려면 기존 게시된 데이터 원본의 복사본을 만드는 것이 가장 좋습니다. 모든 통합 문서에 새 테이블이 필요한 경우가 아니면 데이터 원본의 기존 버전을 업데이트하지 마십시오. 수정된 데이터 원본을 새 데이터 원본으로 게시하고 해당 데이터 원본에서 새 통합 문서를 만듭니다. 이렇게 하면 기존 통합 문서가 해당 기능이 필요하지 않은 경우 데이터 서버 대신 VDS를 사용하도록 변환되지 않아 성능 저하 가능성을 방지할 수 있습니다.
해결된 문제
해결된 문제 | 수정 시점 |
추출 로컬 데이터 원본(통합 문서): 다중 팩트 관계 데이터 원본을 추출하려고 하면 '테이블이 없습니다' 오류가 발생합니다. 게시된 데이터 원본: 게시된 다중 팩트 관계 데이터 원본 추출이 성공한 것으로 보이지만 필드 값이 바뀔 수 있습니다. |
Tableau Desktop 또는 Tableau Server에서 여전히 이러한 문제가 발생하는 경우 2024년 7월 24일 이후 버전으로 업그레이드하십시오. |
EXCLUDE 세부 수준 식 관련 없는 필드가 있는 경우 INCLUDE LOD만 유효성을 검사해야 합니다. 그러나 동일한 조건에서 EXCLUDE LOD도 유효하지 않은 것으로 잘못 표시될 수 있습니다. | |
중첩된 사용자 계산 다중 팩트 관계 데이터 모델이 있는 게시된 데이터 원본에서는 중첩된 사용자 계산을 사용할 수 없습니다. |
2024.2의 알려진 문제
여러 마크 카드가 있는 관련성 표시기
행 선반이나 열 선반에 여러 측정값을 사용하여 비주얼리제이션을 작성한 경우 각 측정값은 자체 마크 카드를 갖습니다. 관련 없음 아이콘, 도구 설명의 텍스트, 관련성 경고 대화 상자 등의 관련성 표시기를 결정하는 데 사용되는 논리는 열려 있는 마크 카드에 따라 예상한 결과를 제공하지 않을 수 있습니다. 그러나 비주얼리제이션 자체는 각 필드 쌍의 관련성을 기반으로 올바르게 계산됩니다. 이 동작은 수정될 예정입니다.
BatchQueryProcessor
다중 팩트 관계 데이터 모델을 지원하려면 BatchQueryProcessor를 사용하도록 설정해야 합니다. 이는 예상된 동작이며, 현재 수정할 계획이 없습니다.
Tableau Pulse
Pulse는 다중 팩트 관계 데이터 모델에서 작동하지 않을 수 있습니다. 메트릭 정의를 만들 수 없거나 생성된 메트릭이 비어 있을 수 있습니다. 이는 예상된 동작은 아니지만 현재 수정이 예정되어 있지는 않습니다.