본문 바로가기
DataViz

Tableau 2020.2 신기능 소개 (3) - 관계 (Relationships) part.2

by 강쌤 의 ViziBiziBusy 2020. 5. 13.

Tableau 2020.2 신기능 소개 (3) - 관계 (Relationships) part.2

 

안녕하세요 강쌤입니다.

 

오늘은 어제에 이어서 Tableau의 새 버전인 2020.2 신기능중 관계(Relationships)를 뷰에서 살펴보겠습니다.

Part.1 내용은 아래 페이지를 참고하시기 바랍니다. 

https://vizibusy.tistory.com/7

 

Tableau 2020.2 신기능 소개 (2) - 관계 (Relationships)

오늘은 Tableau의 새 버전인 2020.2 신기능중 관계(Relationships)에 대해서 살펴보겠습니다. 관계란? https://help.tableau.com/v2020.2/pro/desktop/ko-kr/datasource_relationships_learnmorepage.htm 관계가..

vizibusy.tistory.com

아직은 낯선 논리적 계층, 물리적 계층과 같은 내용은 떠나서 

아래 내용만 기억 하시면 됩니다. 

 

조인과 달리 관계는 테이블을 병합하지 않고

대신 관계를 설정한 다음, 뷰에서 필드를 사용합니다.   

 

그래서 2020.1 버전까지 물리적 계층인 조인(Join) 연결과

2020.2 버전에서 논리적 계층을 사용하면 어떤 변화가 있는지 살펴보겠습니다. 

 

사용할 데이터는 제 개인 데이터인 

1. 스타벅스_구매목록.xlsx 파일과

2. 스타벅스매장.xlsx 파일을 이용하겠습니다. 

 

1. 스타벅스 구매내역.xlsx 파일에는

먼저 '결제' sheet와 '구매목록' sheet가 있는데

이 둘을 먼저 Inner Join (안쪽 조인)으로 연결하겠습니다.

 

이유는 결제 sheet에는 저의 모든 구매 내역(선물, 충전 등)이 있지만

구매목록 sheet에는 스타벅스에서 구매한 상품만 있어서 

안쪽 조인 연결하겠습니다. 

 

먼저 2020.1 버전에서 

결제 sheet와 구매목록 sheet를 연결합니다. 

그랬더니 Row(행) 기준으로 441개가 나옵니다. 

이번에는 2.스타벅스매장.xlsx 파일을 추가한 다음에

17개 시도별로 sheet가 나누어져 있는 것을 Union합니다.

그리고 위에서 만든 Join에 17개 시도 매장을 Union하면

안쪽 조인이 디폴트로 설정되어 있어서,

두 개 테이블의 공통된 값들인,

즉 제가 방문한 매장에서 결제한 총 441개 행만 표현이 됩니다. 

 

근데 이 조인 방식을 17개 시도 매장을 Union한 '강원+' 기준인

오른쪽 조인을 하게 되면 행은 1,809개가 됩니다. 

 

즉 2020.1 버전까지는 이와 같이 물리적 계층으로 연결을 하면

연결 방식에 따라 441개 또는 1,809개를 고정 시킨 채로

시트로 이동해서 뷰에서 표현이 가능합니다. 

 

이제 2020.2 버전에서 이와는 다르게 한 번 구성해보겠습니다. 

 

먼저 1. 스타벅스_구매목록.xlsx 파일을 불러와서

'결제'sheet를 캔버스에 올리면 아래와 같이 나타납니다. 

(UI가 달라진 것을 금방 알아채실 수 있습니다.)

여기에서 1. 스타벅스_구매목록.xlsx 파일 내 또다른 시트인

'구매목록' sheet를 Drag해서 캔버스에 올려놓으면

결제와 연결되는 Noodle이 생기게 됩니다. 저희는 여기에서 Noodle로 관계(Relationship)을 만들지 않고

기존에 2020.1에서 했던 것과 같이 물리적 계층인 조인 연결을 하겠습니다. 

 

조인 연결하는 방법은

'결제'라고 되어 있는 네모 박스를 더블 클릭하면 화면이 물리적 계층으로 바뀌게 되는데

이 때 '구매목록' sheet를 Drag해서 '결제' sheet 오른쪽에 두면 조인 연결이 됩니다. 

info 아이콘을 누르면 아래와 같이 2개의 테이블이 물리적으로 결합해서

이제 논리적 테이블 역할을 할 준비가 되어 있다고 나오는데,

 

물리적 테이블 이란 텍스트를 선택하면 2020.2 버전부터 바뀐

데이터 모델에 대한 도움말이 포함된 아래 링크로 연결이 됩니다. 

https://help.tableau.com/v2020.2/pro/desktop/ko-kr/datasource_datamodel.htm

 

우측 상단에 있는 'X'를 눌러서 닫겠습니다. 

그럼 물리적 테이블이 조인 연결('벤다이어그램' 표시)된

'결제'라는 테이블이 하나 만들어지게 되었습니다. 

 

이제 2.스타벅스매장.xlsx을 추가로 불러온 다음에

17개 시도가 각각 Sheet로 되어 있는 것을 새 유니온으로 연결해 캔버스에 올립니다. 

 

그러면 기본적으로는 두 개의 테이블이 Noodle 형태로 관계가 맺어지는데

여기에서는 관계가 제대로 설정이 되지 않았습니다. 

이유는 관계 설정시에 디폴트로는 동일한 필드명이 있는 경우에

'=' 형태로 연결이 되는데

현재 '결제'와 '강원+'로 되어 있는 필드 중에서 동일한 필드명이 없기 때문입니다. 

 

만약 이와 같이 자동으로 관계가 설정되지 않는다면

수동으로 매칭시켜주면 됩니다. 

여기에서는 결제 sheet에서는 '매장명'을 강원+ sheet에서는 'Store_NM'을 각각 선택합니다. 

 

그럼 아래와 같이 관계 편집이 되었고, 

관계오 조인의 차이점에 대해서 태블로 온라인 헬프 페이지에서 도움말을 보실 수 있습니다. 

또한 하단에 있는 '성능 옵션'은 가급적이면

태블로가 구현해주는 그대로 믿고 따로 설정할 필요는 없습니다.

 

2020.1 버전에서 물리적 계층이었던 조인과 다른점을 찾으셨나요?

어떤 것들이 있을까요?

 

1) 파란색으로 되어 있는 주 원본 데이터 (여기에서는 1.스타벅스_구매목록)에서 가져온 '결제 관련된 필드들이

데이터 그리드 부분에 나타나지 않습니다. 

이유는 현재 캔버스에서 선택되어 있는 테이블은 '강원+' 기준이기 때문입니다. 

'결제' 박스를 누른다면 파란색 필드들만 나오겠죠?

 

2) 또한 여기에서는 '결제'와 '강원+'를 연결할 때 어느 방향으로 연결할지

조인이라면 안쪽/왼쪽/오른쪽/전체와 같은 설정 방향이 없습니다. 

 

왜냐하면, 초반에서도 기술한것처럼 

 

조인과 달리 관계는 테이블을 병합하지 않고

대신 관계를 설정한 다음, 뷰에서 필드를 사용합니다.   

 

이제 뷰에서 필드를 사용해서 그 차이점을 발견해보겠습니다. 

아래는 2020.1 버전과 2020.2 버전의 데이터 패널을 캡쳐한 화면입니다. 

어떤 차이점을 알 수 있을까요?

 

위에서 부터 하나씩 체크해보겠습니다. 

1) 검색창이 상단에 나와 있습니다. (기존에는 돋보기 모양 아이콘 눌러야 나왔음)

2) '차원'과 '측정값'이란 표시가 따로 없습니다. 대신 중간마다 있는 그레이 색 라인을 기준으로 차원과 측정값이 구분이 되어 있습니다. 이전과 같이 임의의 필드를 차원과 측정값으로 속성을 변경할 수 있습니다. 

아래 이미지는 측정값에 기본 분류된 [No]라는 필드를 차원쪽으로 보내는 과정을 캡쳐한 것입니다.

영어 버전에서는 구분선 기준으로 Dimension과 Measures로 잘 표현되고 있으나

한국어 버전에서는 차원대신 '차'로만 나오고 있어서 직관적이지 않은 것 같습니다. (마이너 오류인것 같기도...) 

3) 또 달라진 주요한 내용은 기존까지 있던 '레코드 수'는 없는 대신, 각 테이블 마다 (카운트)가 생겼습니다. 

이유는 계속 말씀드리지만 이제는 데이터 원본 페이지에서 모든 것을 한 덩어리로 만들어 고정적인 구성을 하는게 아니라 데이터 원본에서는 관계만 설정하고 개별 테이블을 기준으로 뷰에서 표현하게 되었기 때문입니다. 

 

4) 여기에서는 표현하지 않았지만 개별 테이블들이 아닌 공통으로 사용되는 필드들은 하단에 별도로 구성이 됩니다. 

(위 이미지에서는 측정값 이름과 측정값이 하단에 있는 것처럼) 

 

그 외에 마이너한 용어들이 바뀌기도 했습니다. 

기존에 Show Parameter Control (매개 변수 컨트롤 표시)와 같은 용어는 Show Parameter (매개 변수 표시)로 변경되었고, 대시보드 개체에서 Blank (공백)으로 표현되던 것이 '빈 페이지'로 변경 되었습니다. 

 

이제 간단하게 뷰에서 표현해보겠습니다. 

 

[2020.1 버전] 

Store_NM은 전국에 있는 스타벅스 매장명을 표현한 것이고

매장명은 그 중에서 제가 방문한 매장인데, 앞서서 데이터 원본에서 'Store_NM' 기준으로 오른쪽 조인을 했기 때문에 

제가 방문하지 않은 매장들은 Null로 나오고 있습니다. 

마크는 전국 스타벅스 매장 기준이기 때문에 마크는 전체 매장 갯수인 1404개 나오고 있습니다. 

행 선반에서 'Store_NM' 필드(알약)을 제거하면 매장명,

즉 제가 방문한 매장 36개와 나머지 방문하지 않은 매장들은 Null로 해서 37개 마크가 표현됩니다. 

 

[2020.2 버전] 

Store_NM 필드만 행 선반에 올렸을때는 전체 1404개 매장이 나오나

제가 방문한 매장만 표현한 매장명 필드를 올려놓는 순간 36개 매장만 표시됩니다.

관계 편집된 것들만 표현되기 때문입니다. 

 

 

새로운 개념이라 생소하고 좀 복잡해보일 수 있습니다. 

개인 데이터나 회사 데이터 또는 관심 있는 데이터로 한번 적용해보시기 바랍니다. 

태블로는 누구나 쉽게 데이터를 만지고 본인이 생각하는대로 직관적인 표현과

빠른 인사이트를 찾게 도와주는 방향으로 업데이트가 되고 있습니다. 

 

Data Everywhere,

Tableau for Everyone

댓글