본문 바로가기
v3 | Tableau Deep Dive

[3]-3. 블렌딩 (1)

by VizLab 2019. 10. 11.

오늘은 Data Preparation의 마지막 파트, 블렌딩(Blending)에 대해서 정리해보도록 하겠습니다

 

Data Prepartion 섹션에서는 제일 먼저 일반적인 형태의 조인에 대해서 살펴봤고,

다음으로는 특수한 형태의 조인에 대해서도 정리해보았습니다

그리고 바로 전 포스트에서는 데이터를 가로로 붙이는 조인과는 달리 세로로 붙이는 유니온에 대해서도 검토해본 바 있습니다

 

조인과 유니온과는 달리 이제부터 살펴볼 블렌딩은 일반적인 데이터베이스 문법에서는 찾아볼 수 없는,

태블로에서만 나오는 독특한 개념이라고 생각하시면 됩니다

 

블렌딩이라는 기법이 어떤 의미에서 특이한지 이제부터 상세히 파헤쳐보죠

 

 

 

We Are Here


[01] Tableau Fundamentals

[02] Data Preparation

[03] Manipulating Data

   ▪  Join

   ▪  Union

   ▪  Blending

[04] Building a Chart

[05] Analytics Pane

[06] Filter

[07] Table Calculation

[08] Parameter

[09] Level of Detail Expressions

[10] Map

[11] Dashboard Rendering

 

 

 

Blending, Join on the Fly


블렌딩은 기본적으로 조인과 유사하게 데이터를 옆으로 길게 붙이는 작업이지만,

데이터를 붙이는 그 과정에서 조인과 결정적인 차이점을 보입니다

 

조인은 결합 후 집계하지만(선 결합 후 집계), 블렌딩은 집계 후 결합합니다(선 집계 후 결합)

 

이 말이 조금 어렵지만 다음 예시를 통해 해부해보도록 하죠

 

Sample - Superstore 데이터셋을 활용하여, Sales 담당자별 매출 현황을 살펴보겠습니다

Sample - Superstore.xls
3.23MB

 

먼저 조인으로 문제를 해결해볼까요?

 

 

위의 그림에서도 어느 정도 나타나고 있지만, 태블로에서의 조인은 다음 두 가지 특징을 보입니다

 

▪  조인은 데이터 준비창에서 만들어집니다. 즉, 조인은 데이터를 준비하는 단계에서 만들어준 후 작업에 들어가야 합니다

▪  조인은 Row Level에서 만들어집니다. 즉, 조인은 마스터 테이블(여기에서는 왼쪽)의 한 줄 한 줄에 보조 테이블의 데이터가 붙습니다

(적절하게 붙일 값이 없으면 NULL이 붙습니다)

 

위와 같은 특징들이 블렌딩에서는 어떻게 다르게 나타나는지 곧 검토해보겠습니다

 

데이터 준비창에서 위와 같은 조인 작업을 마무리한 후 데이터 작업창(시트)으로 넘어가면 목표한 화면을 쉽게 만들 수 있지요

 

 

이렇듯 조인은 데이터 준비창에서 데이터의 Row Level에서 데이터 결합이 먼저 이루어집니다

그런 후에 데이터 작업창으로 넘어와 Sales 필드가 Person 레벨에서 집계되고 있습니다

말 그대로 선 결합, 후 집계입니다

 

블렌딩은 거꾸로입니다

 

블렌딩을 위해서는 각각의 테이블을 먼저 태블로에 불러와야 합니다

 

편의 상 앞서 만든 조인 테이블의 이름을 바꾸어준 후

(Join = Orders + People)

블렌딩 작업을 위해

Orders 테이블과 People 테이블을 각각 불러왔습니다

왼쪽 그림 두번째 원통과 세번째 원통에서

각각의 테이블이 확인되어 있지요

 

 

 

 

위의 그림에서 People 테이블을 선택한 후 Person 필드를 화면에 먼저 올립니다

그 다음에 Orders 테이블을 클릭해서 해당 테이블로 넘어간 후 Person 필드가 들어가 있는 현재의 화면에 Sales 필드를 얹습니다

그러면 아래 그림과 같이 나와야 합니다

 

 

혹시 위와 같은 그림이 나오지 않으면 Orders 테이블의 Region 필드 옆의 체인 모양의 연결고리가

위와 같이 빨간색으로 연결되었는지 체크해보시면 되겠습니다

 

블렌딩의 작동 방식을 구분 동작으로 살펴보겠습니다

 

먼저 People 테이블에서 Person 필드를 화면에 올림으로 화면의 Level of Detail을 Person 레벨로 정해버렸습니다

이렇게 선제적으로 정해져버린 VLOD에 Orders 테이블의 Sales 필드가 들어오는 것입니다

 

즉, 마스터 테이블의 특정 필드(여기에서는 Person)에 의해 집계의 단위가 먼저 결정되고,

그 다음으로 보조 테이블의 특정 필드(여기에서는 Sales)가 그 VLOD에 맞추어져 결합되는 것입니다

말 그대로 선 집계, 후 결합인 것이지요

 

정리를 해보면,

조인은 일단 물리적으로 붙고(결합되고) 시작합니다.

A와 B를 붙여서 C를 만들었기 때문에, C는 독립된 단독 테이블로써 다른 테이블들처럼 활용하면 그만입니다

블렌딩은 물리적으로 붙이지 않습니다. 하나의 화면에서 두 테이블이 붙어있는 듯한 인상을 줄 뿐입니다

하나의 테이블에서 원하는 방식으로의 집계 계산을 수행한 후 다른 테이블에 어슬렁거려보는 것입니다

그러다가 '어! 이거도 붙일 수 있겠다!' 싶은 필드가 있으면, 그 필드를 기존 화면에 가져와 사용하는 것 뿐입니다

 

그래서 저는 블렌딩에 대한 정의로 이만한 것이 없다고 생각합니다

Blending is 'Join on the Fly' :D

 

 

 

How to Make a Data Blending


조인과 블렌딩의 개념과 차이점을 정리해봤으니, 실제 태블로에서 블렌딩이 어떻게 만들어지는지 구체적으로 알아보죠

 

앞서 개념 설명에서도 잠깐 언급하였듯이

블렌딩은 대상이 되는 두 개(또는 그 이상)의 테이블이 각각 태블로에 올라와 있을 때 사용할 수 있습니다

 

다음의 샘플 데이터를 통해서 연습해봅시다

Blending - Sample.xlsx
0.01MB

 

우선 가장 기초적인 블렌딩의 사용방법입니다

아래 그림 중 위의 테이블은 Customer1 시트, 아래의 테이블은 Product 시트입니다

 

 

 

두 테이블을 블렌딩을 통해 연결하기 위해 각각의 테이블을 데이터 준비창을 통해 불러왔습니다

 

먼저 Customer1 테이블에서부터 시작해보죠

 

 

각 고객별 연령을 확인하는 화면입니다. 아직은 블렌딩이 들어가기 전이죠

한 가지 확인할 것은 왼쪽 상단 데이터 부분에서 Customer1에 대해서만 원통에 파란색 체크 마크가 붙어있습니다

 

블렌딩을 위해 Purchase 테이블을 눌러주겠습니다

 

여기에서 몇 가지 눈에 띄는 부분을 살펴봅시다

 

우선 데이터 탭의 왼쪽에 주황색 세로 라인이

차원과 측정값 부분에 걸쳐 길게 내려와있습니다

 

지금 화면에서 보이는 차원과 측정값은

파란색 체크 표시가 있는 마스터 테이블에 속한 필드들이 아니라,

Purchase라는 보조 테이블의 필드들이라는 의미입니다

 

다음으로 볼 것은 Customer Name 옆의 붉은색 체인 연결과

Location 옆의 회색 체인 분절 부분입니다

 

체인이 연결된 Customer Name 필드는

Customer1에도 있는 필드로써 Customer1과 Purchase,

두 테이블을 연결하는 고리, 즉 키 필드로 사용될 수 있음을

태블로가 알려주고있습니다

 

 

 

 

 

'만약에 너가 Purchase 테이블에 있는 필드를 올려 Customer1 테이블을 기반으로 만들어진 현재의 뷰를 수정/보완한다고 하면,

나는 두 테이블을 Customer Name 필드를 활용하여 엮을거야' 이 말입니다

 

이 상태에서 Purchase 테이블에 있는 몇 가지 필드를 아래의 그림과 같이 화면에 추가해보았습니다

 

 

블렌딩이 이루어졌습니다

 

먼저 확인되는 것은 블렌딩 결과 화면의 VLOD가 Customer Name 레벨에서 계속해서 유지되고 있군요

블렌딩은 현재의 VLOD에 다른 테이블의 데이터를 가져다 붙이는 것이라고 앞서 말씀드렸습니다

 

다음으로는 몇 가지 표식이 눈에 띄입니다

먼저 왼쪽 상단 Purchase 테이블 원통에는 붉은색 체크 표시가 생겼고,

Purchase 테이블에서부터 올린 Product, Payment, Amount 필드는 전부 원통에 주황색 체크 마크가 붙었습니다

보조 테이블에서 올라간 필드들이라는 의미겠지요

 

마지막으로 눈 여겨 볼 부분은 Null과 *(asterisk) 표시입니다

송길수의 제품 부분, 조민수의 제품 및 지불방식 부분에 * 마크가 붙어있고, 이철수의 제품 및 지불방식은 모두 NULL 입니다

 

먼저 이해하기 쉬운 NULL부터 살펴봅시다

 

원본 엑셀 데이터를 살펴보면,

 

 

 

위쪽 Customer1 테이블에는 이철수가 있고, 아래쪽 Purchase 테이블에는 이철수가 없습니다

 

마스터 테이블에서 Customer Name 필드 기준으로 화면의 LOD가 정해졌기 때문에,

만들어지는 화면의 결과는 무조건 마스터 테이블의 Customer Name에서 보여질 것입니다

따라서 이철수는 결과 화면에 포함됩니다. Customer1 테이블의 Customer Name 필드에 이철수가 있기 때문이죠

 

반면, Purchase 테이블의 이완수와 진해수는 결과 화면에 포함되지 않습니다

왜냐하면 화면 결과의 기준이 되는 Customer1 테이블의 Customer Name 필드에 둘의 이름이 없기 때문이죠

조인 개념을 생각해보면 Left Outer Join(왼쪽: Customer1 / 오른쪽: Purchase)이 되는 것이지요

 

정리하면, 이철수는 포함된다, 그러나 Purchase 테이블에서 가져다가 붙일 값이 없기 때문에 NULL이 뜬다, 이렇게 이해하면 되겠죠 :D

 

그러면 이완수와 진해수를 화면에 포함시키고 싶으면 어떻게 하면 될까요?

Right Outer Join 개념을 적용하면 되지 않을까요? 어떻게? 마스터와 보조 테이블을 바꾸면되겠죠!

 

이번에는 Purchase 테이블에서 먼저 필드를 올려서 VLOD를 확정해버렸습니다

 

 

위의 그림의 VLOD는 Customer Name - Product - Payment 레벨입니다

(사실 Customer Name - Product 레벨이라고 봐도 무방합니다. Payment가 포함되어도 화면의 depth가 더 깊어지는 것은 아니죠)

 

그 레벨에서 Amount가 합계로 먼저 집계가 되었고,

Customer1 테이블에서 Age 필드가 화면 안으로 들어와 현재의 VLOD에서 데이터를 표현해주고 있지요

 

이완수와 진해수는 Age 필드가 포함되어 있는 Customer1 테이블에 이름을 올리지 못하고 있으므로,

Age가 바 차트로 표현되지 않고 있는 것이지요

 

이처럼 블렌딩은 어떤 테이블에서 필드를 먼저 올리느냐에 따라 마스터 테이블과 보조 테이블이 결정되고,

마스터 테이블에 의해 만들어진 VLOD에서 보조 테이블의 데이터가 함께 표현되는 것입니다

마스터에는 값이 있는데, 보조에는 없다면, 그냥 NULL이 뜨는 것이죠

 

 

 

조인이 있는데, 굳이 블렌딩을...?


항상 짧게 핵심만 써야지, 하는데 글이 길어지는건 전적으로 저의 내공 부족입니다 ㅠㅠ

 

이번 포스트 내용은 이쯤에서 마무리 짓고,

다음 포스트에서는 오늘 다 다루지 못한 * 마크 이야기, 그리고 그와 연관되어 있는 블렌딩에서의 키 필드 관련 논의를 조금 더 해보겠습니다

그리고 꽤나 많이들 하시는 질문, '조인하면 되지, 굳이 블렌딩을 알아야 하는 이유가 뭔가요?',

이 부분에 대해서는 블렌딩이 활용될 수 있는 대표적인 케이스 하나를 중심으로 살펴보도록 하지요

 

쓸 수 있는 패는 많이 가질수록 선택의 폭이 넓어지는 것이겠지요?

블렌딩을 아는 것은 패를 하나 더 가지는 것과 같습니다. 여러분들이 태블로를 활용해 구현할 수 있는 범위가 더 늘어날 수 있음을 의미하죠

이 정도 메리트라면 한 번 제대로 익혀보는 것도 괜찮은 선택지 아닐까요? :D

 

'v3 | Tableau Deep Dive' 카테고리의 다른 글

[3]-4 블렌딩 Hands-On  (4) 2019.10.11
[3]-3. 블렌딩 (2)  (0) 2019.10.11
[3]-2. 유니온  (1) 2019.10.07
[3]-1. 조인 (2)  (3) 2019.10.07
[3]-1. 조인 (1)  (1) 2019.10.06