Tableau에서 세부 수준 식이 작동하는 방식
이 문서에서는 Tableau에서 세부 수준 식이 계산되는 방식과 작동되는 방식에 대해 설명합니다. LOD 식에 대한 자세한 내용과 작동 방식에 대해 알아보려면 Tableau 웹 사이트에서 Understanding Level of Detail (LOD) Expressions(링크가 새 창에서 열림)(세부 수준(LOD) 식의 이해) 백서를 참조하십시오.
행 수준 식 및 뷰 수준 식
Tableau에서 집계되지 않은 데이터 원본 열을 참조하는 식은 기초 테이블의 각 행에 대해 계산됩니다. 이 경우 식의 차원 특성은 행 수준입니다. 행 수준 식의 예는 다음과 같습니다.
[Sales] / [Profit]
이 계산은 데이터베이스의 각 행에서 평가됩니다. 각 행에서 행의 Sales 값을 행의 Profit 값으로 나눠 곱셈 결과(수익 비율)가 포함된 새 열을 생성합니다.
이 정의가 포함된 계산을 만들고 [ProfitRatio]라는 이름으로 저장한 후 해당 계산을 데이터 패널에서 선반으로 끌면 다음과 같이 일반적으로 뷰에서 계산된 필드가 집계됩니다.
SUM([ProfitRatio])
반대로, 집계된 데이터 원본 열을 참조하는 식은 뷰의 차원으로 정의된 차원 특성에서 계산됩니다. 이 경우 식의 차원 특성은 뷰 수준입니다. 뷰 수준 식의 예는 다음과 같습니다.
SUM(Sales) / SUM(Profit)
이 계산을 선반으로 끌면(또는 선반에서 임시 계산으로 직접 입력하면) 계산이 AGG 함수 안에 삽입됩니다.
AGG(SUM(Sales) / SUM(Profit))
이것을 집계 계산이라고 합니다. 자세한 내용은 Tableau의 집계 함수(링크가 새 창에서 열림)을 참조하십시오.
다음 이미지에서 하이라이트되어 있는 위치 중 하나에 배치된 차원 및 집합 필드는 뷰 세부 수준에서 사용됩니다.
Tableau에서 세부 수준 식을 지원하기 전에는 뷰 수준 이외의 세부 수준에서 계산을 만들 수 없었습니다. 예를 들어 다음 식을 저장하려고 하면 오류 메시지 "집계 인수 및 집계되지 않은 인수를 이 함수와 혼합할 수 없습니다"가 나타납니다.
[Sales] – AVG([Sales])
이 경우 사용자의 의도는 각 개별 매장의 매출을 모든 매장의 매출 평균과 비교하는 것입니다. 이제 다음과 같은 세부 수준 식으로 이 의도를 달성할 수 있습니다.
[Sales] - {AVG([Sales])}
이러한 식을 테이블 범위 세부 수준 식이라고 합니다. 자세한 내용은 테이블 범위를 참조하십시오.
세부 수준 식의 제한
세부 수준 식에는 다음과 같은 제한 사항과 제약 조건이 적용됩니다. 세부 수준 식의 데이터 원본 제약 조건도 참조하십시오.
부동 소수점 측정값을 참조하는 세부 수준 식은 식에서 값을 비교해야 하는 뷰에 사용되는 경우 불확실하게 작동할 수 있습니다. 자세한 내용은 계산의 데이터 유형 이해(링크가 새 창에서 열림)를 참조하십시오.
세부 수준 식은 데이터 원본 페이지에 표시되지 않습니다. 자세한 내용은 데이터 원본 페이지를 참조하십시오.
차원 특성 선언에서 매개 변수를 참조하는 경우 항상 매개 변수 값이 아니라 매개 변수 이름을 사용하십시오.
데이터 통합을 사용할 경우 주 데이터 원본의 연결 필드가 뷰에 있어야 보조 데이터 원본에서 세부 수준 식을 사용할 수 있습니다. 자세한 내용은 데이터 혼합 문제 해결을 참조하십시오.
또한 일부 데이터 원본에는 복잡성에 제한이 있습니다. Tableau에서는 이러한 데이터베이스에 대해 계산을 비활성화하지 않지만 계산이 지나치게 복잡해지면 쿼리 오류가 발생할 수 있습니다.
세부 수준 식은 차원이거나 측정값일 수 있음
세부 수준 식을 저장하면 데이터 패널의 차원 또는 측정값 영역에 추가됩니다.
FIXED 세부 수준 식은 집계의 기초 필드에 따라 측정값 또는 차원이 될 수 있습니다. 따라서 {MIN([Date])}는 [Date]가 차원이므로 차원이 되고, {fixed Store : SUM([Sales])}는 [Sales]가 측정값이므로 측정값이 됩니다. FIXED 세부 수준 식을 측정값으로 저장할 경우 식을 차원으로 이동하는 옵션이 제공됩니다.
INCLUDE 및 EXCLUDE 세부 수준 식은 항상 측정값입니다.
필터 및 세부 수준 식
Tableau에는 다양한 종류의 필터가 있으며 다음과 같은 순서로 위에서 아래로 실행됩니다.
오른쪽에 있는 텍스트는 이 순서에서 세부 수준 식이 평가되는 위치를 보여 줍니다.
추출 필터(주황색)는 데이터 원본에서 Tableau 추출을 만드는 경우에만 관련이 있습니다. 테이블 계산 필터(진한 파란색)는 계산이 실행된 후에 적용되므로 계산에 사용된 기초 데이터를 필터링하지 않은 상태로 마크를 숨깁니다.
SQL에 친숙하다면 측정값 필터를 쿼리의 HAVING 절로, 차원 필터를 WHERE 절로 취급할 수 있습니다.
FIXED 계산은 차원 필터 전에 적용되므로 필터 선반의 필드를 컨텍스트 필터 사용로 수준을 올리지 않는 한 해당 필드가 무시됩니다. 예를 들어 뷰의 한 선반에 다음과 같은 계산이 있고 다른 선반에 [State]가 있다고 가정합니다.
SUM([Sales]) / ATTR({FIXED : SUM([Sales])})
이 계산은 총 매출에 대한 주별 매출의 비율을 제공합니다.
이제 일부 주를 숨기기 위해 필터 선반에 [State]를 놓으면 필터가 계산의 분자에만 적용됩니다. 분모는 FIXED 세부 수준 식이기 때문에 계속 뷰에 남아 있는 주의 매출을 뷰에서 필터링된 주의 매출을 포함하는 모든 주의 총 매출로 나눕니다.
INCLUDE 및 EXCLUDE 세부 수준 식은 차원 필터 이후에 고려됩니다. 따라서 FIXED 세부 수준 식에 적용해야 할 필터가 있지만 컨텍스트 필터를 사용하지 않으려면 해당 식을 INCLUDE 또는 EXCLUDE 식으로 다시 작성해야 합니다.
집계 및 세부 수준 식
뷰의 세부 수준이 뷰의 마크 수를 결정합니다. 뷰에 세부 수준 식을 추가할 경우 Tableau가 두 가지 세부 수준, 즉 뷰의 세부 수준과 식의 세부 수준을 조정해야 합니다.
뷰의 세부 수준 식 동작은 식의 세부 수준이 뷰의 세부 수준보다 더 높은지, 낮은지 또는 같은지에 따라 달라집니다. 이 경우 “더 낮은 수준”이나 “더 높은 수준”의 의미는 무엇입니까?
세부 수준 식이 뷰 세부 수준보다 더 낮은 수준인 경우
식이 뷰의 차원 하위 집합을 참조하는 경우 뷰보다 세부 수준이 더 낮습니다. 예를 들어 [Category] 및 [Segment] 차원이 포함된 뷰에서 다음과 같이 이 두 차원 중 하나만 사용하는 세부 수준 식을 만들 수 있습니다.
{FIXED [Segment] : SUM([Sales])}
이 경우 식의 세부 수준이 뷰의 세부 수준보다 더 낮습니다. 식은 한 차원([Segment])을 기반으로 값을 결정하지만 뷰는 두 차원([Segment] 및 [Category])을 기반으로 뷰를 결정합니다.
결과적으로, 뷰의 세부 수준 식을 사용하면 특정 값이 복제되어 여러 번 나타나게 됩니다.
한 범주 내에서 평균 값과 특정 값을 비교하는 경우 복제된 값이 유용합니다. 예를 들어 다음 계산에서는 전체 평균 매출에서 고객의 평균 매출을 뺍니다.
[Sales] - {FIXED [Customer Name] : AVG([Sales])}
값이 복제되는 경우 뷰에서 관련 필드의 집계를 변경해도(예를 들어 AVG에서 SUM으로 변경) 집계 결과가 변경되지 않습니다.
세부 수준 식이 뷰 세부 수준보다 더 높은 수준인 경우
식이 뷰의 차원 상위 집합을 참조하는 경우 뷰보다 세부 수준이 더 높습니다. 뷰에서 이러한 식을 사용하는 경우 뷰 수준까지 결과가 집계됩니다. 예를 들어 다음 세부 수준 식은 두 차원을 참조합니다.
{FIXED [Segment], [Category] : SUM([Sales])}
세부 수준으로 [Segment]만 있는 뷰에서 이 식을 사용하는 경우 값이 집계여야 합니다. 이 식을 선반에 끌어 놓으면 다음이 표시됩니다.
AVG([{FIXED [Segment]], [Category]] : SUM([Sales]])}])
Tableau에 의해 집계(이 경우 평균)가 자동으로 할당됩니다. 필요한 경우 집계를 변경할 수 있습니다.
뷰에 세부 수준 식 추가
뷰에서 세부 수준 식이 집계되는지, 아니면 복제되는지는 식 유형(FIXED, INCLUDE 또는 EXCLUDE)과 식 수준이 뷰 수준보다 낮은지, 아니면 높은지에 따라 결정됩니다.
INCLUDE 세부 수준 식은 뷰와 동일한 세부 수준이나 뷰보다 높은 세부 수준을 갖습니다. 따라서 값이 복제되지 않습니다.
FIXED 세부 수준 식은 뷰보다 높은 세부 수준, 뷰보다 낮은 세부 수준 또는 뷰와 동일한 세부 수준을 갖습니다. FIXED 세부 수준의 결과를 집계해야 하는지는 뷰에 있는 차원에 따라 달라집니다.
EXCLUDE 세부 수준 식을 사용하면 항상 복제된 값이 뷰에 나타납니다. EXCLUDE 세부 수준 식이 포함된 계산을 선반에 배치하면 Tableau에서 해당 식이 실제로 집계되는 것이 아니라는 것을 나타내기 위해 기본적으로 ATTR 집계(SUM 또는 AVG 아님)를 적용하며, 이러한 집계를 변경해도 뷰는 영향을 받지 않습니다.
세부 수준 식은 뷰의 선반에 추가될 때 차원으로 사용되는 경우가 아닌 한 항상 자동으로 집계로 둘러싸입니다. 따라서 선반을 두 번 클릭하고
{FIXED[Segment], [Category] : SUM([Sales])}
식을 입력한 다음 Enter 키를 눌러 식을 커밋하면 선반에 다음 식이 나타납니다.
SUM({FIXED[Segment], [Category] : SUM([Sales])})
하지만 선반 안쪽을 두 번 클릭하여 식을 편집하는 경우 편집 모드에서 표시되는 식은 원래 식입니다.
세부 수준 식을 만들 때 집계로 식을 둘러싸는 경우 해당 식을 포함하는 계산을 선반에 배치할 때 할당되는 집계가 아니라 식을 만들 때 지정한 집계가 Tableau에서 사용됩니다. 집계가 필요하지 않은 경우(식 세부 수준이 뷰 수준보다 낮은 경우) 식이 선반에 있는 상태에서는 계속 지정한 집계가 표시되지만 계산에서 무시됩니다.
세부 수준 식의 데이터 원본 제약 조건
일부 데이터 원본의 경우 최신 버전만 세부 수준 식을 지원합니다. 일부 데이터 원본은 세부 수준 식을 전혀 지원하지 않습니다.
또한 일부 데이터 원본에는 복잡성에 제한이 있습니다. Tableau에서는 이러한 데이터베이스에 대해 계산을 비활성화하지 않지만 계산이 지나치게 복잡해지면 쿼리 오류가 발생할 수 있습니다.
데이터 원본 | 지원 |
Actian Vectorwise | 지원되지 않습니다. |
Amazon EMR Hadoop Hive | Hive 0.13 이상에서 지원됩니다. |
Amazon Redshift | 지원됩니다. |
Aster Database | 버전 4.5 이상에서 지원됩니다. |
Cloudera Hadoop | Hive 0.13 이상에서 지원됩니다. |
Cloudera Impala | Impala 1.2.2 이상에서 지원됩니다. |
큐브(다차원 데이터 원본) | 지원되지 않습니다. |
DataStax Enterprise | 지원되지 않습니다. |
EXASOL | 지원됩니다. |
Firebird | 버전 2.0 이상에서 지원됩니다. |
일반 ODBC | 제한적입니다. 특정 데이터 원본에 따라 다릅니다. |
Google Big Query | 표준 SQL에서 지원되며 레거시 SQL에서는 지원되지 않습니다. |
Hortonworks Hadoop Hive | Hive 0.13 이상에서 지원됩니다. HIVE 버전 1.1에서 교차 조인을 생성하는 세부 수준 식은 신뢰할 수 없습니다. 조인 기준이 되는 명시적인 필드가 없는 경우 교차 조인이 발생합니다. 예를 들어 세부 수준 식 |
IBM BigInsights | 지원됩니다. |
IBM DB2 | 버전 8.1 이상에서 지원됩니다. |
MarkLogic | 버전 7.0 이상에서 지원됩니다. |
Microsoft Access | 지원되지 않습니다. |
Microsoft Jet 기반 연결(Microsoft Excel, Microsoft Access 및 텍스트에 대한 레거시 커넥터) | 지원되지 않습니다. |
Microsoft SQL Server | SQL Server 2005 이상에서 지원됩니다. |
MySQL | 지원됩니다. |
IBM PDA (Netezza) | 버전 7.0 이상에서 지원됩니다. |
Oracle | 버전 9i 이상에서 지원됩니다. |
Actian Matrix(ParAccel) | 버전 3.1 이상에서 지원됩니다. |
Pivotal Greenplum | 버전 3.1 이상에서 지원됩니다. |
PostgreSQL | 버전 7 이상에서 지원됩니다. |
Progress OpenEdge | 지원됩니다. |
SAP HANA | 지원됩니다. |
SAP Sybase ASE | 지원됩니다. |
SAP Sybase IQ | 버전 15.1 이상에서 지원됩니다. |
Spark SQL | 지원됩니다. |
Splunk | 지원되지 않습니다. |
Tableau 데이터 추출 | 지원됩니다. |
Teradata | 지원됩니다. |
Vertica | 버전 6.1 이상에서 지원됩니다. |
참고 항목
Understanding Level of Detail (LOD) Expressions(세부 수준(LOD) 의 이해)(링크가 새 창에서 열림)