티스토리 뷰

SW 개발

Amazon QuickSight, 개념 및 사용법 정리

지단로보트 2020. 12. 16. 14:26

Amazon QuickSight

  • Amazon QuickSight는 아마존이 제공하는 서버리스 매니지드 BI 상품이다. 특정 데이터에 대한 시각화 대시보드를 생성하고 다른 사용자와 공유할 수 있다.

Amazon QuickSight 특징

  • 다양한 데이터 소스로부터 데이터셋을 생성할 수 있다. 매번 데이터셋에 대한 데이터 조회 없이 일종의 중간 캐시에 해당하는 SPICE 저장소에 조회 결과를 저장하여 조회 속도를 향상시킬 수 있다.
  • 완성된 대시보드에 대해 주기적으로 특정 시간에 이메일 리포트 발송 기능을 제공한다.
  • 모든 이용자에게 AWS 계정을 요구하지 않는다. 작성자에 해당하는 한 명의 AWS 사용자가 엔터프라이즈 에디션 과금 모델을 시작한 후, n명의 독자에게 초대 이메일을 발송하여 솔루션을 같이 이용하면 된다.
  • 엔터프라이즈 에디션 기준 작성자 1명당 월 18 USD, 독자 1명당 월 최대 5 USD를 과금한다. [관련 링크]

유사 솔루션 목록

  • Metabase 또한 다양한 데이터 소스로부터의 SELECT 쿼리에 대한 데이터 시각화 기능을 제공한다. 설치형의 경우 오픈 소스로서 무료로 사용할 수 있다. 현재 무료 BI 솔루션으로서는 가장 선두적 위치에 있다.
  • PopSQL은 팀 단위의 SQL 에디터를 표방한 클라이언트 도구이다. 시각화 자체로서의 제공 기능은 단순하지만, 데이터의 즉각적인 인지와 조회 측면에서는 개발자에게 친화적이다. 챠트 기능을 이용하려면 최소 월 10 USD의 유료 과금 구독제에 가입해야 한다.

Amazon QuickSight 구성 요소

  • Amazon QuickSight의 사용은 하나의 어낼리시스(Analysis)를 생성하는 것에서 시작한다. 어낼리시스 내에서 n개의 데이터셋(Data Set = SELECT 쿼리)을 등록할 수 있고, 각 데이터셋마다 n개의 비쥬얼(Visual = Chart = Widget)을 생성할 수 있다. 각 비쥬얼은 특정 시트(Sheet = Dashboard) 공간 안에 위치시킬 수 있으며, 시트n개를 생성할 수 있다. 생성된 n개의 시트를 Publish하면 해당 시점 그대로 특정 대시보드(Dashboard)를 생성할 수 있으며, 이메일 주소를 통한 팀원 공유 및 주기적으로 특정 시간에 리포트 이메일을 발송하는 것도 가능하다.

데이터셋 생성

  • Amazon QuickSight는 원천 데이터로 데이터셋 생성을 요구하는데, 다양한 데이터 소스로부터 데이터셋을 생성할 수 있다. 가장 일반적이고 범용성이 좋은 것은 Amazon Athena로부터 데이터셋을 생성하는 것이다. Amazon Athena의 데이터 파이프라인을 생성하는 방법은 본 블로그의 이 글을 참고한다.
  • 이 경우 특정 테이블 또는 뷰를 선택하여 그대로 생성하거나, 또는 직접 작성한 SELECT 쿼리로 데이터셋을 생성할 수 있는데 퍼포먼스와 사용성 측면에서 커스텀 SELECT 쿼리 방식을 추천한다. 아래는 데이터셋을 등록하는 예이다.
Amazon QuickSight 콘솔 접속
→ [Datasets] 클릭
→ [New dataset] 클릭

# Create a Data Set
→ [Athena] 선택

# New Athena data source
→ Data source name: 회원 로그인 통계 (일 단위) (입력)
→ [Create data source] 클릭

# Choose your table
→ Database: [foobar-data-lake-prod] 선택
→ [Use custom SQL] 클릭
→ Type in a SQL query: (아래와 같이 SELECT 쿼리 입력)

select
    date(at_timezone(log_date_time, 'Asia/Seoul')) AS "날짜",
    count(distinct user_id) AS "로그인 회원 수"
from
    "foobar-data-lake-prod".log_view
where
    log_action = 'USER_LOGIN'
group by
    date(at_timezone(log_date_time, 'Asia/Seoul'))

→ [Confirm query] 클릭

# Finish data set creation
→ [Import to SPICE for quicker analytics] 선택
→ [Visualize] 클릭
  • 데이터셋 생성시 Custom SQL을 사용하는 것보다는 Amazon Athena에서 미리 데이터셋에 대응하는 뷰를 생성하고, 그 뷰를 지정하는 것이 유지보수성이 좋아 추천한다. (나중에 QuickSight에서 Custom SQL을 수정하는 것은 번거롭고 귀찮은 일이기 때문이다.)
  • 데이터셋 생성시 해당 데이터를 S3로부터 그대로 조회하거나, SPICE 엔진으로 조회하도록 지정할 수 있다. SPICE 엔진을 사용할 경우, 추가 과금이 발생하지만 훨씬 빠른 속도의 조회가 가능하다. 유의사항은 SPICE 엔진은 증분 방식의 갱신이 불가능하므로, 특정 주기(ex: 1시간)마다 전체 갱신되도록 적절히 설정해야 한다. (대시보드에 대한 이메일 리포트를 발송하기 전 시점이 적절할 것이다.)

SPICE 엔진 스케쥴 생성

  • SPICE 엔진을 사용하면 고속의 인메모리 저장소에 데이터셋을 저장하여 조회 속도를 단축시킬 수 있다. 데이터셋 생성시 SPICE 엔진 사용을 활성화 했다면, SPICE의 초기화 주기를 설정할 수 있다. (지정하지 않으면 과거 데이터가 계속 출력된다. 주로 대시보드에 대한 리포트 이메일이 발송되기 직전 시간으로 설정해두면 적절하다.)
Amazon QuickSight 콘솔 접속
→ [Datasets] 클릭
→ (스케쥴 생성할 수정할 데이터셋 클릭)
→ [Schedule refresh] 클릭

# Schedule refresh
→ [Create] 클릭
→ Time zone: Asia/Tokyo (입력)
→ Repeats: [Hourly] 선택
→ Starting: 2020-11-09 00:59 (입력)
→ [Create] 클릭

애널리시스 생성

  • 최소 1개의 데이터셋이 생성되었다면, 이를 기반으로 애널리시스를 생성할 수 있다.
Amazon QuickSight 콘솔 접속
→ [Analyses] 클릭
→ [New alaysis] 클릭

# Your Data Sets
→ (최초 등록할 데이터셋 클릭)
→ [Create analysis] 클릭
  • 애널리시스는 n개의 데이터셋을 등록할 수 있고 각 데이터셋을 기반으로 n개의 비쥬얼을 생성할 수 있다. 아래는 비쥬얼을 생성하는 예이다.
Amazon QuickSight 애널리시스 화면 진입
→ Data set: (비쥬얼을 생성할 데이터셋 선택)
→ [+ Add] 클릭
→ [Add visual] 클릭
→ Visual types: (원하는 비쥬얼 타입 선택)
→ (필요한 필드 맵핑 작업 진행)

애널리시스 복제

  • 특정 애널리시스에 대한 복제본을 생성하려면 아래 순서로 실행하면 된다. [관련 링크]
1. 원본 애널리시스에서 [Share] → [Publiish dashboard]를 실행하여 신규 대시보드 생성
2. 생성한 대시보드에서 [Save as]를 실행하여 복제본 애널리시스 생성
3. (필요할 경우) 앞의 과정에서 생성한 대시보드 삭제

사용자 초대

  • 앞서 생성한 애널리시스와 대시보드를 공유하기 위한 사용자를 초대할 차례이다. 언급했다시피 AWS 계정이 필요 없으며 수신 가능한 이메일 주소만 요구된다.
Amazon QuickSight 콘솔 접속
→ (화면 우측 꼭대기의 로그인한 내 계정명) 클릭
→ [Manage QuickSight] 클릭
→ [Invite Users] 클릭

# Invite users to this account
→ (초대할 이메일 주소 입력 후 엔터)
→ Role: (READER, AUTHOR, ADMIN 중 선택, 과금이 달라지므로 유의)
→ IAM user: [No] 선택
→ [Invite] 클릭
  • 초대 받은 사용자는 7일간 인증 가능한 링크가 제공되며, 인증 후 데이터셋, 애널리시스, 대시보드를 서로 공유할 수 있다.

이메일 리포트 스케쥴 생성

  • 모든 대시보드는 이메일 리포트 스케쥴을 생성할 수 있다. 이메일 리포트 기능은 엔터프라이즈 에디션만 제공되며 독자(Reader) 권한의 경우 접속한 세션 단위로 과금된다.
Amazon QuickSight 콘솔 접속
→ [Dashboards] 클릭
→ (이메일 리포트 발송할 대시보드 클릭)
→ [Share] 클릭
→ [Email report] 클릭

# Create email report
→ Schedule: [Repeat once a day] 클릭
→ Send first report on: 2020-11-09 10:00 (입력)
→ Time zone: Asia/Tokyo (입력)
→ Optimize report for: [Viewing on a desktop] 선택
→ [Send email report to all users with access to dashboard] 체크
→ [Create report] 클릭
댓글
댓글쓰기 폼