관계를 사용하는 다중 테이블 데이터 원본에서 분석이 작동하는 방식
여러 관련 테이블이 있는 데이터 원본을 사용하면 Tableau에서 분석이 작동하는 방식이 영향을 받습니다. 다중 관련 테이블에는 독립된 도메인이 있으며 해당 기본 세부 수준을 유지하기 때문에 필드를 뷰에 끌어 놓으면 다음이 수행됩니다.
- 자연적인 세부 수준에서 데이터가 쿼리됩니다.
- 비주얼리제이션과 관련된 데이터만 쿼리합니다.
- 테이블 간의 관계가 쿼리 결과에 영향을 미칩니다. 비주얼리제이션을 작성하는 흐름은 필드의 테이블이 데이터 모델에서 서로 관련된 방식이나 직접적으로 관련되지 않는지 여부에 따라 달라질 수 있습니다.
데이터 원본 개선 사항에 대한 개요와 관계 사용에 대한 소개를 보려면 이 동영상(5분)을 시청하십시오.
참고: 이 동영상과 이 항목에 나온 관계 편집용 인터페이스는 현재 릴리스와 약간 다르지만 기능은 같습니다.
관계에 대한 두려움 극복과 다음 Tableau 블로그 게시물에서 관계의 작동 방식에 대해 자세히 알아보십시오.
- 관계, 1부: Tableau의 새로운 데이터 모델링 소개(영문)(링크가 새 창에서 열림)
- 관계, 2부: 팁과 요령(영문)(링크가 새 창에서 열림)
- 관계, 3부: 여러 관련 테이블에서 질문하기(영문)(링크가 새 창에서 열림)
Action Analytics(링크가 새 창에서 열림)에서 Tableau가 관계를 발명한 이유는 무엇입니까?(영문)(링크가 새 창에서 열림)와 같은 동영상 팟캐스트도 참조하십시오. Library(라이브러리)(링크가 새 창에서 열림)에서 “Video Podcast(동영상 팟캐스트)”를 클릭하여 자세히 알아볼 수 있습니다.
Tableau 버전 2024.2 이상에서 Tableau 데이터 모델은 다중 팩트 관계를 통해 다중 팩트 분석 및 공유 차원을 지원합니다. 자세한 내용은 다중 팩트 관계 데이터 모델 정보(링크가 새 창에서 열림), 다중 팩트 관계 모델을 사용해야 하는 경우(링크가 새 창에서 열림) 및 다중 팩트 관계 데이터 모델 구축(링크가 새 창에서 열림)을 참조하십시오.
참고: 여전히 Tableau에서 단일 테이블 데이터 원본을 만들 수 있습니다. 조인, 유니온, 사용자 지정 SQL 등의 조합을 사용하여 논리적 테이블을 작성할 수 있습니다. Tableau의 단일 테이블 분석 동작은 변경되지 않았습니다. 차원 및 측정값의 혼합을 포함하는 단일 논리적 테이블에 대한 분석은 Tableau 2020.2 이전 버전처럼 작동합니다.
분석 고려 사항
관계 유효성 검사
분석을 위한 데이터 모델의 유효성을 검사하는 여러 옵션이 있습니다. 데이터 원본에 대한 모델을 만들 때 시트로 이동하고 데이터 원본을 선택한 다음 레코드 수, 예상 데이터, 일치하지 않는 값, null 또는 반복 측정값을 탐색하는 비주얼리제이션을 작성하는 것이 좋습니다. 서로 다른 테이블 간의 필드로 작업하여 모든 것이 예상대로 작동하는지 확인하십시오.
살펴봐야 할 내용:
- 데이터 모델의 관계가 테이블에 대한 올바른 일치 필드를 사용하고 있습니까?
- 일치하는 필드 쌍 여러 개를 추가하면 관계가 더 정확해집니까?
- 다양한 차원 및 측정값을 뷰에 끌어 놓으면 어떤 결과가 나타납니까?
- 예상되는 행 수가 표시됩니까?
- 기본 설정에서 성능 옵션 설정 중 하나를 변경한 경우 비주얼리제이션에서 보이는 값이 예상한 값입니까? 그렇지 않은 경우 설정을 확인하거나 기본값으로 재설정할 수 있습니다.
관계 및 데이터 모델의 유효성을 검사하기 위한 옵션:
- 모든 테이블은 테이블의 세부 수준에 TableName(Count)라는 필드명으로 레코드의 카운트를 포함합니다. 테이블의 카운트를 확인하려면 Count(카운트) 필드를 뷰에 끌어 놓습니다. 모든 테이블의 카운트를 확인하려면 데이터 패널에서 각 테이블의 Count(카운트) 필드를 선택한 다음 표현 방식에서 텍스트 테이블을 클릭합니다.
- 데이터 패널에서 데이터 보기를 클릭하여 테이블별 행 및 데이터 수를 확인합니다. 또한 관계 만들기를 시작하기 전에 데이터 원본에서 분석 이전과 중간의 데이터를 확인하면 각 테이블의 범위를 파악하는 데 도움이 될 수 있습니다. 자세한 내용은 기초 데이터 보기를 참조하십시오.
- 차원을 행에 끌어 놓아 상태 표시줄에서 행 수를 확인합니다. 일치하지 않는 값을 확인하려면 분석 메뉴를 클릭한 다음 테이블 레이아웃 > 빈 행 표시 또는 빈 열 표시를 선택합니다. 또한 비주얼리제이션에 표시된 테이블 중 하나에서 다양한 측정값(예: <YourTable>(Count))을 뷰에 끌어 놓을 수 있습니다. 이렇게 하면 해당 테이블에서 차원의 모든 값을 확인할 수 있습니다.
팁: 관계에 대해 생성되는 쿼리를 확인하고 싶은 경우 Tableau Desktop에서 성능 기록 프로그램을 사용할 수 있습니다.
- 도움말 메뉴를 클릭한 다음 설정 및 성능 > 성능 기록 시작을 선택합니다.
- 필드를 뷰에 끌어 놓아 비주얼리제이션을 작성합니다.
- 도움말 메뉴를 클릭한 다음 설정 및 성능 > 성능 기록 중지를 선택합니다. 성능 기록 통합 문서가 자동으로 열립니다.
- 성능 요약 대시보드의 시간별로 정렬된 이벤트에서 "쿼리를 실행하는 중" 막대를 클릭하면 아래에 쿼리가 표시됩니다.
또 다른 고급 옵션은 GitHub의 Tableau Log Viewer(링크가 새 창에서 열림)를 사용하는 것입니다. end-protocol.query
를 사용하여 특정 키워드를 필터링할 수 있습니다. 자세한 내용은 GitHub의 Tableau Log Viewer 위키 페이지(영문)(링크가 새 창에서 열림)를 참조하십시오.
차원 전용 비주얼리제이션
관련 테이블이 있는 다중 테이블 데이터 원본을 사용하는 경우: 차원 전용 비주얼리제이션을 작성하면 Tableau에서 내부 조인을 사용하며 일치하지 않는 전체 도메인이 표시되지 않습니다.
차원 값의 부분 조합을 보려면 다음과 같이 할 수 있습니다.
- 빈 행/열 표시를 사용하여 가능한 행을 모두 표시합니다. 분석 메뉴를 클릭한 다음 테이블 레이아웃 > 빈 행 표시 또는 빈 열 표시를 선택합니다. 이 설정은 날짜 및 숫자 구간차원 필드에 대한 바람직하지 않은 치밀화도 트리거한다는 것에 유의하십시오.
- 비주얼리제이션에 표시된 테이블 중 하나에서 측정값(예: <YourTable>(Count))을 뷰에 추가할 수 있습니다. 이렇게 하면 해당 테이블에서 차원의 모든 값을 확인할 수 있습니다.
자세한 내용은 예상과 다를 수 있는 차원에 대한 일치하지 않는 값 동작 및 다중 테이블 분석 문제 해결을 참조하십시오.
LOD 계산 및 식을 사용해야 하는 경우
Tableau가 입력 테이블의 세부 수준(LOD)을 인식하기 때문에 조인으로 인한 불필요한 중복을 제거하기 위해 LOD 계산을 사용할 필요가 없습니다.
여전히 다음과 같은 용도로 LOD 계산을 사용할 수 있습니다.
- 원본 테이블에서 불필요한 중복 처리
- 다중 수준 집계(예: 합계에 대한 평균) 계산
- 집단 분석 수행(예: 각 고객의 첫 번째 주문 날짜 계산)
LOD 계산의 차원 특성에 단일 테이블의 필드가 포함되는 경우 해당 LOD 계산은 데이터 패널에서 소유 테이블에 나타납니다.
다중 테이블 분석의 예
다음과 같은 일련의 예제에서는 여러 관련 테이블에서 데이터를 쿼리하는 방법을 보여 줍니다. 이 다중 테이블 데이터 원본은 영화에서 다양한 역할을 하는 배우의 출연 정보에 대한 짧은 목록을 포함합니다.
Appearances(출연) 테이블의 한 행은 특정 영화에서 특정 등장인물을 연기한 배우를 의미합니다. 이 데이터 집합에서 Actor(배우)는 0개 이상의 Appearances(출연)를 가질 수 있습니다.
다음 Tableau 블로그 게시물에서 관계가 작동하는 방식에 대해 자세히 알아보십시오.
예 1: 조인된 데이터와 관련 데이터에서 단일 질문 분석
Tableau 2020.2 이전에서 데이터에 연결한 경우 데이터 원본은 단일 테이블 또는 함께 조인되거나 유니온되어 비정규화된 단일 테이블을 만드는 다중 테이블로 구성될 수 있습니다. Tableau 2020.2부터 Tableau는 테이블 데이터가 별도로 유지되고 각 테이블이 기본 세부 수준을 유지하는 다중 테이블 데이터 원본에 대해 정규화된 데이터를 인식하고 보존합니다. 다음 예제에서는 단일 테이블 및 다중 테이블 데이터 원본에서 분석이 어떻게 달라지는지 보여 줍니다.
이 예제에서는 Appearances(출연), Actors(배우) 및 Movies(영화)라는 세 가지 영화 데이터 테이블을 보여 줍니다.
이러한 테이블은 함께 조인될 수 있습니다. Appearances(출연) 테이블은 Actor = Actor를 기준으로 Actors(배우) 테이블과 조인되고 Appearances(출연) 테이블은 Movie = Movie를 기준으로 Movies(영화) 테이블과 조인됩니다. 조인이 완전 외부 조인인 경우 손실되는 행이 없으므로 최종 출력은 다음과 같은 모양입니다. 조인 절에 사용되는 필드는 두 번 나타난다는 것에 주의하십시오.
이 방식으로 단일 테이블에 함께 가져오는 데이터는 비정규화되거나 평활화되었다고 합니다.
이 조인된 데이터는 평활화된 데이터입니다. 각 행은 영화의 등장인물인 배우의 출연 정보로 구성됩니다. 예를 들어 John Rhys-Davies(존 라이스 데이비스)는 반지의 제왕: 왕의 귀환에서 두 등장인물을 연기했기 때문에 두 행에 나타납니다. 따라서 데이터의 세부 수준은 영화의 등장인물 수준입니다. 여러 행에 관련된 정보는 중복됩니다. 왕의 귀환 데이터 집합에 해당 영화의 두 등장인물이 있기 때문에 개봉 날짜가 두 번 나타납니다. 존 라이스 데이비스는 배우로 연기한 등장인물/영화의 5가지 고유한 조합이 있기 때문에 키가 다섯 번 나열됩니다.
이 평활화된 데이터에는 몇 가지 알아야 하는 특징이 있습니다. 예를 들어 배우의 키와 출연 영화의 총이익을 그리려는 경우 Height(키)를 열로 가져오고 Gross(총이익)를 행으로 가져온 다음 Gross(총이익)의 평균을 구한다고 가정할 것입니다. 하지만 그렇게 하면 기본 뷰가 올바르게 보이지 않습니다. 이 경우 존 라이스 데이비스는 키가 925cm인 것으로 나타납니다. 거의 10미터입니다!
이것은 기본 집계가 SUM이기 때문입니다. 데이터에 그에 대한 행이 5개 있기 때문에 실제 키인 185cm의 다섯 배를 얻게 됩니다. Height(키)에 대한 집계를 평균이나 최소값으로 변경하여 이 문제를 해결할 수 있습니다. 이렇게 하면 한 행에 대한 값이 효과적으로 반환됩니다(모든 값이 같으므로).
집계를 변경하면 키가 훨씬 현실적이 됩니다. 이제 평균 총이익에 주의를 기울여야 합니다. Tableau는 존 라이스 데이비스의 키에 대해 다섯 개 행 모두를 고려한다는 것을 기억하십시오. 그가 출연한 영화의 평균 총이익에 대해 생각할 때 다섯 개 행의 평균이 아니라 세 개 영화의 평균이어야 합니다. 그가 두 등장인물을 연기한 왕의 귀환의 총이익을 두 번 계산하고 싶지 않습니다. 그러나 실제로 어떤 일이 발생하나요?
빠르게 계산하면 왕의 귀환 영화의 평균은 (869 + 923 + 1119)/3 또는 970.3이 되어야 합니다. 그러나 분산형 차트의 값은 990.6입니다. 현재 평균은 다섯 개 행 (869 + 923 + 923 + 1119 + 1119)/5의 결과입니다.
이 문제는 집계를 변경한 키 문제와 같이 쉽게 해결할 수 없습니다. Tableau가 조사하는 세부 수준을 기본값인 Appearance(출연) 수준에서 Movie(영화) 수준으로 변경하려면 세부 수준(LOD) 식을 사용해야 합니다. LOD Gross에 대한 계산을 {FIXED [Movie] : MIN([Gross (USD millions)])}으로 만든 다음 뷰에 사용할 새 LOD Gross 필드의 평균을 구합니다.
이 LOD 식은 “각 영화에 대해 해당 총이익의 최소값을 반환한다”고 읽을 수 있습니다. 이렇게 하면 뷰가 영화와 배우로 구성된 경우에도 총이익이 항상 영화별로 반환되므로 중복 문제가 사라집니다.
이제 수치가 올바릅니다. 존 라이스 데이비스는 키가 185cm이고 이 데이터 집합에서 그가 출연한 영화의 평균 총이익은 970.3입니다. 올바른 값이 반환되게 하려면 데이터가 복제되는 방식과 Tableau가 표시할 데이터를 집계하는 방식을 이해해야 합니다.
다중 테이블의 정규화된 데이터
논리적 테이블 간에서 관계를 만드는 것은 조인을 만드는 것과 비슷하게 보이지만 데이터를 단일 테이블로 평활화하는 대신 관련된 모든 복제를 유지하며, Tableau는 테이블 간의 관계에 주의합니다. 정보는 각 테이블의 적절한 세부 수준에서 가져와 다른 데이터와 관련됩니다.
데이터 원본 페이지에서 평활화된 데이터의 “전체” 그리드 뷰를 볼 수 없습니다. 이 뷰가 존재하지 않습니다. Tableau는 세 테이블 모두 그대로 유지하며 관계만 설정하며 뷰에 필요할 때 필요한 데이터를 함께 가져옵니다.
동일한 분산형 차트를 만들려면 Height(키) 및 Gross(총이익)를 뷰에 끌어 놓고 Gross(총이익)를 평균으로 설정합니다. 이것이 전부입니다! Tableau는 각 테이블의 데이터가 다른 관련 테이블의 데이터와 관련된 방식을 조사하여 키를 표시할 방법(배우별)과 평균 총이익을 계산할 방법(영화별)을 유추합니다.
예 2: 단일 테이블의 차원
비주얼리제이션의 차원이 단일 테이블에서 제공되는 경우 Tableau는 한 테이블만 쿼리하고 전체 도메인의 결과를 표시합니다. 사용자가 측정값을 추가할 수 있으며 여전히 전체 도메인을 표시합니다.
예를 들어 위에서 설명한 Movie Appearances(영화 출연) 데이터 원본을 사용하면서 비주얼리제이션에 Actor(배우) 필드를 추가하면 다음과 같은 비주얼리제이션이 나타납니다.
비주얼리제이션의 유일한 차원이 Actors(배우) 테이블에서 제공되기 때문에 Tableau는 Actors(배우) 테이블에 대해서만 쿼리를 실행합니다. Actors(배우) 테이블에 나타나는 모든 배우는 Appearances(출연) 정보가 있는지 여부와 관계없이 비주얼리제이션에 표시됩니다.
Appearance Actor(출연 배우) 필드를 뷰에 측정값으로 가져온 다음 COUNT 집계를 적용하면 배우별 출연 회수를 표시하는 뷰가 만들어집니다. Sigourney Weaver(시고니 위버)는 출연한 영화가 없지만 여전히 이름이 뷰에 있습니다.
예 3: 다중 테이블의 차원
뷰의 차원이 다중 테이블에서 제공되는 경우 Tableau는 모든 차원이 관련된 테이블을 찾아 해당 테이블의 도메인을 표시합니다. 결과적으로 예 1에서 본 일부 차원 값이 변경됩니다.
예를 들어 Movies(영화) 테이블의 필드를 비주얼리제이션에 끌어 놓으면 쿼리가 변경됩니다. Movies(영화) 및 Actors(배우) 테이블은 Appearances(출연) 테이블을 통해 관련되므로 쿼리는 Appearances(출연) 테이블에 존재하는 Actor(배우)/Movie(영화) 쌍만 반환합니다.
시고니 위버는 데이터 집합의 어떤 Movies(영화)와도 관련되지 않아서 이 데이터 집합에 Appearances(출연) 정보가 없기 때문에 Actor(배우)/Movie(영화) 쌍의 비주얼리제이션에 나타나지 않습니다.
예 4: 차원으로 분할할 수 없는 측정값
측정값을 차원으로 분할할 수 없는 경우 Tableau는 해당 차원에 대해 측정값을 복제합니다.
다음 비주얼리제이션에는 Movie(영화)별로 합산된 총 금액이 표시됩니다. 두 필드 모두 Movies(영화) 테이블에서 제공되므로 Tableau는 Movies(영화) 테이블만 쿼리합니다.
다음 비주얼리제이션에서 볼 수 있는 것처럼 Movies(영화) 테이블에는 이미 각 영화의 집계된 총이익이 포함되어 있습니다(인피니티 워의 총이익은 이 데이터 집합을 만드는 시점에 사용할 수 없었기 때문에 0으로 표시됨).
이 비주얼리제이션에 Actor(배우)를 추가할 경우 Tableau는 영화 총이익을 배우별로 분류할 수 없다는 것을 인식합니다. 이것은 데이터 모델에서 이 보다 세분화된 정보를 사용할 수 없기 때문입니다. 대신 Tableau는 각 영화의 총이익을 배우별로 복제하여 보여 줍니다.
예 5: 측정값과 계층적으로 관련되지 않는 차원
이전 비주얼리제이션에서 Movie(영화) 차원을 제거하면 각 Actor(배우)에 대해 Movie Gross(영화 총이익) 측정값의 합계가 쿼리됩니다. 결과적으로 배우가 출연한 모든 영화에 대한 집계된 영화 총이익이 나타납니다.
이 경우 Actor(배우) 차원과 Movie Gross(영화 총이익) 측정값 간에 계층적 관계가 없는데, 이유는 여러 배우가 동일한 영화에 출연할 수 있기 때문입니다. 예를 들어 Benedict Cumberbatch(베네딕트 컴버배치)와 Chris Hemsworth(크리스 헴스워스)가 모두 닥터 스트레인지에 출연했습니다. 이 경우 Tableau는 닥터 스트레인지의 Movie Gross(영화 총이익)를 두 배우의 총계에 모두 포함시킵니다.
동일한 Movie Gross(영화 총이익) 값이 여러 배우의 총계에 포함되기 때문에 Tableau는 이러한 값에 대한 합계를 직접적으로 구할 수 없습니다.
하지만 이 비주얼리제이션에 대한 총계를 표시할 때 Tableau는 중복되는 영화를 포함하지 않고 Movie Gross(영화 총이익)의 총계를 올바르게 계산하다는 것에 주의하십시오.
다중 테이블 분석 문제 해결
다중 테이블 관련 테이블에서는 다음과 같은 상황이 가능합니다. 이 테이블에서는 알려진 시나리오를 설명하고 분석 문제 해결 방법을 개략적으로 소개합니다.
분석 상황 | 설명 | |
---|---|---|
차원만 있는 비주얼리제이션에 대한 내부 조인 | 동일한 뷰에 다중 차원을 추가한 경우 예상한 모든 값이 즉시 나타나지 않을 수 있습니다. 또한 서로 다른 테이블에서 비주얼리제이션에 새 차원을 추가하면 일부 값이 비주얼리제이션에서 사라질 수도 있습니다. Tableau에서는 데이터에 실제 존재하는 값 조합을 보존하는 쿼리를 사용합니다. 즉, 비주얼리제이션에 차원을 추가하면 테이블의 내부 조인에 의해 생성되는 행이 표시됩니다. 차원 값의 부분 조합을 보려는 경우 빈 행/열 표시를 설정하여 가능한 행을 모두 표시하거나 뷰에 표시된 테이블 중 하나에서 <MyTable>(Count)와 같은 측정값을 추가하여 해당 테이블에서 차원의 모든 값을 확인할 수 있습니다. | |
계산의 상수 | 다중 테이블 데이터 원본에서 상수 값은 단일 행이 있는 고유한 테이블에서 제공된 것처럼 작동합니다. 상수 값을 집계하는 경우 단일 행의 집계인 것처럼 작동합니다. Sum(10)은 항상 10과 같습니다. Avg(10)은 항상 10과 같습니다. Count(10)은 항상 1과 같습니다. 이전 버전 호환성을 보장하기 위해 단일 논리적 테이블 데이터 원본의 상수 값은 테이블의 각 값에 대해 상수 값이 복제된 것처럼 작동합니다. 행 수준 계산의 상수는 계산의 행 세부 수준을 변경하지 않습니다. [Sales] + 10 계산은 [Sales(매출)] 필드와 같은 테이블에서 제공되는 것처럼 작동합니다. | |
외부 조인 적용 | Tableau는 모든 측정값(데이터에서 실제 발생하는 모든 차원 값 조합과 함께)이 비주얼리제이션에 표시되게 하므로 데이터에서 "일치하지 않는 Null"을 포함한 모든 가능한 값이 표시되게 하려면 워크시트의 각 테이블에서 측정값을 뷰로 가져오면 됩니다. | |
교차 테이블 계산에서 예상되는 측정값이 표시되지 않음 | 계산의 도메인이 계산 입력의 내부 조인입니다. 측정값 계산의 입력 중에 일치하는 값이 없는 경우 해당 입력은 측정값 계산에 포함되지 않습니다. 행 수준 계산을 만들기 전에 LOD 계산을 사용하여 측정값을 동일한 개체로 이동하는 것이 좋습니다. | |
서로 다른 논리적 테이블의 필드 간을 전환하는 계산이 예기치 않은 결과를 제공함 | case 문, if 문 또는 "IFNULL" 같은 함수를 사용하여 행 수준 필드 간을 전환하는 계산이 있는 경우 해당 계산은 모든 행에서 계산되고, 행은 계산 입력 간의 내부 조인이기 때문에 예기치 않은 결과가 나타날 수 있습니다. 더 나은 방식은 행 수준 계산 내에서 전환하는 대신 집계된 값 간에서 전환하는 것입니다. 이렇게 하면 단일 테이블 시나리오의 성능도 향상됩니다. 또한 테이블 간에 걸친 계산에서만 문제가 되므로 LOD 계산을 사용하여 모든 필드를 동일한 테이블로 가져오면 예상대로 작동하게 됩니다. 금지하는 작업: SUM(
IF [Parameter] == "Foo" THEN [Field 1] ELSE [Field 2] END
)
수행할 작업: IF [Parameter] == "Foo" THEN SUM([Field 1]) ELSE SUM([Field 2]) END | |
예기치 않은 일치하지 않는 Null | 예기치 않은 Null 차원 값과 연관된 측정값이 표시될 수 있습니다. 이것은 데이터 원본의 관계가 잘못 구성되었다는 신호일 수 있습니다. 또한 측정값이 포함된 테이블에 일치하지 않는 값(차원 테이블에서 해당하는 행을 찾을 수 없는 값)이 실제로 있음을 나타낼 수 있습니다. 과거에는 잘못된 조인 유형을 선택한 경우 이 데이터가 손실되었습니다. 관계를 사용하면 이러한 일치하지 않는 값이 보존됩니다. 일치하지 않는 값을 표시하지 않으려면 필터를 사용하여 제외할 수 있습니다. | |
잘못된 집계 값 | 관계 또는 조인을 사용합니까? 관계를 사용하면 기본적으로 집계가 올바르게 계산됩니다. 조인을 사용할 경우 값을 중복 제거하는 LOD 계산을 작성해야 할 수 있습니다. 관계에서 성능 옵션을 잘못 설정했습니까? 성능 옵션을 기본값으로 다시 설정하고 올바른 집계가 생성되는지 확인합니다. | |
차원은 측정값을 분할하는 것이 아니라 복제합니다. 차원 필터는 측정값의 하위 집합을 만들지 않습니다. | 관계를 정의하는 데 사용된 필드가 올바른지 확인하십시오. | |
Tableau가 많은 왼쪽 조인이 있는 쿼리를 너무 많이 생성함 | 로그 또는 성능 기록을 확인하여 생성되는 쿼리 수와 사용되는 왼쪽 조인 수를 확인합니다. 새로운 데이터 모델링 기능을 사용하면 Tableau가 왼쪽 조인을 사용하는 쿼리 및/또는 추가 쿼리를 생성하여 일치하지 않는 측정값이 항상 비주얼리제이션에 포함되도록 합니다. 일치하지 않는 값을 표시할 필요가 없다면 필터를 사용하여 비주얼리제이션에서 일치하지 않는(NULL) 값을 제거합니다. 이렇게 하면 더 적은 쿼리가 생성됩니다. 데이터에 일치하지 않는 값이 없다는 것을 알고 있는 경우 성능 옵션에서 각 관계의 참조 무결성 설정을 "모든 값 일치"로 설정할 수 있습니다. 이렇게 해도 더 적은 쿼리가 생성됩니다. 또한 비주얼리제이션의 복잡성을 줄여 생성되는 쿼리 수를 줄일 수 있습니다. 측정값을 제거하고 필터 컨트롤을 숨기는 것이 쿼리의 다중 테이블 관련 데이터를 간소화하는 핵심적인 방법입니다. | |
쿼리에 많은 하위 쿼리가 있음 | 로그 또는 성능 기록을 확인하여 Tableau가 생성하는 쿼리의 복잡성을 확인합니다. Tableau는 필요한 경우 데이터의 중복을 제거하는 하위 쿼리를 자동으로 생성하여 올바른 집계를 생성합니다. 이것은 LOD 계산에서 생성되는 쿼리와 유사합니다. 데이터의 논리적 테이블 간의 관계에 다대일 또는 일대일 카디널리티가 있음을 아는 경우 관계의 성능 옵션에서 이 카디널리티 정보를 설정할 수 있습니다. 이렇게 하면 Tableau가 중복이 발생할 수 없다는 것을 알기 때문에 불필요한 하위 쿼리를 제거할 수 있습니다. | |
조인을 사용하여 데이터를 필터링함 | 2020.2에서 Tableau는 일치하지 않는 값을 복구하기 위해 많은 작업을 수행합니다. 의도적으로 데이터를 필터링하기 위해 내부 조인을 지정한 왼쪽 조인을 사용하는 경우가 있다는 의미입니다. 이 조인에 의해 발생한 일치하지 않는 값을 필터링하는 경우 Tableau가 쿼리를 다시 내부 조인으로 최적화할 수 있습니다. 특정 시나리오에 따라 이 내부 조인을 논리적 테이블 내의 물리적 조인으로 모델링하는 것이 좋을 수 있습니다. 이 기능은 추가적인 측정값 복제를 유발하지 않기 때문에 측정값을 포함하는 테이블이 차원 테이블을 필터링하는 데 사용되는 경우 특히 유용합니다. |