2022. 2. 13. 15:14ㆍ개인 공부 공간/Metabase
이번 포스트에서는 BI(Business Intelligence) 툴 중 하나인 Metabase의 기본적인 사용법과 이를 통한 대시보드 구축에 대해 설명해보려고 합니다. 최근 우연히 Metabase를 사용할 기회가 있었고 사용해본 결과 기존에 많이 사용해본 경험이 있는 BI 툴인 Google Data Studio와는 다른 느낌이며 장점도 존재한다고 생각하여 정리하게 되었습니다.
1. 메인페이지 및 Sample Dataset 둘러보기
우선 Metabase 홈페이지에서 가입은 완료한 상태라고 가정하고 설명을 진행하겠습니다. 최초 가입 및 실행 과정에서 데이터베이스를 따로 추가하지 않았다면 Metabase가 기본적으로 제공하는 Sample Dataset을 활용할 수 있습니다. 첫 메인 페이지의 하단에 잇는 OUR DATA의 Sample Dataset을 클릭하면 존재하는 테이블들을 볼 수 있습니다.
Sample Dataset에는 아래와 같이 4개의 테이블이 존재합니다.
Sample Dataset을 클릭하면 아래와 같이 테이블 형태로 볼 수 있습니다.
이제 위 테이블들 이용하여 원하는 시각화 및 분석을 하고 최종적으로 대시보드도 구축하는 방법에 대해 설명해보겠습니다.
2. Ask a question
Metabase에서 주어진 테이블을 원하는 방식으로 처리하기 위해서는 우측 상단의 Ask a question을 눌러야 합니다. Ask a question을 누르면 아래 사진과 같이 Simple question, Custom question, Native query 3가지 옵션이 있습니다.
이 중 Simple question과 Custiom question은 쿼리문 없이 테이블을 처리할 수 있다는 공통점이 있고, Custom question이 조금 더 복잡한 처리 및 테이블 조인까지 지원합니다. Native query의 경우 쿼리문을 이용하여 데이터를 처리할 수 있습니다. 우선 Simple question을 이용하여 Orders 테이블을 처리하는 과정을 설명해보겠습니다.
Orders 테이블의 Total 컬럼값을 월별로 집계한 결과입니다. 우측 상단의 Summarize를 누른 후 Summarize by 부분에서 어떤 값을 산출할지 정할 수 있습니다. 위의 예시에서는 Sum을 사용했지만 이 외에도 다양한 값(평균, 누적합, 중복 제외 카운트, 최소값, 최대값, 등등) 산출이 가능합니다. 그 후 Group by 부분에서 어떤 컬럼을 이용하여 집계를 진행할지 설정할 수 있습니다. 제가 집계한 Created At 컬럼과 같이 시간 컬럼으로 집계하는 경우 기간도 구체적으로 설정 가능합니다.
이번에는 우측 상단에 있는 Filter를 사용해보겠습니다.
위의 예시에서는 Filter 기능을 통해 원하는 기간(2019년 1월 ~ 12월)에 대해서만 결과가 산출되게 설정했습니다. 기간뿐 아니라 다양한 컬럼을 Filter로 설정할 수 있습니다.
이렇게 원하는 결과를 산출 후 좌측 하단에 있는 Visualization에서는 시각화 종류를 선택할 수 있고, Settings에서는 시각화 결과 세부 설정이 가능합니다.
최종적으로 작성한 시각화 결과를 우측 상단의 Save 버튼을 이용하여 결과를 저장 후 대시보드에도 추가할 수 있습니다. 물론 추가가 가능한 대시보드를 생성 후에 추가가 가능합니다.
대시보드 사용법에 대해 설명하기 이전에 이번에는 쿼리문을 직접 작성하는 방식인 Native query방식에 대해 설명해보겠습니다.
상품명별로 합계를 집계하기 위해 사용한 쿼리문은 아래와 같습니다.
SELECT p.TITLE,
SUM(o.TOTAL - (CASE WHEN o.DISCOUNT IS NOT NULL THEN DISCOUNT
ELSE 0 END)) AS TOTAL
FROM ORDERS o
JOIN PRODUCTS p
ON o.PRODUCT_ID = p.ID
GROUP BY p.TITLE;
Native query를 통해 얻어낸 결과도 Visualization, Settings에서 설정이 가능하고 Save 후에 대시보드에 추가가 가능합니다. 다만 Native query를 이용하여 추가한 결과가 대시보드의 Filter에 적용되게 하려면 이를 적용할 컬럼을 WHERE
절의 {{}}
안에 추가해주어야 합니다. 이 부분은 다른 포스팅을 통해 구체적으로 정리할 예정입니다.
3. Dashboard
이 부분에서는 우선 제가 생성한 대시보드의 일부를 예시로 보여드리겠습니다.
각각의 항목들은 위에서 설명드린 Ask a question을 이용하여 모두 구성할 수 있는 내용들입니다. 이 다음에는 대시보드에 필터를 적용하는 방법에 대해 설명해보겠습니다.
우선 우측 상단의 funnel 처럼 생긴 마크를 눌러서 어떤 타입의 필터를 적용할지 정할 수 있습니다.
적용할 필터를 정한 후에는 각 필터를 적용할 대시보드 구성 항목들에 지정해 주면 필터 적용이 완료됩니다. 여기서 Default value에는 대시보드를 켰을 시 기본으로 보이게 할 내용들을 설정할 수 있습니다.
마지막으로 아래 사진은 필터링 기간을 적용한 대시보드 상태입니다.
4. 총평
Metabase에 대한 기본적인 활용법들을 작성하다 보니 생각보다 길이 길어진 것 같습니다. 제가 느낀 Metabase의 장점으로는 사용법이 직관적이며 쉽고 제공하는 시각화들이 무난하면서 보기 편한 것 같습니다. 반면 단점으로는 Native query 기능을 이용하여 시각화를 구성할 때 살짝 자유도가 떨어지는 부분이 있는 것 같습니다. 물론 아직 제가 Metabase 사용이 어색해서 이렇게 느꼈었을 수 도 있습니다. 이후에는 Metabase에 대해 더욱 깊게 공부하며 제공하는 기능들에 대해 하나하나 구체적으로 작성해보려고 합니다.
References
'개인 공부 공간 > Metabase' 카테고리의 다른 글
[Metabase] Cohort Retention (0) | 2022.02.17 |
---|---|
[Metabase] Native query filter 적용 (0) | 2022.02.14 |