데이터 연관

관계는 분석을 위해 여러 테이블에서 데이터를 결합하는 동적이고 유연한 방법입니다. 관계는 두 테이블이 공통 필드를 기반으로 서로 관련되는 방식을 설명하지만 테이블을 병합하지는 않습니다. 테이블 간에서 관계를 만들어도 테이블은 별도로 유지되며 개별 세부 수준 및 도메인을 유지합니다.

관계를 두 테이블 간의 계약으로 간주할 수 있습니다. 이러한 테이블의 필드를 사용하여 비주얼리제이션을 작성하는 경우 Tableau는 해당 계약에 따라 이러한 테이블의 데이터를 가져와 적절한 조인으로 쿼리를 작성합니다.

자세한 내용: 데이터를 연관시키는 기능은 Tableau의 새로운 데이터 모델링 기능에서 중요한 기능입니다. 자세한 내용은 데이터 원본 및 분석의 변경된 기능을 참조하십시오. 다음 Tableau 블로그 게시물에서 관계가 작동하는 방식에 대해 자세히 알아보십시오.

동영상 시청: 데이터 원본 개선 사항에 대한 개요와 Tableau의 관계 사용에 대한 소개를 보려면 이 동영상(5분)을 시청하십시오.

관계란?

관계는 데이터 원본의 논리적 테이블 사이에 만들어지는 유연한 연결 라인입니다. 일부 사용자들은 다정하게 관계를 "이음줄"이라고 부르지만 도움말 문서에서는 일반적으로 "관계"라고 지칭합니다.

관계를 사용하면 데이터 준비 및 분석이 더 쉬워지고 보다 직관적이 되므로 데이터를 결합할 때 처음에 관계를 사용하는 것이 좋습니다. 조인은 꼭 필요한 경우에만 사용하십시오(링크가 새 창에서 열림).

다중 테이블 데이터의 경우 관계는 조인을 사용하는 것과 비교할 때 여러 이점을 제공합니다.

  • 테이블 간에 조인 유형을 구성할 필요가 없습니다. 관계를 정의하는 필드를 선택하기만 하면 됩니다.
  • 관련 테이블은 분리되고 고유한 상태를 유지하며 단일 테이블로 병합되지 않습니다.
  • 관계는 조인을 사용하지만 자동입니다. Tableau는 비주얼리제이션에 사용되는 필드를 기반으로 조인 유형을 자동으로 선택합니다. 분석 중에 Tableau는 지능적으로 조인 유형을 조정하고 데이터의 기본 세부 수준을 보존합니다.
  • Tableau는 관계를 사용하여 워크시트에 사용된 필드의 현재 컨텍스트를 기반으로 분석 중에 올바른 집계 및 적절한 조인을 생성합니다.
  • 단일 데이터 원본에서 서로 다른 세부 수준의 여러 테이블이 지원됩니다. 더 많은 테이블을 포함하는 데이터 모델을 작성할 수 있으며 비주얼리제이션을 작성하는 데 필요한 데이터 원본 수를 줄일 수 있습니다.
  • 일치하지 않는 측정값이 삭제되지 않습니다(실수로 데이터가 손실되지 않음).
  • 조인에서 발생할 수 있는 데이터 중복 및 필터링 문제를 방지합니다.
  • Tableau는 현재 뷰와 관련이 있는 데이터에 대해서만 쿼리를 생성합니다.

관계를 위한 요구 사항

  • 테이블을 연관시킬 때 관계를 정의하는 필드들은 동일한 데이터 유형이어야 합니다.
  • 지리적 필드를 기반으로 관계를 정의할 수 없습니다.
  • 순환 관계는 데이터 모델에서 지원되지 않습니다.
  • 게시된 데이터 원본의 관계를 편집할 수 없습니다.
  • 게시된 데이터 원본 사이에서 관계를 정의할 수 없습니다.
  • Tableau Online 또는 Tableau Server의 데이터 원본 페이지에서 관계 및 성능 옵션을 편집할 수 있으려면 통합 문서에서 내장된 데이터 원본을 사용해야 합니다.

관련 테이블의 이점을 제한하는 요소:

  • 잘 구조화된 모델을 고려하여 만들어지지 않았으며 여러 테이블에 측정값과 차원이 혼합되어 있는 테이블 등에서, 테이블의 불필요한 데이터(dirty data)는 다중 테이블 분석을 더 복잡하게 만들 수 있습니다.
  • 데이터 원본 필터를 사용하면 데이터의 조인 선별을 수행하는 Tableau 기능이 제한됩니다. 조인 선별은 Tableau가 불필요한 조인을 제거하여 쿼리를 간소화하는 방법을 나타내는 용어입니다.
  • 테이블의 관계 간에서 일치하지 않는 값이 많습니다.
  • 여러 팩트 테이블을 여러 차원 테이블과 상호 관련시킵니다(공유 또는 준수 차원을 모델링하려고 함).

연관시킬 수 없는 데이터

대부분의 관계 연결 유형이 완벽하게 지원됩니다. Tableau 2020.2에서 큐브, SAP HANA(OLAP 특성 포함), JSON 및 Google Analytics는 단일 논리적 테이블로 제한됩니다. 저장 프로시저는 단일 논리적 테이블 내에서만 사용할 수 있습니다.

게시된 데이터 원본은 서로 연관시킬 수 없습니다. 또한 게시된 데이터 원본을 편집할 수 없습니다.

지원되지 않음

  • 큐브 데이터베이스는 새 논리적 계층을 지원하지 않습니다. 큐브 연결은 2020.2 이전 버전과 동일한 환경을 제공합니다.
  • 저장 프로시저: 페더레이션, 관계 또는 조인을 지원하지 않습니다. 단일 논리적 테이블에 나타나며 조인/유니온 캔버스(물리적 계층)를 열 수 없습니다.
  • Splunk: Left 조인(즉, 논리적 테이블 연관)을 지원하지 않습니다.
  • JSON: 페더레이션, 사용자 지정 SQL, 조인 또는 관계를 지원하지 않습니다(유니온만 지원).
  • LOD 계산을 지원하지 않는 데이터 원본. 자세한 내용은 세부 수준 식의 데이터 원본 제약 조건을 참조하십시오.

제한적 지원

  • Salesforce 및 WDC 표준 연결: 이들은 논리적 테이블 내에서 조인된 테이블로 나타납니다. 이러한 연결의 추가는 현재 단일 논리적 테이블 데이터 원본에서만 지원됩니다. 표준 연결은 기존 테이블에 조인할 수 없습니다.
  • SAP HANA: 현재 연결에 OLAP 특성이 설정되어 있는 경우 관련 논리적 테이블을 지원하지 않습니다.

관계 만들기 및 정의

첫 번째 테이블을 데이터 원본의 최상위 수준 캔버스에 끌어 놓은 후에는 새 테이블을 캔버스에 끌어 놓을 때마다 기존 테이블과 관련시켜야 합니다. 논리적 계층의 테이블 간에서 관계를 만드는 경우 데이터 원본에 대한 데이터 모델을 작성합니다.

참고: 게시된 데이터 원본의 데이터 모델을 편집할 수 없습니다.

관계 만들기

데이터 원본의 논리적 계층에서 관계를 만듭니다. 이것은 데이터 원본 페이지에 표시되는 캔버스의 기본 뷰입니다.

  1. 테이블을 캔버스로 끌어옵니다.

  2. 다른 테이블을 캔버스로 끌어옵니다. 두 테이블 사이에 "이음줄"이 표시되면 테이블을 놓습니다.

    관계 편집 대화 상자가 열립니다. Tableau는 자동으로 기존 키 제약 조건과 관계를 정의하는 일치하는 필드를 기반으로 관계를 만듭니다. 일치하는 필드가 확인되지 않는 경우 사용자가 일치하는 필드를 선택해야 합니다.

    필드를 변경하려면 필드 쌍을 선택한 다음 아래 필드 목록을 클릭하여 일치하는 필드의 새 쌍을 선택합니다.

    여러 필드 쌍을 추가하려면 첫 번째 쌍을 선택한 후 닫기를 클릭하고 필드 추가를 클릭합니다.

    참고: Tableau 2020.3 이상에서는 계산된 필드를 기반으로 관계를 만들고 관계 정의에서 연산자를 사용하여 관계에 사용되는 필드를 비교할 수 있습니다. Google BigQuery, MapR, Salesforce 커넥터는 같지 않음 연산자를 지원하지 않습니다.

    제약 조건이 감지되지 않은 경우 다대다 관계가 만들어지고 참조 무결성이 일부 레코드 일치로 설정됩니다. 이러한 기본 설정은 좋은 선택이며 데이터 원본에 최대한 많은 유연성을 제공합니다. 기본 설정은 전체 Outer 조인을 지원하며 분석 중에 조인을 형성하기 전에 테이블 데이터를 집계하여 쿼리를 최적화합니다. 각 테이블의 모든 열 및 행 데이터를 분석에 사용할 수 있게 됩니다.

    많은 분석 시나리오에서 관계에 대한 기본 설정을 사용하면 분석에 필요한 모든 데이터를 얻을 수 있습니다. 다대다 관계 사용은 데이터가 실제로 다대일 또는 일대일인 경우에도 작동합니다. 데이터의 특정 카디널리티 및 참조 무결성을 아는 경우 성능 옵션 설정(링크가 새 창에서 열림)을 조정하여 데이터를 보다 정확하게 기술하고 Tableau가 데이터베이스를 쿼리하는 방법을 최적화할 수 있습니다.

  3. 필요에 따라 동일한 단계를 수행하여 더 많은 테이블을 추가합니다.

다중 테이블 관련 데이터 원본을 작성한 후 해당 데이터를 탐색할 수 있습니다. 자세한 내용은 관계를 사용하는 다중 테이블 데이터 원본에서 분석이 작동하는 방식다중 테이블 분석 문제 해결을 참조하십시오.

테이블을 이동하여 다른 관계 만들기

테이블을 이동하려면 다른 테이블 옆으로 끌어 놓습니다. 또는 테이블을 마우스오버하고 화살표를 클릭한 다음 이동을 선택합니다.

: 테이블을 다른 테이블 위에 끌어 놓아 교체합니다.

관계에서 테이블 제거

테이블을 제거하려면 테이블을 마우스오버하고 화살표를 클릭한 다음 제거를 선택합니다.

관계 보기

  • 관계 라인(이음줄)을 마우스오버하여 관계를 정의하는 일치하는 필드를 표시합니다. 논리적 테이블을 마우스오버하여 포함된 내용을 확인할 수도 있습니다.


관계 편집

  • 관계 라인을 클릭하여 관계 편집 대화 상자를 엽니다. 관계를 정의하는 데 사용되는 필드를 추가, 변경 또는 제거할 수 있습니다. 복합 관계를 만들려면 다른 필드 쌍을 추가합니다.

    여러 필드 쌍을 추가하려면 첫 번째 쌍을 선택한 후 닫기를 클릭하고 필드 추가를 클릭합니다.

관계 만들기에 대한 팁

  • 캔버스에 처음 끌어 놓는 테이블이 데이터 원본에서 데이터 모델의 루트 테이블이 됩니다. 루트 테이블을 끌어 놓은 후 추가 테이블을 원하는 순서로 끌어 놓을 수 있습니다. 어떤 테이블이 서로 관련되어야 하는지와 각 관계에 대해 정의할 일치하는 필드 쌍을 고려해야 합니다.
  • 관계 만들기를 시작하기 전에 데이터 원본에서 분석 이전과 중간의 데이터를 확인하면 각 테이블의 범위를 파악하는 데 도움이 될 수 있습니다. 자세한 내용은 기초 데이터 보기를 참조하십시오. 관계가 유효하지 않은 경우 데이터 보기를 사용하여 테이블의 기초 데이터를 확인할 수도 있습니다.
  • 스타 스키마를 만드는 경우 팩트 테이블을 먼저 끌어 놓은 다음 차원 테이블을 팩트 테이블에 연관시키는 것이 좋습니다.
  • 각 관계는 하나 이상의 일치하는 필드 쌍으로 구성되어야 합니다. 복합 관계를 만들려면 여러 필드 쌍을 추가합니다. 일치하는 쌍은 동일한 데이터 유형을 가져야 합니다. 데이터 원본 페이지에서 데이터 유형을 변경해도 이 요구 사항은 영향을 받지 않습니다. Tableau는 쿼리에 계속 기초 데이터베이스의 데이터 유형을 사용합니다.
  • 계산된 필드를 기반으로 관계를 만들 수 없습니다. 관계를 정의할 때 연산자를 사용하여 필드를 비교하는 방법을 지정할 수도 있습니다.
  • 캔버스에서 테이블을 삭제하면 테이블의 관련 하위 항목도 자동으로 삭제됩니다. 루트 테이블을 삭제하면 모델의 다른 모든 테이블도 제거됩니다.

데이터 원본의 관계 유효성 검사

분석을 위한 데이터 모델의 유효성을 검사하는 여러 옵션이 있습니다. 데이터 원본에 대한 모델을 만들 때 시트로 이동하고 데이터 원본을 선택한 다음 레코드 수, 일치하지 않는 값, null 또는 반복 측정값을 탐색하는 비주얼리제이션을 작성하는 것이 좋습니다. 서로 다른 테이블 간의 필드로 작업하여 모든 것이 예상대로 작동하는지 확인하십시오.

살펴봐야 할 내용:

  • 데이터 모델의 관계가 테이블에 대한 올바른 일치 필드를 사용하고 있습니까?
  • 다양한 차원 및 측정값을 뷰에 끌어 놓으면 어떤 결과가 나타납니까?
  • 예상되는 행 수가 표시됩니까?
  • 복합 관계가 관계를 더 정확하게 만들 수 있습니까?
  • 기본 설정에서 성능 옵션 설정 중 하나를 변경한 경우 비주얼리제이션에서 보이는 값이 예상한 값입니까? 그렇지 않은 경우 설정을 확인하거나 기본값으로 재설정할 수 있습니다.

관계 및 데이터 모델의 유효성을 검사하기 위한 옵션:

  • 모든 테이블은 테이블의 세부 수준에 TableName(Count)라는 필드명으로 레코드의 카운트를 포함합니다. 테이블의 카운트를 확인하려면 Count(카운트) 필드를 뷰에 끌어 놓습니다. 모든 테이블의 카운트를 확인하려면 데이터 패널에서 각 테이블의 Count(카운트) 필드를 선택한 다음 표현 방식에서 텍스트 테이블을 클릭합니다.
  • 데이터 패널에서 데이터 보기를 클릭하여 테이블별 행 및 데이터 수를 확인합니다. 또한 관계 만들기를 시작하기 전에 데이터 원본에서 분석 이전과 중간의 데이터를 확인하면 각 테이블의 범위를 파악하는 데 도움이 될 수 있습니다. 자세한 내용은 기초 데이터 보기를 참조하십시오.
  • 차원을 행에 끌어 놓아 상태 표시줄에서 행 수를 확인합니다. 일치하지 않는 값을 확인하려면 분석 메뉴를 클릭한 다음 테이블 레이아웃 > 빈 행 표시 또는 빈 열 표시를 선택합니다. 또한 비주얼리제이션에 표시된 테이블 중 하나에서 다양한 측정값(예: <YourTable>(Count))을 뷰에 끌어 놓을 수 있습니다. 이렇게 하면 해당 테이블에서 차원의 모든 값을 확인할 수 있습니다.

: 관계에 대해 생성되는 쿼리를 확인하고 싶은 경우 Tableau Desktop에서 성능 기록 프로그램을 사용할 수 있습니다.

  1. 도움말 메뉴를 클릭한 다음 설정 및 성능 > 성능 기록 시작을 선택합니다.
  2. 필드를 뷰에 끌어 놓아 비주얼리제이션을 작성합니다.
  3. 도움말 메뉴를 클릭한 다음 설정 및 성능 > 성능 기록 중지를 선택합니다.
  4. 성능 요약 대시보드의 시간별로 정렬된 이벤트에서 "쿼리를 실행하는 중" 막대를 클릭하면 아래에 쿼리가 표시됩니다.

또 다른 고급 옵션은 GitHub의 Tableau Log Viewer(링크가 새 창에서 열림)를 사용하는 것입니다. end-protocol.query를 사용하여 특정 키워드를 필터링할 수 있습니다. 자세한 내용은 GitHub의 Tableau Log Viewer 위키 페이지(영문)(링크가 새 창에서 열림)를 참조하십시오.

차원 전용 비주얼리제이션

관련 테이블이 있는 다중 테이블 데이터 원본을 사용하는 경우: 차원 전용 비주얼리제이션을 작성하면 Tableau에서 Inner 조인을 사용하며 일치하지 않는 전체 도메인이 표시되지 않습니다.

차원 값의 부분 조합을 보려면 다음과 같이 할 수 있습니다.

  • 빈 행/열 표시를 사용하여 가능한 행을 모두 표시합니다. 분석 메뉴를 클릭한 다음 테이블 레이아웃 > 빈 행 표시 또는 빈 열 표시를 선택합니다.
  • 비주얼리제이션에 표시된 테이블 중 하나에서 측정값(예: <YourTable>(Count))을 뷰에 추가할 수 있습니다. 이렇게 하면 해당 테이블에서 차원의 모든 값을 확인할 수 있습니다.

자세한 내용은 관계를 사용하는 다중 테이블 데이터 원본에서 분석이 작동하는 방식다중 테이블 분석 문제 해결을 참조하십시오.

관계(논리적 테이블) 및 조인(물리적 테이블)

조인과 관계는 유사하지만 Tableau에서 다르게 작동하며 데이터 모델의 서로 다른 계층에 정의됩니다. 데이터 원본의 최상위 수준 논리적 계층에서 논리적 테이블 간에 관계를 만듭니다. 데이터 원본의 물리적 계층에 있는 물리적 테이블 간에 조인을 만듭니다.

조인은 분석이 시작되기 전에 두 테이블의 데이터를 단일 테이블로 병합합니다. 테이블을 병합하면 한 테이블이나 두 테이블 모두에서 데이터가 중복되거나 필터링될 수 있으며 Left, Right 또는 전체 Outer 조인을 사용하는 경우 데이터에 NULL 행이 추가될 수도 있습니다. 조인된 데이터에 대한 분석을 수행할 때 데이터의 조인 효과를 올바르게 처리했는지 확인해야 합니다.

참고: 조인의 복제 또는 필터링 효과가 유용할 수 있는 경우 관계 대신 조인을 사용하여 테이블을 하나로 병합합니다. 논리적 테이블을 두 번 클릭하여 물리적 계층을 열고 조인된 테이블을 추가합니다.

관계는 두 독립된 테이블이 서로 관련되는 방식을 설명하지만 테이블을 병합하지는 않습니다. 이를 통해 조인에서 발생할 수 있는 데이터 중복 및 필터링 문제를 방지하며 더욱 쉽게 데이터 작업을 할 수 있습니다.

관계 조인
관계 캔버스(논리적 계층)의 논리적 테이블 간에서 정의됨 조인/유니온 캔버스(물리적 계층)의 물리적 테이블 간에서 정의됨
조인 유형을 정의할 필요 없음 조인 계획 및 조인 유형이 필요함
조인되거나 유니온되는 테이블의 컨테이너 역할을 함 논리적 테이블로 병합됨
비주얼리제이션과 관련된 데이터만 쿼리합니다. 쿼리를 최적화하기 위해 카디널리티 및 참조 무결성 설정을 조정할 수 있습니다. 모든 쿼리의 일부로 실행
세부 수준은 비주얼리제이션의 집계 수준임 세부 수준은 단일 테이블의 행 수준임
조인 유형은 분석의 컨텍스트를 기반으로 Tableau에서 자동으로 형성됩니다. Tableau는 비주얼리제이션의 측정값 및 차원을 기반으로 필요한 조인을 결정합니다. 분석 컨텍스트에 관계없이 조인 유형은 정적이며 데이터 원본에서 고정됩니다. 조인 및 유니온은 분석 전에 설정되며 변경되지 않습니다.
행이 중복되지 않음 병합된 테이블 데이터는 중복을 발생시킬 수 있음
일치하지 않는 레코드는 명시적으로 제외하지 않는 한 집계에 포함됨 일치하지 않는 레코드는 병합된 데이터에서 생략됨
여러 세부 수준에서 독립된 도메인을 만듭니다. 추출 필터 및 집계와 같은 단일 데이터 테이블이 필요한 시나리오를 지원합니다.

관계 및 혼합

관계와 혼합 모두 다양한 세부 수준에서 분석을 지원하지만 명확한 차이점이 있습니다. 관계 대신 혼합을 사용하는 이유 중 하나는 분석을 위해 게시된 데이터 원본을 결합할 수 있기 때문입니다.

관계 혼합
데이터 원본에 정의됨 주 데이터 원본과 보조 데이터 원본 사이의 워크시트에 정의됨
게시할 수 있음 게시할 수 없음
모든 테이블이 의미론적으로 동일함 주 데이터 원본과 보조 데이터 원본의 선택과 해당 데이터 원본이 구조화된 방식에 따라 달라집니다.
전체 Outer 조인 지원 Left 조인만 지원
로컬에서 계산됨 SQL 쿼리의 일부로 계산됨
관련 필드가 고정됨 관련 필드가 시트별로 달라짐(시트 단위로 사용자 지정할 수 있음)

데이터를 결합하기 위한 다양한 옵션 기능: 관계, 조인 및 혼합

데이터 테이블을 결합하는 여러 방법이 있으며, 각 방법마다 선호되는 시나리오와 의미가 있습니다.

연관

서로 다른 세부 수준에서 데이터를 결합할 때 사용합니다.

  • 두 논리적 테이블 간에 일치하는 필드가 필요합니다. 여러 일치하는 필드 쌍이 관계를 정의할 수 있습니다.
  • 비주얼리제이션에서 필드가 관련되고 사용되는 방식을 기반으로 자동으로 올바른 집계와 상황에 따른 조인을 사용합니다.
  • 다대다 및 Outer 조인을 지원합니다.
  • 관계는 전체 통합 문서에서 일관되며 게시할 수 있습니다.
  • 게시할 수 있지만 게시된 데이터 원본을 연관시키거나 게시된 데이터 원본의 관계를 편집할 수 없습니다.
  • 계산된 필드 또는 지리적 필드를 기반으로 관계를 정의할 수 없습니다.
  • 데이터 원본 필터를 사용하면 관계의 조인 선별 이점이 제한됩니다.
조인

동일한 행 구조에 걸쳐 더 많은 데이터 열을 추가하려는 경우 사용합니다.

  • 두 물리적 테이블 간에 공통 필드가 필요합니다.
  • 조인 절 및 조인 유형을 설정해야 합니다.
  • 계산 시 조인할 수 있습니다.
  • 조인된 물리적 테이블은 고정된 데이터 결합을 사용하여 단일 논리적 테이블로 병합됩니다.
  • 필드 또는 값이 모든 테이블에 존재하지 않는 경우 데이터 손실이 발생할 수 있습니다(사용된 조인 유형에 따라 다름).
  • 필드가 서로 다른 세부 수준에 있는 경우 데이터 중복이 발생할 수 있습니다.
  • 데이터 원본 필터를 사용할 수 있습니다.
유니온

동일한 열 구조를 사용하여 걸쳐 더 많은 데이터 행을 추가하려는 경우 사용합니다.

  • 두 테이블 간의 일치하는 열에 기반합니다.
  • 유니온된 물리적 테이블은 고정된 데이터 결합을 사용하여 단일 논리적 테이블로 병합됩니다.
혼합

서로 다른 세부 수준에서 데이터를 결합할 때 사용합니다.

  • 게시된 데이터 원본을 결합하는 데 사용할 수 있지만 게시할 수 없습니다.
  • 관계형 데이터 원본과 큐브 데이터 원본 사이에서 사용할 수 있습니다.
  • 데이터 원본을 시트별 기반으로 혼합할 수 있습니다.
  • 항상 효과적으로 Left 조인됩니다(보조 데이터 원본의 데이터가 손실될 수 있음).

이 섹션의 다른 문서

피드백을 제공해 주셔서 감사합니다!