티스토리 뷰

SW 개발

Metabase, 개념 및 사용법 정리

지단로보트 2021. 2. 23. 19:32

개요

  • Metabase는 다양한 데이터 소스로부터, 데이터 가공 및 시각화 기능을 제공하는 오픈 소스 BI 솔루션이다. 데이터의 시각화가 워낙 경영과 직결되는 분야다 보니 비싼 유료 솔루션들이 많이 이용되는 편인데, Metabase는 커뮤니티 참여 형태의 적극적인 버전 업데이트를 통해 최근 들어 드디어 경쟁력을 갖추었다고 생각된다. 이번 글에서는 Metabase의 다양한 사용 예를 설명하고자 한다.

Metabase 업데이트 이력

  • 2021-02-17, v0.38.0부터 피봇 테이블과 대시보드 구독 기능이 추가되었다. 특히, 대시보드 구독 기능을 통해 특정 대시보드를 특정 이메일 주소에 정기적으로 발송할 수 있게 되었다. 또한 워터폴 챠트 기능이 추가되었다.

설치

  • Metabase가 제공하는 공식 도커 이미지를 이용하여 로컬에서 실행하거나, 원격지 서버에 설치할 수 있다. Amazon ECS에 설치하는 방법은 본 블로그의 이 글을 참고한다.

데이터베이스 추가

  • 시각화의 시작은 원천 데이터는 데이터베이스의 추가로 시작한다. Metabase는 현재 MySQL, MongoDB, Presto 등 총 13개의 원격지 데이터베이스를 공식 지원한다. (현재 Amazon Athena는 공식 지원하지 않고 있는데 다행히, 써드파티 드라이버를 설치하여 추가가 가능하다.)
Metabase 콘솔 접속
→ (화면 우측 상단 톱니바퀴 기호의) [Settings] 클릭
→ [Admin] 클릭
→ [Setup] 클릭
→ Database type: [Amazon Athena] 선택
→ Name: foobar-data-lake-prod (입력)
→ (관련 연결 정보 입력)
→ [Save] 클릭
  • 추가된 데이터베이스는 Browse data 메뉴에서 확인할 수 있으며, 해당 데이터베이스에 속한 테이블과 뷰도 모두 조회할 수 있다. (화면 상단의 검색 창에서 테이블 또는 뷰의 이름 일부를 검색하면 직접 바로 가기가 가능하다.)

대시보드 생성

  • 대시보드는 위젯이 모이는 시각회된 그리드 공간이다. 입맛에 맞게 다양한 대시보드를 생성할 수 있다.
Metabase 콘솔 접속
→ (화면 우측 상단 + 기호의) [Create] 클릭
→ [New dashboard] 클릭
→ Name: FOOBAR 대시보드 (입력)
→ [Create] 클릭

위젯 생성 및 대시보드 등록

  • 아래는 원천 데이터로부터 위젯을 생성하는 방법이다.
Metabase 콘솔 접속 후 위젯을 생성할 대상 테이블 또는 뷰 접속
→ [Visualization] 클릭
→ Choose a visualization: (시각화를 원하는 챠트 선택)
→ (관련 설정 정보 입력)
→ [Done] 클릭
→ [Save] 클릭
→ Name: FOO 위젯 (입력)
→ [Save] 클릭
  • 최종적으로 위젯을 생성하면 특정 대시보드에 추가할지 여부를 물어보는데, 이 때 대시보드에 추가할 수 있다.

대시보드 조회 기간 필터 등록

  • 대시보드는 n개의 위젯으로 구성되며, 대부분의 경우 각 위젯은 날짜 정보를 가진다. 대시보드에 조회 기간 필터를 등록하면 날짜 정보를 가진 모든 소속된 위젯에 대한 공통된 기간 범위를 적용하여 조회할 수 있다. 실제 일선에서 원하는 정말 강력한 기능이라고 할 수 있다.
Metabase 콘솔 접속 후 대상 대시보드 접속
→ [Edit dashboard] 클릭
→ [Add a filter] 클릭
→ [Time] 클릭
→ What kind of filter: [All Options] 클릭
→ (날짜 정보가 있는 모든 위젯에 대해 날짜 필드를 선택)
→ [Done] 클릭
→ [Save] 클릭

글로벌 캐시 설정

  • 매일 오전 10시보다 다수의 유저가 Metabase에 로그인하여 대시보드를 조회하면 원격지 데이터베이스에 상당한 부하가 가해지고 대시보드 렌더링 속도도 느려질 것이다. 캐시를 설정하면 모든 퀘스천 실행에 캐시가 적용되어 부하를 줄이고 응답성을 높일 수 있다.
Metabase 콘솔 접속
→ (화면 우측 상단 톱니바퀴 기호의) [Settings] 클릭
→ [Admin] 클릭
→ [Caching] 클릭
→ ENABLE CACHING: [Enabled] 체크
→ MINIMUM QUERY DURATION: 1 (초 단위, 지정된 시간을 초과하는 퀘스천에만 캐시 적용)
→ CACHE TIME-TO-LIVE (TTL) MULTIPLIER: 30 (분 단위, 한 번 저장된 캐시를 유지할 시간)
→ MAX CACHE ENTRY SIZE: 1000 (최대 캐시 저장 개수)

이메일 계정 설정

  • 이메일 계정을 설정해두면, 특정 주기로 대시보드 메일을 발송할 수 있으며, 여러 다양한 이벤트에 대한 알림 메일 전송 또한 가능하다. 이메일 계정 설정에서는 SMTP 서버 등록이 요구되는데 아래는 Office 365를 이용할 경우의 설정 예이다.
Metabase 콘솔 접속
→ (화면 우측 상단 톱니바퀴 기호의) [Settings] 클릭
→ [Admin] 클릭
→ [Email] 클릭
→ SMTP HOST: smtp.office365.com
→ SMTP PORT: 587
→ SMTP SECURITY: [STARTTLS] 선택
→ SMTP USERNAME: (자신의 Office 365 계정 이메일 주소를 입력)
→ SMTP PASSWORD: (자신의 Office 365 계정 비밀번호를 입력)
→ FROM ADDRESS: (자신의 Office 365 계정 이메일 주소를 입력)
→ [Save changes] 클릭
→ [Send test email] 클릭
  • 원격지 서버에서 설정시 SMTP 포트가 방화벽의 아웃바운드 규칙에 허용되어 있어야 하는 것에 유의한다.

대시보드 이메일 리포트 발송

  • 이메일 계정 설정을 완료했으면, 특정 대시보드에 대한 이메일 리포트를 특정 주기마다 발송할 수 있다.
Metabase 콘솔 접속 후 대상 대시보드 접속
→ [Sharing] 클릭
→ [Dashboard subscriptions] 클릭

# Create a dashboard subscription
→ [Email it] 클릭
→ To: (등록된 사용자 계정을 복수개 선택 가능)
→ Sent: (Daily, Weekly, Monthly 중에 선택 가능)
→ [Done] 클릭

트러블슈팅: Custom Column 생성 오류

  • 현재 써드파티 Amazon Athena 드라이버 연동시 어낼리틱스에 커스텀 컬럼 기능을 사용시 오류가 발생한다. 제작자가 해당 이슈를 확인한 상태로 릴리즈까지 기다려야 한다. [관련 링크]

참고 글

댓글
댓글쓰기 폼