본문 바로가기
Book & Lesson

[책정리]빅데이터를 지탱하는 기술 2.3 애드혹 분석과 시각화도구

by 카프리썬_ 2021. 6. 19.
728x90

6월 선정도서 - 빅데이터를 지탱하는 기술

선정계기 - 데이터가 쌓이고 흐르는 전체적인 구조를 깊이 있게 이해할 수 있고,

미래의 데이터엔지니어로써 해야하는 업무들의 전반적인 흐름을 파악할 수 있을 것 같아 선정(기대가 된다

 

목차 

챕터2. 빅데이터의 탐색

2-1. 크로스집게계의 기본 

2-2. 열지향 스토리지에 의한 고속화

2-3. 애드혹 분석과 시각화 도구(주피터/Redash/Superset/Kibana)

2-4. 데이터마트의 기본구조 

 

이번에는 시각화 도구의 특징 알아보기


Jupyter NoteBook(주피터)

데이터를 찬찬히 수작업으로 살펴보는 애드훅 분석을 한다면?

 

대화형 실행환경

원하는 데이터가 어디에 있는지도 모르고, 집계시간이 얼마나 걸리는지도 알지 못하는 상황에서

시행착오를 거치며 데이터를 살펴볼 수 있음 

 

주피터 특징 

  • 파이썬/루비/R 언어 같은 스크립트언어 선택해서 노트북 생성, 그 안에서 스크립트 및 외부명령어 실행
  • 실행내용은 과거로 돌아가서 편집하거나, 재실행, 마크다운 형식의 주석도 가능
  • 집계결과도 노트북안에서 실행가능 -> 몇번이고 쿼리실행과 크로스집계를 반복할 경우 유용
  • 노트북은 JSON파일이므로 GIT등 버전관리도 가능
  • 웹애플케이션이지만 일반적으로 로컬 호스트에서 기동, 로컬파일로 손쉽게 처리가능 

Matplotlib

주피터 노트북 안에서 작업중인 데이터프레임에서 그래프를 작성하는 라이브러리

마우스조작만으로도 간단하게 대화형 차트를 만들 수 있음

 

대화형 실행환경에선 수작업에 의한 애드훅분석을 위해 주피터 노트북을 중심으로 하는 분석환경 


대시보드도구

정기적으로 쿼리를 실행해 보고서를 작성하거나, 그래프를 모아서 대시보드를 작성한다면?

 

BI툴과 대시보드도구

대시보드도구는 최신의 집계결과를 즉시 확인하는데 용이하다. 

적어도 하루에 한번 자동갱신, 실시간으로 데이터를 업데이트하거나, 지표의 변화를 모니터링하는 경우 대시보드 사용.

BI도구를 사용할 수 있지만, 대시보드만 만든다면 특화된 툴 사용 권장

 

Redash (래디쉬)

다수의 데이터소스에 대응하는 파이썬으로 만든 대시보드 도구.

SQL에 의한 쿼리실행결과를 그대로 시각화하는데 적합. 

 

래디쉬로 어떻게 대시보드를 만들수 있는가?

데이터소스를 등록한다.

쿼리를 실행해서 표와 그래프를 만든다.

그래프를 대시보드에 추가한다.

 

래디쉬의 장점

  • 하나의 쿼리가 하나 또는 여러 그래프에 대응한다. 
  • 등록한 쿼리는 정기적으로 실행, 그 결과가 래디쉬 자신의 데이터베이스에 저장된다.
    -> 별도의 데이터마트가 필요없다. 
  • 알기 쉽고 SQL쿼리로 작성해서 그래프로 만들거나, 공유하기 위한 콘솔로 사용가능 

 

래디쉬의 단점

  • BI도구만큼 대량의 데이터를 처리할 수 없다.
  •  대시보드가 증가할 수록 백엔드 데이터베이스의 부하가 높아진다.
    -> 각 쿼리는 그래프를 만드는데 필요한 수십행 또는 수백행 정도 레코드를 반환한다.
    보통 그래프 수만큼 쿼리를 실행, 대시보드안에 필요한 그래프가 많을수록 쿼리를 많이 실행하고 디비부하 생김

 

 

Superset(슈퍼셋)

대화형 대시보드를 만들기 위해 파이썬으로 만들어진 웹 애플리케이션 

 

래디쉬와 차이점은?

래디쉬와 다르게 쿼리를 수동으로 입력하는 것이 아니라 화면상에서 마우스조작으로 그래프를 만드는 것. 

래디쉬처럼 여러 데이터소스에 대응하고 있지만, 대화형시각화에 적합해 래디쉬보다 데이터소스에 의한 집계가 빠르다.

 

슈퍼셋의 장점

내장스토리지 시스템을 갖고 있지 않아 데이터집계를 외부데이터 저장소에 의존한다.

시계열 데이터에 대응한 열지향 스토리지인 Druid를 표준으로 지원, 실시간 정보 취급가능

 

슈퍼셋의 단점

BI도구처럼 시각화를 위한 데이터마트가 먼저 만들어져있어야한다. 

집계시에 테이블을 결합할 수 없기 때문에 시각화에 필요한 데이터를 미리 모두 결합해두어야 한다. 

 

 

Kibana(키바나)

실시간 대시보드를 만들기 위해 자바스크립트로 만들어진 대화식 시각화도구 

검색엔진이 ElasticSearch로 만들어졌기 떄문에 도입시 ElasticSearch 필수.

 

래디쉬, 슈퍼셋과 차이점은?

래디쉬, 슈퍼셋가 다수의 데이터소스에 대응할 수 있는것과 다르게

키바나는 ElasticSearch에 있는 데이터소스만 대응한다. ElasticSearch이외의 데이터소스에는 대응하고 있지 않다. 

그래서 시각화하려는 데이터가 모두 ElasticSearch에 저장되어 있어야한다. 

RDB 등 저장된 데이터를 보는덴 사용할 수 없지만, 시각화를 위한 데이터스토어로 ElasticSearch를 쓴다면 최선의 선택

 

키바나의 특징 

전체텍스트 검색에 대응한 데이터스토어.

SQL을 이용한 복잡한 데이터분석보다 키워드로 검색조건에 맞는 데이터를 빠르게 찾아 시각화 할 경우 유용. 

 

 

BI 도구

본격적인(?) 대시보드를 만들 경우에는 대시보드 툴을 사용할 수 있지만, 

몇개월 단위의 장기적인 데이터추이를 시각화하거나, 집계의 조건을 세부적으로 바꿀수 있는 대시보드를 만들경우

BI툴을 사용하는 것이 적합하다.  

 

이미 있는 데이터를 그대로 가져올 뿐만 아니라, 시간을들여 데이터를 분석하기 쉽도록 가공하는 경우

(예를 들어 유사한 상품을 하나의 그룹으로 정리하거나, IP주소를 위치정보로 변환하거나 하는 작업)

따라서 시각화에 적합한 데이터 마트를 만들고 읽고 쓰는 것을 전제로 한다. 

 

하나 또는 소수의 데이터소스에서 다수의 그래프를 만드는 경우

하나의 대시보드에 표시할 수 있는 정보량에는 한계가 있기 때문에 중요한 화면만 먼저 만들고, 집계조건을 바꾼다. 

따라서 다수의 대시보드를 만드는데, 거기에 표시되는 데이터를 화면상에서 추려낼 수 있도록  디자인한다. 

 

BI도구 시각화과정

알고 싶은것이 늘어날때마다 데이터마트에 테이블을 만들고, 거기에 파생된 다수의 대시보드가 생겨난다.

데이터를 포함한 테이블작성 -> 테이블에서 다수의 대시보드 -> 대화형 대시보드

따라서 전체 숫자를 파악할 수 있는것이 적어도 한개 있고, 그것을 분해하여 주요지표를 정리해두는게 좋다. 

즉 배치처리에 의한 데이터마트작성이 필요하다. 

 

 

반응형