티스토리 뷰

SW 개발

Metabase, 개념 및 사용법 정리

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

개요

  • Metabase는 다양한 데이터 소스로부터 데이터 시각화 기능을 제공하는 오픈 소스 BI 솔루션이다. 이번 글에서는 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 드라이버 연동시 어낼리틱스에 커스텀 컬럼 기능을 사용시 오류가 발생한다. 제작자가 해당 이슈를 확인한 상태로 릴리즈까지 기다려야 한다. [관련 링크]

참고 글

댓글
댓글쓰기 폼