Tableau를 SQL로 이해하고 설명해보기

소환인·2023년 11월 30일
0

스터디노트

목록 보기
32/48

들어가며

'제로베이스 데이터스쿨'에서 Tableau에 대한 강의가 시작되었습니다. 최근 데이터 시각화에 대해 흥미가 커져가고 있었고, 특히 대시보드 작성 기술을 배우고자 하는 마음이 컸어서 강의과정이 재미있었씁니다.

Tableau를 처음 접하면서, 많은 새로운 개념들과 마주하게 되었습니다. 다소 혼란을 느꼈던 개념들을 제가 기존에 배운 SQL 지식을 바탕으로 이들을 해석하고 이해해 보려고 했습니다.

이번 포스트에서는 구글링을 통해 공부하고 정리한 결과, Tableau의 몇 가지 개념들 - 논리적 테이블, 물리적 테이블, 관계, 조인, 유니온 - 을 제게 조금 더 익숙한 SQL과 판다스와의 연관성을 통해 설명해보고자 합니다.

1. 논리적 테이블과 물리적 테이블

'테이블'이라는 용어는 데이터를 구성하는 기본 단위를 의미합니다. Tableau에서의 '논리적 테이블'과 '물리적 테이블'은 이러한 데이터 구성의 두 가지 측면을 나타냅니다.

  • 물리적 테이블:

    • 이는 데이터베이스에 실제로 저장된 데이터의 구조를 말합니다. SQL에서 테이블을 생성하고 데이터를 채우는 것과 유사합니다. 마치 판다스에서 데이터프레임을 CSV 파일이나 SQL 테이블로부터 읽어오는 것처럼, 물리적 테이블은 데이터의 원본 형태를 나타냅니다.
    • 예를 들어, 고객 정보나 거래 내역과 같이 구체적인 데이터가 저장되어 있는 테이블이 이에 해당합니다.
  • 논리적 테이블:

    • 반면, 논리적 테이블은 사용자가 정의한 데이터의 '가공된' 형태입니다. 이는 SQL에서 특정 조건을 적용하여 SELECT 문으로 데이터를 조회하는 것과 유사합니다. Tableau에서는 이러한 논리적 테이블을 통해 다양한 데이터를 결합하고, 필요한 정보만을 추출하여 시각화할 수 있습니다.

물리적 테이블은 데이터의 원천을 나타내며, 논리적 테이블은 분석 과정에서의 데이터 가공 및 조합의 결과를 의미합니다.

2. 관계

Tableau에서 '관계'를 설정하는 것은 두 데이터간의 연결을 의미합니다. 이는 SQL에서 외래 키를 사용하여 두 테이블 간의 관계를 맺는 것과 유사합니다. 그러나 중요한 차이점이 있는데, Tableau의 관계 설정은 데이터를 실제로 합치는 것이 아니라, 분석 시 어떻게 연관 지을 것인지를 정하는 것입니다.

예를 들어, 고객 테이블과 주문 테이블이 있을 때, 이 두 테이블 사이에 고객 ID를 기준으로 관계를 설정할 수 있습니다. 이 관계 설정은 SQL의 외래 키와 비슷한 논리적 연결을 제공하지만, 물리적으로 두 테이블을 합치지는 않습니다.

3. 조인 (Joins)

  • Tableau의 조인:

    • Tableau에서 조인은 두 논리적 테이블을 결합할 때 사용됩니다. 사용자는 다양한 조인 유형(내부 조인, 왼쪽 조인, 오른쪽 조인, 외부 조인)을 선택하여, 필요에 따라 데이터를 결합할 수 있습니다.
    • 예를 들어, 고객 정보를 담고 있는 테이블과 해당 고객의 구매 내역을 담고 있는 테이블을 조인하여, 고객별 구매 패턴을 분석할 수 있습니다.
  • SQL의 조인:

    • SQL에서도 조인은 테이블 간의 관계를 기반으로 데이터를 결합하는 데 사용됩니다. JOIN 구문을 통해 두 테이블을 연결하고, 관련된 데이터를 하나의 결과 세트로 합칩니다.
SELECT * FROM customers INNER JOIN orders ON customers.customer_id = orders.customer_id;

Tableau에서 조인을 사용하면, 물리적 테이블이 아닌 논리적 테이블을 기반으로 데이터를 결합할 수 있습니다.

4. 유니온 (Union)

Tableau에서 유니온은 두 개 이상의 데이터 세트를 수직적으로 결합하는 데 사용됩니다. 이는 판다스의 concat 함수를 사용하여 데이터프레임을 수직으로 합치는 것과 유사합니다.

  • Tableau의 유니온:

    • 유니온을 통해 사용자는 같은 구조를 가진 여러 데이터 소스를 하나의 논리적 테이블로 결합할 수 있습니다. 이는 같은 종류의 데이터가 여러 파일이나 테이블에 분산되어 있을 때 유용합니다.
    • 예를 들어, 여러 지역의 판매 데이터를 각각 다른 파일로부터 불러와 하나의 대시보드에서 분석하기 위해 유니온을 사용할 수 있습니다.
  • 판다스의 concat:

    • 판다스에서도 concat 함수를 사용하여 동일한 열 구조를 가진 여러 데이터프레임을 하나로 합칠 수 있습니다. pd.concat([df1, df2]) 명령을 사용하여 두 데이터프레임을 수직으로 합칩니다.

결론

데이터 분석을 배우기 시작하면서부터 분석 결과를 대시보드로 표현해내고 싶다는 마음이 컸습니다. 드디어 대시보드 작성을 위한 BI 툴인 Tableau를 배우기 시작했습니다. 이번 포스트에서 다룬 논리적 테이블, 물리적 테이블, 관계, 조인, 유니온 등의 개념을 SQL과 비교해서 이해하고 조사한 대로 정리해 보았습니다.

앞으로는 Tableau를 통한 작성한 대시보드를 소개하는 포스트를 작성할 수 있도록 노력해 보겠습니다.

profile
돌고돌아

0개의 댓글