다중 팩트 관계 데이터 모델 정보

다중 팩트 관계를 사용하면 둘 이상의 기본 테이블이 있는 데이터 원본을 구축할 수 있습니다. 데이터 모델에서 여러 기본 테이블을 사용하면 Tableau에서 다중 팩트 분석을 수행할 수 있습니다.

기본 테이블에 근간을 둔 테이블 트리를 설정하여 서로 다른 개념적 도메인을 가진 데이터 구조를 모델링하고 공유 특성을 사용하여 연결할 수 있습니다. 이러한 유형의 분석을 흔히 다중 팩트 분석, 준수 차원 또는 공유 차원이라고 합니다. Tableau에서는 관계를 사용하여 구축하므로 이를 다중 팩트 관계 데이터 모델이라고 부릅니다. 다중 팩트 관계 데이터 모델에는 항상 여러 기본 테이블이 포함됩니다. 기본 테이블은 데이터 모델에서 가장 왼쪽에 있는 테이블입니다. 기본 테이블로 사용할 테이블을 결정하는 방법에 대한 지침은 다중 팩트 관계 모델을 사용해야 하는 경우를 참조하십시오.

하나의 트리가 하이라이트된 다중 기본 테이블 모델

하나의 기본 테이블 트리가 하이라이트된 다중 기본 테이블 데이터 모델입니다.

관련성 수준

여러 개의 기본 테이블이 있는 데이터 모델은 데이터 조각이 서로 연관되거나 연관되지 않는 방식에 대해 많은 유연성을 제공합니다.

참고: 모든 수준의 관련성은 여러 기본 테이블이 있는 데이터 모델에만 관련됩니다. 다중 팩트 관계 데이터 모델 이전에는 모든 것이 관련되어 있거나(단일 데이터 원본), 전혀 관련되어 있지 않았습니다(여러 데이터 원본에 걸쳐 혼합).

데이터 모델의 관련성

테이블은 데이터 모델의 구조에 따라 관련되거나, 관련되지 않거나, 공유됩니다. 데이터 원본에서 테이블의 관련성은 일정합니다. 간략히 설명하면 다음과 같습니다. 

  • 관련 테이블: 같은 트리에 있습니다.
    • 2024.2 이전에는 모든 데이터 원본이 단일 트리로 구성된 단일 기본 테이블 데이터 원본이었으며, 단일 기본 테이블 데이터 원본에서는 모든 테이블이 관련되어 있습니다.
  • 관련 없는 테이블: 서로 다른 트리에 있습니다. 기본 테이블은 항상 서로 관련이 없습니다. 정확히 하나의 기본 테이블의 다운스트림에 있는 테이블은 다른 트리의 테이블과도 관련이 없습니다.
  • 공유 테이블: 여러 개의 수신 관계가 있고 둘 이상의 트리에 속합니다.
    • 여러 수신 관계가 있는 테이블의 다운스트림 테이블도 공유된 것으로 간주됩니다.

분석 중 관련성

필드는 관련되거나, 관련되지 않거나, 모호하게 관련되어 있거나, 스티칭 필드 역할을 할 수도 있습니다. 필드 그룹 간의 관련성은 데이터 모델의 구조, 현재 사용 중인 필드(즉, 알약으로 선반에 있음) 및 해당 필드가 차원 또는 측정값인지 여부에 따라 시트 단위로 결정됩니다.  

관련 없는 두 개의 필드(행과 열에 각각 하나씩)와 관련 없는 도구 설명이 표시된 간단한 비주얼리제이션

여러 테이블의 필드를 사용하여 비주얼리제이션을 만들려면 Tableau는 값을 계산하기 위해 백그라운드에서 조인을 수행해야 합니다. 사용되는 조인 유형은 필드의 관련성에 따라 달라집니다. 간략히 설명하면 다음과 같습니다. 

  • 비주얼리제이션에서 관련 필드를 사용하는 경우 차원이 내부 조인되고 측정값이 차원별로 분류됩니다.
    • 이보다 조금 더 복잡해지면 측정값이 누락되지 않도록 하기 위해 백그라운드에서 추가 조인이 필요할 수 있습니다. 그러나 차원만 있는 비주얼리제이션에서는 관련 차원이 내부 조인되며 이것이 여기서의 주요 개념입니다.
    • 이는 단일 기본 테이블 모델과 동일한 동작입니다.
  • 비주얼리제이션에서 관련 없는 필드가 사용되는 경우 차원이 교차 조인됩니다. 측정값은 테이블 범위가 지정되고(즉, 전체 테이블에 대해 단일 값으로 로컬 집계됨) 반복됩니다.
    • 필드가 모호하게 관련되어 있을 수도 있는데, 이는 활성 필드 조합의 경우 테이블 간의 관계를 해결할 수 있는 방법이 두 가지 이상 있다는 의미입니다. Tableau에서는 모호성이 발견되면 필드를 관련 없는 것으로 처리합니다.
  • 필드가 공유 필드를 기반으로 스티치되는 경우 차원은 외부 조인됩니다. 측정값은 분류될 수 있는 모든 차원 수준에서 집계되며 반복될 수 있습니다.
    • 차원 스티칭데이터 혼합의 필드 연결과 유사합니다. 관련 필드의 각 쌍에 대해 결과가 계산된 다음, 관련 없는 값은 이들 간에 공유되는 차원의 공유 값에 걸쳐 함께 스티치됩니다.

이러한 모든 개념과 정의는 이 항목의 뒷부분에서 자세히 설명합니다.

차원 및 측정값에 대한 부연 설명

Tableau에서 측정값집계이며, 뷰의 차원에 의해 설정된 세부 수준까지 집계됩니다. 따라서 측정값은 차원의 맥락에 따라 달라집니다. 예를 들어, '시리얼 상자 수'는 총 재고를 의미하는지 아니면 브랜드별 상자 수를 의미하는지에 따라 달라집니다.

차원은 일반적으로 국가 또는 브랜드와 같은 범주형 필드입니다. Tableau에서 차원은 뷰의 세분성 또는 세부 수준을 설정합니다. 일반적으로는 데이터를 몇 가지 범주 조합의 마크로 그룹화하려고 합니다. 뷰를 작성하는 데 사용하는 차원에 따라 보유하는 마크 수가 결정됩니다.

측정값이 차원 없이 사용되는 경우 테이블 범위가 지정되었다고 합니다. 즉, 해당 값은 전체 테이블에 대해 완전히 집계된 값입니다. 비주얼리제이션에서 브랜드와 같은 차원을 사용하면 측정값이 더 세밀하게 분류됩니다. 이제 시리얼 상자의 총 개수는 브랜드별로 표시됩니다.

집계는 데이터가 결합되는 방식을 나타냅니다. Tableau에서 기본 집계는 SUM입니다. 이 집계를 평균, 중앙값, 고유 카운트, 최소값 등의 다른 옵션으로 변경할 수 있습니다. 세부 수준은 측정값이 얼마나 상세하거나 세분화 또는 분류되어 있는지를 나타내며, 이는 차원에 의해 제어됩니다. 측정값의 세부 수준이 행 수준(즉, 집계 해제됨)이 아닌 경우 해당 값을 집계해야 합니다.

5개 브랜드와 3가지 크기의 시리얼 상자 수에 대한 값 표

'시리얼 상자 수'의 값은 무엇입니까?

이는 집계 유형과 차원에 설정된 세부 수준에 따라 달라집니다.

  • 집계:
    • 합계(또는 총합)
    • 평균
  • 세부 수준:
    • 테이블 범위 지정/전체 집계(예시에서 파란색 막대)
    • 브랜드 차원(예시에서 색상별 막대)으로 분류됨

테이블 범위의 합산된 상자 수(54개), 테이블 범위의 평균 상자 수(6개), 그리고 이 두 가지를 5개 브랜드별로 분류한 버전 등 4개의 비주얼리제이션이 포함된 대시보드

필드 수준 관련성 표시기

분석에 사용하는 필드의 관련성 정도를 이해하는 데 도움이 되는 몇 가지 시각적 단서가 있습니다.

워크시트의 관련성 표시기

  • 관련 없음 아이콘: Tableau에서 관련 없음 아이콘 관련 없음 아이콘이 사용되어 뷰의 일부 항목이 관련되어 있지 않음을 나타냅니다. 뷰 또는 데이터 패널의 알약에 관련 없음 아이콘이 표시되는 경우 아이콘을 마우스오버하면 자세한 정보를 볼 수 있습니다.
  • 밝은 회색 필드명: 선반에서 사용 중인 어떤 필드와도 관련이 없는 필드명의 경우 데이터 패널에 밝은 회색 텍스트로 표시됩니다. 해당 비주얼리제이션에서 이러한 필드를 분석에 계속 사용할 수 있지만 관련 없는 필드는 관련 있는 필드와 분석에서 다르게 평가됩니다. 마우스오버하면 이러한 필드에도 관련 없음 아이콘이 표시됩니다.

데이터 패널에 전체 테이블 하나가 회색으로 표시되고 숨겨진 필드를 나타내는 눈 모양 아이콘이 있는 두 개의 필드

참고: 이전 버전의 Tableau에서는 밝은 회색 필드명이 필드가 숨겨져 있고 숨겨진 필드 표시가 선택되어 있음을 나타냅니다. 숨겨진 필드가 표시된 경우 이제 클릭 가능한 눈 아이콘 숨겨진 필드 아이콘으로 나타납니다.

관련성 경고 대화 상자

관련 없는 필드가 비주얼리제이션에서 함께 사용되는 경우 Tableau는 필드가 서로 관련이 없음을 알려주는 경고 대화 상자를 표시합니다. 이 메시지는 관련 없는 필드를 추가할 때마다 표시되어 분석에서 관련 없는 필드를 사용하여 유효성을 검사하도록 알려줍니다. 경고 메시지는 진행을 방해하지는 않지만 잠재적인 성능 문제를 방지하는 데 도움이 될 수 있습니다. 예를 들어 카디널리티가 높은 관련 없는 필드를 사용하면 통합 문서의 성능에 영향을 주는 교차 조인이 발생할 수 있습니다.

관련 없는 차원에 대한 경고를 표시하는 관련성 경고 대화 상자

추가를 클릭하여 비주얼리제이션에 필드를 계속 추가합니다. 메시지를 다시 표시하지 않으려면 이 메시지를 다시 표시 안 함 옵션을 선택합니다. 도움말 메뉴 > 설정 및 성능 > 무시된 메시지 재설정을 열어 경고 메시지를 다시 켜면 언제든지 다시 표시할 수 있습니다.

여러 필드가 추가 중이거나 이미 뷰에 있는 경우 세부 정보 영역이 대화 상자에 나타납니다. 사용 중인 모든 필드의 관련성에 대한 추가 정보를 확인하고 관련성 문제가 발생하는 위치를 식별하려면 이를 확장하면 됩니다.

관련 없는 차원과 측정값 모두에 대한 메시지가 있고 세부 정보 영역이 확장된 관련성 경고 대화 상자

데이터 모델의 테이블 수준 관련성

여러 기본 테이블이 있는 데이터 모델에서 각 기본 테이블은 서로 연관되어 개념적 트리를 형성하는 테이블 집합을 정의합니다. 이러한 트리는 전체 데이터 원본이 단일 엔터티가 되도록 하나 이상의 공유 테이블로 연결되어야 합니다.

이전에는 연결 필드를 사용하여 혼합할 수 있는 두 개의 데이터 원본이 이제 공통 필드를 포함하는 공유 테이블로 연결된 두 개의 트리가 있는 단일 데이터 원본이 될 수 있습니다.

두 개의 서로 다른 데이터 원본으로 구성된 두 개의 데이터 모델, 두 데이터 원본 중 하나가 공통된 테이블에 겹쳐져 단일 데이터 원본을 형성함

:데이터 모델에서 테이블이 관련되는 방식은 분석에서 해당 필드가 관련되는 방식에 영향을 미칩니다. 분석 중에 데이터 원본 탭을 다시 참조하여 테이블이 전체 데이터 모델에 어떻게 들어맞는지 확인하는 것이 유용할 수 있습니다.

이 예제 데이터 원본을 사용하여 어떤 테이블이 관련성이 있거나, 관련성이 없거나, 공유되는지 살펴보겠습니다. 두 개의 트리가 있으며, 하나는 기본 테이블 A에 의해 설정되고 다른 하나는 기본 테이블 B에 의해 설정됩니다.

관련 없는 테이블

기본 테이블은 근본적으로 관련이 없습니다. 마찬가지로 단일 트리에만 존재하는 테이블은 다른 트리의 테이블과 관련이 없습니다.

테이블 A와 테이블 X는 서로 관련이 없습니다.

테이블 B와 테이블 X는 서로 관련이 없습니다.

기본 테이블 A와 X에 고유한 윤곽선이 있는 데이터 모델입니다. 관계는 밝은 회색으로 표시됩니다.기본 테이블 A와 해당 다운스트림 테이블 B가 윤곽선을 공유하는 데이터 모델입니다. 기본 테이블 X에 고유한 윤곽선이 있습니다. 관계는 밝은 회색으로 표시됩니다.

관련 테이블

동일한 트리에 있는 테이블은 관련된 것으로 간주됩니다.

테이블 A와 테이블 S는 서로 관련이 있습니다.

테이블 B와 테이블 S는 서로 관련이 있습니다(테이블 A를 통해).

기본 테이블 A와 다운스트림 테이블의 관계가 강조된 데이터 모델테이블 B와 다른 테이블의 관계가 동일한 기본 테이블인 A와의 관계에 의해 강조되는 데이터 모델

공유 테이블

공유 테이블에는 여러 개의 수신 관계가 있습니다. 이러한 테이블은 여러 트리에 속하며 트리 전체에서 공유됩니다.

테이블 S와 테이블 T는 공유됩니다.

테이블 S와 T 모두에 여러 개의 수신 관계가 있는 데이터 모델입니다. 둘 다 기본 테이블 A의 트리와 기본 테이블 X의 트리에 속합니다.

분석의 필드 수준 관련성

필드 간의 관련성은 데이터 모델의 구조, 현재 사용 중인 필드(즉, 비주얼리제이션의 어떤 필드가 선반에 알약으로 표시되는지 확인) 및 해당 필드가 차원 또는 측정값인지 여부에 따라 시트 단위로 결정됩니다. 필드 관련성이 비주얼리제이션 결과에 미치는 영향은 다음 섹션에서 다룹니다.

동일한 예제 데이터 원본을 사용하여 몇 가지 시나리오를 살펴보겠습니다. 각 필드의 이름은 테이블 B의 FieldB와 같이 해당 필드가 어떤 테이블에서 가져온 것인지를 나타냅니다. 필드는 별도의 언급이 없는 한 차원 또는 측정값일 수 있습니다.

관련 필드

높은 수준에서, Tableau가 단일 트리 내의 관계 경로를 기반으로 필드를 함께 평가하는 방법을 명확하게 결정할 수 있는 경우 필드는 관련성이 있는 것입니다.

예를 들어, FieldB(테이블 B)와 FieldS(테이블 S)는 서로 관련되어 있습니다.

관련된 FieldB와 FieldS

관련 없는 필드

높은 수준에서 필드는 서로 관련이 없는 경우 어떤 경우에도 관련이 없는 것으로 간주합니다. 두 개의 기본 테이블의 필드를 사용하는 등 필드가 서로 관련이 없는 테이블의 필드이기 때문일 수 있습니다. 이 경우 서로 다른 기본 테이블의 필드는 근본적으로 관련이 없습니다.

예를 들어 FieldA와 FieldX는 서로 관련이 없습니다.

FieldA와 FieldX는 서로 관련이 없음

또는 모호하게 관련된 경우와 같이 특정 시점에 필드가 서로 관련이 없는 것으로 처리될 수도 있습니다. 대부분의 경우 관련성 표시기를 사용하여 비주얼리제이션의 컨텍스트에서 필드가 관련이 없는 경우 이를 알려줄 수 있습니다.

필드 스티칭

스티칭은 분석 중에 Tableau가 다중 팩트 데이터 모델에서 관련 없는 테이블의 필드를 평가하는 방식입니다. 비주얼리제이션에서 공유 테이블의 차원을 사용하면 서로 관련이 없는 필드를 스티칭하여 동일한 비주얼리제이션에서 동시에 평가할 수 있습니다. 공유되는 차원을 기반으로 두 트리의 결과를 병치하는 것으로 생각하면 됩니다.

예를 들어 FieldA와 FieldX를 사용하여 비주얼리제이션을 작성한 경우 이 두 필드는 서로 관련이 없습니다. DimensionS를 추가하면 스티칭 필드가 나타납니다.

  • FieldA와 DimensionS는 함께 평가됩니다.
  • FieldX와 DimensionS는 함께 평가됩니다.
  • 이들 중간 결과는 DimensionS 값을 기반으로 통합됩니다.
  • 이제 FieldA와 FieldX가 스티치됩니다.

서로 관련 없는 기본 테이블 A와 X가 공유 테이블 S로 함께 스티치됨

: 가장 좋은 방법은 비주얼리제이션에서 스티칭 필드를 사용하여 관련 없는 필드를 가져오는 것입니다. 예를 들어, FieldA, FieldX, DimensionS의 순서가 아닌, DimensionS를 먼저 끌어오거나, FieldA, DimensionS, FieldX의 순서로 끌어옵니다. 먼저 스티칭 필드를 추가하면 Tableau가 항상 관계를 평가하는 방법을 인식하고 관련 없는 차원을 함께 평가할 때 발생할 수 있는 성능 문제를 방지할 수 있습니다.

스티칭하려면 공유 테이블의 차원이 비주얼리제이션에서 활성 상태여야 합니다. 필터 선반이나 마크 카드의 도구 설명 속성에 배치된 필드는 스티칭을 목적으로 할 때 활성 상태로 간주되지 않습니다.

모호하게 관련된 필드

필드는 모호하게 관련될 수도 있습니다. 이는 두 공유 테이블(또는 공유 테이블의 다운스트림 테이블) 사이에 둘 이상의 가능한 관계가 있고 비주얼리제이션의 컨텍스트에서 아직 관련이 없는 것으로 간주될 수 있는 경우에 발생합니다.

FieldS와 FieldT를 예로 들어보겠습니다. 두 테이블은 기본 테이블 A로 정의된 트리와 기본 테이블 X로 정의된 트리를 통해 서로 관련되어 있습니다.

FieldS와 FieldT만 있는 비주얼리제이션에서는 이들의 관계를 설정하는 데 어떤 트리를 사용해야 하는지 모호합니다. 추가 정보가 없으면 Tableau는 기본 테이블 A의 트리 또는 기본 테이블 B의 트리를 통해 이러한 필드의 관계를 설정할지를 평가할 수 없습니다.

FieldS와 FieldT는 모호하게 관련되어 있습니다. 즉, 여러 잠재적인 관계가 있습니다.

관련이 적은 모호한 필드 S 및 T

모호하게 관련된 필드는 Tableau가 관계 경로를 명확하게 결정할 수 없기 때문에 관련 없는 필드로 평가됩니다. 실제 관련 없는 필드와 달리, 모호하게 관련된 필드는 해결할 수 있고 필드 관계를 직접 설정할 수 있습니다.

모호성 해결

모호성을 해결하려면 사용할 트리를 구성하는 필드를 추가하면 됩니다.

예:

  • FieldS 및 FieldT의 비주얼리제이션에서 테이블 A, B 또는 C의 필드를 비주얼리제이션에 추가하면 기본 테이블 A의 트리가 활성화되고 FieldS와 FieldT 사이의 모호성이 해결됩니다.
  • 또는 테이블 X의 필드를 사용하면 FieldS와 FieldT 사이의 모호성이 테이블 X의 트리를 기반으로 해결됩니다.
모호하게 관련됨단일 트리로 모호성 해결
기본 테이블 A를 통해 관련됨기본 테이블 X를 통해 관련됨
관련이 적음A를 통해 관련됨X를 통해 관련됨

모호성을 해결하는 것은 FIXED LOD(세부 수준) 식을 사용하는 것과 유사합니다. FIXED LOD 식에서는 차원 선언을 정의하여 집계할 세부 정보 수준을 Tableau에 알려줍니다. 비주얼리제이션의 구조를 변경하여 하나의 트리만 활성화되도록 함으로써 모호성을 해결하여 Tableau가 분석을 수행할 때 어떤 관계 경로를 고려할 수 있는지 알려줍니다.

스티칭과 모호성 해결 비교

스티칭과 모호성 해결은 모두 비관련성을 처리하는 방법이지만 결과는 다릅니다.

스티칭

모호성 해결

A와 X를 S로 스티칭

관련 없는 FieldA 및 FieldX를 DimensionS로 스티치

S와 T를 A로 해결

FieldS 및 FieldT는 기본 테이블 A로 정의된 트리를 통해 평가됨

공유 특성을 기반으로 관련 없는 필드 병치여러 옵션이 있는 경우 사용할 관계 경로의 범위 좁히기

여러 기본 테이블 논리를 사용하여 결과 계산

단일 기본 테이블 논리를 사용하여 결과 계산

분석에 관련 없는 테이블이 포함됨분석에 공유 테이블이 포함됨

각 관련성 수준에 조인을 사용하는 방법

필드 수준 관련성이 결정된 후 Tableau는 결과를 평가하여 실제 비주얼리제이션을 만들어야 합니다. 비주얼리제이션에 표시된 값을 계산하는 데 사용되는 쿼리는 조인에 의존합니다. 필드가 관련성이 있는지, 관련성이 없는지 또는 스티치되어 있는지에 따라 조인이 수행되는 방식에 다른 영향을 미칩니다. 참고로, 이 컨텍스트에서는 모호하게 관련된 필드가 관련 없는 필드로 처리됩니다.

이 섹션에서는 관련성과 조인을 설명하기 위해 테이블과 해당 필드, 그리고 해당 필드의 값을 사용합니다. Classes(클래스) 및 Clubs(클럽)라는 두 개의 기본 테이블과 Students(학생)라는 공유 테이블이 있는 다음 데이터 모델을 예로 들겠습니다.

두 개의 기본 테이블인 Classes 및 Clubs와 하나의 공유 테이블인 Students가 있는 데이터 모델

Classes

Clubs

Students

세 필드의 값을 표시하는 Classes 테이블의 데이터 보기세 가지 필드의 값을 표시하는 Clubs 테이블의 데이터 보기세 필드의 값을 표시하는 Students 테이블의 데이터 보기

필드:

  • Class(클래스): Nesting Basics(기초 둥지 만들기), Advanced Songs(고급 새소리), Flying for Fledglings(새끼를 위한 비행) 및 Alarm Calls 101(101가지 울부짖음) 등의 값을 갖는 차원
  • Length(길이): 측정값
  • Student(학생), Student 테이블과 관계를 설정하는 데 사용되는 차원

필드:

  • Club(클럽): Photography(사진), Travel(여행), Juggling(저글링), Art(예술) 및 First Aid(응급처치)의 값을 갖는 차원
  • Dues(회비): 측정값
  • Student(학생), Student 테이블과 관계를 설정하는 데 사용되는 차원

필드:

  • Bus Rider(버스 이용객): 값이 yes 또는 no인 차원
  • Student(학생): Finch(되새류), Cardinal(홍관조), Sparrow(참새), Robin(개똥지빠귀) 및 Jay(어치) 값을 갖는 차원. 다른 두 테이블과 관계를 설정하는 데 사용됩니다.
  • Age(나이): 측정값

이 매우 간단한 모델은 다중 팩트 관계 데이터 모델에 대해 상위 수준 조인 논리가 계산되는 방식을 보여줍니다. 관계를 기반으로 구축된 단일 기본 테이블 데이터 모델에 사용되는 조인의 기본 사항에 대한 자세한 내용은 관계를 사용하는 다중 테이블 데이터 원본에서 분석이 작동하는 방식을 참조하십시오.

이 예는 여러 기본 테이블이 있는 데이터 모델이어야 할까요?

이 세 개의 테이블 데이터 모델의 경우 단일 기본 테이블 모델로 설정하거나, Classes-Students-Clubs 또는 Clubs-Students-Classes로 설정하거나, Students를 기본 테이블로 설정하고 싶을 수 있습니다. 일반적으로 다중 팩트 관계 데이터 모델은 특정 종류의 데이터 스키마 또는 분석 시나리오를 위해 만들어졌습니다. 데이터 모델에 다중 팩트 관계 데이터 모델에 가장 적합한 특성이 있는 경우, 기본 테이블을 개념적으로 관련 없는 상태로 유지하도록 설정합니다. 그러나 데이터에 이러한 유형의 구조가 필요하지 않은 경우에는 단일 기본 테이블 모델을 사용하는 것이 더 간단할 수 있습니다.

Classes-Clubs-Students 예시 모델을 위한 대안 데이터 모델 구조

이 세 가지 테이블에 대해 구축할 수 있는 모델은 (1) Classes 및 Clubs를 기본 테이블로 사용하고 Students를 공유 테이블로 사용하는 경우, (2) Classes 또는 Clubs로 시작하여 선형적으로 사용하는 경우, (3) Students를 단일 기본 테이블로 사용하고 Classes 및 Clubs를 다운스트림 테이블로 사용하는 경우입니다.

이 특정 사례에서는 이러한 테이블, 데이터 또는 모델에 대해 실제로 여러 개의 기본 테이블이 필요한 것은 없습니다. 이 모델은 조인 논리에 집중할 수 있도록 단순하게 유지하기 위한 예시로 사용하고 있습니다. 또는 논의를 지나치게 복잡하게 만들지 않기 위해 무시하고 있는 또 다른 관련 테이블인 Rooms(교실)가 있다고 상상할 수도 있습니다.

추가 공유 테이블인 Rooms가 있는 Classes-Clubs-Students 모델 버전

그러나 가장 좋은 방법은 데이터에 필요할 때만 다중 팩트 관계 모델을 사용하는 것입니다.

관련 차원은 내부 조인을 사용

관련 차원은 내부 조인됩니다. 내부 조인은 두 테이블에서 공유되지 않는 모든 차원 값을 삭제합니다.

  • Tableau는 추가 논리를 사용하여 측정값이 손실되지 않도록 합니다. 이 섹션에서는 차원만 사용하여 Tableau가 관련 차원에 내부 조인을 적용하는 기본 방식을 보여줍니다.

다음 예에서는 데이터에 관련 차원이 있는 행만 반환하는 방법을 보여줍니다. Alarm Calls 101 클래스에 학생이 없으므로 결과에 표시되지 않습니다. Cardinal과 Jay는 어떤 클래스에도 속하지 않으므로 결과에 표시되지 않습니다.

Finch에 대한 두 행(Advanced Songs, Nesting Basics), Robin에 대한 두 행(Flying for Fledgelings, Nesting Basics) 및 Sparrow에 대한 두 행(Advanced Songs, Nesting Basics)이 있는 Class와 Student의 내부 조인을 보여주는 비주얼리제이션

관련 없는 차원은 교차 조인을 사용함

차원을 스티칭하지 않고 자체적으로 관련 없는 차원은 교차 조인됩니다.

교차 조인에서는 결과 조합이 데이터에 실제로 존재하지 않는 경우에도 한 차원의 모든 값이 다른 차원의 모든 값과 결합됩니다. 이 예에서 교차 조인은 Class와 Club의 가능한 각 조합에 대해 행을 추가합니다.

Class 및 Club을 교차 조인하여 Advanced Songs/Alarm Calls 101/Flying for Fledglings/Nesting Basics와 Art/First Aid/Juggling/Photography의 모든 조합에 대한 행이 있는 비주얼리제이션. 행 선반의 두 차원 알약에 관련 없는 아이콘이 표시됩니다.

분석에서 교차 조인이 발생하는 경우를 인식하는 것이 중요합니다. 교차 조인에 대한 결과 테이블에 Advanced Songs + First Aid에 대한 행이 있지만 실제로는 이 활동 조합에 학생이 없습니다(다음 섹션의 스티칭 예에서 이에 대한 증거를 볼 수 있음).

모든 교차 조인 결과가 데이터에 기반하지 않는다는 점을 인식하는 것이 왜 중요할까요? 어떤 학생들에게도 갈등이 없도록 클래스와 동호회 일정을 짜려고 한다고 상상해 보십시오. Advanced Songs와 First Aid에는 학생이 없으므로 이 결과를 무시하고 해당 클래스와 동호회를 동시에 예약할 수 있습니다. 교차 조인은 데이터에 실제로 존재하는 값의 조합을 나타내지는 않습니다.

스티치 차원은 외부 조인을 사용함

스티칭 차원이 있는 경우 관련 없는 차원은 외부 조인됩니다.

이 예에서 Classes 테이블과 Clubs 테이블은 모두 공유 Students 테이블과 관련되어 있지만, 서로는 관련되어 있지 않으므로 Class와 Club 필드는 관련이 없습니다. Student 차원을 추가하면 Tableau가 분석에서 Class의 어떤 값과 Club의 어떤 값을 병치해야 하는지 알 수 있습니다. 이를 외부 조인 동작인 스티칭이라고 합니다.

Student-Class 내부 조인과 Student-Club 내부 조인의 외부 조인 결과를 보여주는 비주얼리제이션. 행 선반의 Class 및 Club 알약에는 관련 없음 아이콘이 있습니다. Student 알약은 마크 카드의 색상 속성에 있으며 관련 없음 아이콘이 없습니다. Class와 Club의 모든 조합이 표시되는 것은 아니며, Class 없이 Student 및 Club에 대한 행이 있습니다.

스티칭은 전체 결과를 위해 다시 통합되는 중간 결과가 있다는 점에서 데이터 혼합과 유사합니다. 그러나 혼합과 달리 스티칭은 왼쪽 조인이 아닌 외부 조인이며 어느 쪽에서도 값을 삭제하지 않습니다. 모두 하나의 데이터 원본인 경우 주 데이터 원본 또는 보조 데이터 원본에 대한 개념이 없으므로 관련 없는 두 필드 모두 동일한 우선 순위가 부여됩니다.

중간 결과는 외부 조인됨

스티치 필드의 외부 조인에는 무엇이 들어갈까요? 관련 없는 필드와 스티칭 필드 각각에 대해 즉시 내부 조인이 계산된 다음 스티칭 차원의 값을 기반으로 중간 결과가 외부 조인됩니다.

Student 및 Class에 대한 내부 조인...

Student의 값 3개와 Class의 값 3개가 있는 결과 테이블

...Student 및 Club에 대한 내부 조인...

Student의 값 4개와 Club의 값 5개가 있는 결과 테이블

...그런 다음 Student에서 외부 조인됩니다.

Student의 값 4개와 Class의 값 3개와 Club의 값 5개가 있는 결과 테이블

측정값을 유지하기 위한 추가 조인

차원에 대한 조인 논리 외에도 측정값은 추가 조인을 도입할 수 있습니다. Tableau에 관계가 처음 도입되었을 때, 핵심 원칙 중 하나는 측정값이 손실되지 않는다는 것이었습니다. 이는 다중 팩트 관계 데이터 모델에서도 유지됩니다.

필수 세부 정보는 다음과 같습니다.

  • 측정값은 관련 차원에 의해서만 분류됩니다.
  • 관련 없는 차원에 대한 측정값은 반복됩니다.
  • 차원 전용 비주얼리제이션에서 삭제되는 차원 값은 연관된 관련 측정값이 있는 경우 반환될 수 있습니다.

참고: 측정값은 집계이며 비주얼리제이션의 차원 조합에 의해 설정된 세부 수준(세분성)으로 계산됩니다. 이를 차원별로 분류된 측정값이라고 합니다. 측정값이 어떤 차원도 없이 사용되는 경우 테이블 범위가 지정되었다고 합니다. 즉, 측정값은 완전히 집계된 값입니다. 비주얼리제이션에서 차원을 사용하면 측정값은 차원 값을 기반으로 보다 세부적으로 분류됩니다. 따라서 분석의 측정값은 차원의 맥락에 따라 달라집니다.

관련 측정값

관련 차원 StudentClass의 내부 조인에 대해 반환되는 차원 값의 하위 집합을 생각해보겠습니다. Finch, Robin 및 Sparrow의 세 학생 값과 Advanced Songs, Nesting Basics 및 Flying for Fledgelings의 세 클래스 값이 있습니다.

학생과 클래스 간의 내부 조인에 대한 결과 테이블

Class 테이블에서 Length 측정값을 추가하면 네 개의 클래스가 모두 표시되고 Student에 대해 null이 있는 것을 볼 수 있습니다. 모든 클래스의 LengthClass 수준에 표시됩니다.

차원이 내부 조인되었음에도 학생에 대해 Null 값이 나타남

대신 Student 테이블에서 Age 측정값을 추가하면 5명의 학생이 모두 표시되고 Class에 대해 두 개의 null이 있음을 알 수 있습니다. 클래스에 참여하지 않더라도 모든 학생의 결과가 보존됩니다. 모든 학생의 AgeStudent 수준에 표시됩니다.

차원이 내부 조인되었음에도 클래스에 대해 Null 값이 나타남

관련 없는 측정값

관련 없는 차원 값에 대한 측정값은 반복됩니다.

Classes 테이블의 Length 측정값과 관련 없는 Club 차원을 살펴보면 이 측정값은 테이블 범위가 지정되고 Club의 모든 차원 값에 걸쳐 반복됩니다.

테이블 범위가 지정된 측정값이 관련 없는 차원 값에 걸쳐 반복됨

스티칭 차원이 있는 경우 측정값을 분류하고 반복할 수 있습니다.

여기서 측정값은 Age는 Students 테이블에서 가져온 것이며 학생 수준까지 분류되어 있습니다. ClassClub의 차원을 기준으로 학생이 반복될 때마다 Age 값이 반복됩니다.

문제 해결

다중 팩트 관계 데이터 모델 작업 시 고려 사항

행 수준 계산

행 수준 계산에서는 동일한 업스트림 기본 테이블을 공유하는 필드만 참조할 수 있습니다. 즉, 행 수준 계산은 트리 전체에서 수행될 수 없습니다.

결합된 필드

결합된 필드의 모든 필드는 업스트림 테이블을 공유해야 합니다. 즉, 다른 트리에 있는 필드를 사용하여 결합된 필드를 만들 수 없습니다.

집합

집합은 동일한 업스트림 기본 테이블을 공유하는 필드를 포함하는 정의로만 만들 수 있습니다. 그러나 비주얼리제이션에서는 마크가 집합을 정의하는 데 사용된 필드와 관련 없는 필드에 의해 정의된 경우 마크에서 '집합에 추가' 옵션을 사용할 수 있습니다. '집합에 추가'를 선택하면 Tableau는 관련 필드만 집합 정의에 추가합니다. 이는 단일 기본 테이블 데이터 원본에서의 '집합에 추가' 동작과 다릅니다. 이 경우에는 '집합에 추가'가 마크를 정의하는 모든 항목을 추가합니다.

INCLUDE 세부 수준 식의 유효성 검사

INCLUDE LOD 식은 관련 없는 필드 전체에서 평가될 수 없습니다. 필드 간의 관련성은 시트 단위로 평가되므로 데이터 패널 또는 계산 에디터에서 유효한 LOD 식이 특정 비주얼리제이션의 컨텍스트에서는 유효하지 않게 될 수 있습니다(관련 없는 차원이 있는 경우). 이런 일이 발생하면 LOD 알약이 빨간색으로 변합니다. LOD 식을 업데이트하여 관련 없는 필드 충돌을 제거하거나, 비주얼리제이션의 구조를 변경하거나, 비주얼리제이션에서 LOD 식을 제거할 수 있습니다.

게시된 데이터 원본 업데이트

연결된 모든 통합 문서에 새 데이터 모델이 필요하지 않은 경우 다중 팩트 관계 데이터 모델이 되도록 수정하려면 기존 게시된 데이터 원본의 복사본을 만드는 것이 가장 좋습니다. 모든 통합 문서에 새 테이블이 필요한 경우가 아니면 데이터 원본의 기존 버전을 업데이트하지 마십시오. 수정된 데이터 원본을 새 데이터 원본으로 게시하고 해당 데이터 원본에서 새 통합 문서를 만듭니다. 이렇게 하면 기존 통합 문서가 해당 기능이 필요하지 않은 경우 데이터 서버 대신 VDS를 사용하도록 변환되지 않아 성능 저하 가능성을 방지할 수 있습니다.

2024.2의 알려진 문제

추출

경고: 다중 팩트 관계가 있는 데이터 원본은 추출이 아니라 라이브 연결이어야 합니다.

로컬 데이터 원본(통합 문서): 다중 팩트 관계 데이터 원본을 추출하려고 하면 '테이블이 없습니다' 오류가 발생합니다.

게시된 데이터 원본: 게시된 다중 팩트 관계 데이터 원본 추출이 성공한 것으로 보이지만 필드 값이 바뀔 수 있습니다.

이 동작은 수정될 예정입니다.

여러 마크 카드가 있는 관련성 표시기

행 선반이나 열 선반에 여러 측정값을 사용하여 비주얼리제이션을 작성한 경우 각 측정값은 자체 마크 카드를 갖습니다. 관련 없음 아이콘, 도구 설명의 텍스트, 관련성 경고 대화 상자 등의 관련성 표시기를 결정하는 데 사용되는 논리는 열려 있는 마크 카드에 따라 예상한 결과를 제공하지 않을 수 있습니다. 그러나 비주얼리제이션 자체는 각 필드 쌍의 관련성을 기반으로 올바르게 계산됩니다. 이 동작은 수정될 예정입니다.

EXCLUDE 세부 수준 식

관련 없는 필드가 있는 경우 INCLUDE LOD만 유효성을 검사해야 합니다. 그러나 동일한 조건에서 EXCLUDE LOD도 유효하지 않은 것으로 잘못 표시될 수 있습니다. 이 동작은 수정될 예정입니다.

중첩된 사용자 계산

다중 팩트 관계 데이터 모델이 있는 게시된 데이터 원본에서는 중첩된 사용자 계산을 사용할 수 없습니다. 이 동작은 수정될 예정입니다.

BatchQueryProcessor

다중 팩트 관계 데이터 모델을 지원하려면 BatchQueryProcessor를 사용하도록 설정해야 합니다. 이는 예상된 동작이며, 현재 수정할 계획이 없습니다.

Tableau Pulse

Pulse는 다중 팩트 관계 데이터 모델에서 작동하지 않을 수 있습니다. 메트릭 정의를 만들 수 없거나 생성된 메트릭이 비어 있을 수 있습니다. 이는 예상된 동작은 아니지만 현재 수정이 예정되어 있지는 않습니다.

피드백을 제공해 주셔서 감사합니다!귀하의 피드백이 제출되었습니다. 감사합니다!