[빅데이터를 지탱하는 기술] 2. 빅데이터의 탐색 (2)

2023. 9. 4. 12:21·Data Engineering/책 리뷰
목차
  1. 2-3. 애드 혹 분석과 시각화 도구
  2. Jupyter Notebook에 의한 애드 혹 분석
  3. 대시보드 도구
  4. BI 도구
  5. 2-4. 데이터 마트의 기본 구조
  6. 시각화에 적합한 데이터 마트 만들기
  7. 테이블을 비정규화하기
  8. 다차원 모델 시각화에 대비하여 테이블을 추상화하기

2-3. 애드 혹 분석과 시각화 도구

Jupyter Notebook에 의한 애드 혹 분석

▪ 데이터를 파악하기 위해 여러번의 시행착오를 반복하는 상황에서는 대화형 실행 환경이 자주 사용

▪ 오픈 소스의 대화형 도구인 'Jupyter Notebook'

▪ 크로스 집계의 결과를 보고 싶은 경우 스프레드시트와 BI 도구를 시작할 필요없이 노트북 안에서 실행

▪ Jupyter Notebook은 웹 애플리케이션이지만, 로컬 호스트에서 기동

▪ 노트북 자체도 단순한 JSON 파일이므로 로컬 파일로 손쉽게 처리할 수 있음 

노트북 내에서의 시각화

▪ 'matplotlib'은 과학 기술 계산 분야에서 사용되는 시각화 라이브러리

▪ 시각화를 위해서 프로그래밍이 필요해서 시간이 오래 걸리지만 유사한 그래프를 다시 만드는 경우에 유용

▪ 마우스 조작으로 대화형 차트를 만들고 싶을 때는 스프레드시트 및 BI 도구를 이용 

노트북에 의한 워크플로

▪ 데이터 처리를 위한 일련의 태스크를 노트북에 정리해 놓고 모든 셀을 실행하여 '간이적인 워크플로의 실행'으로도 사용 

▪ 느낌표(!)로 명령어를 시작해서 외부 명령어를 실행 할 수 있음

대시보드 도구

▪ 대화형 데이터 탐색이 중요시된다면 BI 도구가 적합

▪ 정해진 지표의 일상적인 변화를 모니터링하고 싶은 경우에는 대시보드 도구가 적합

Redash

Redash에 의한 쿼리의 실행과 시각화

 

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

▪ SQL에 의한 쿼리의 실행 결과를 시각화하는데 적합 

▪ 대시보드 작성의 3단계

   1) 데이터 소스를 등록

   2) 쿼리를 실행해서 표와 그래프 만들기

   3) 그래프를 대시보드에 추가

▪ 등록한 쿼리는 정기적으로 실행되어 그 결과가 Redash 자신의 데이터베이스에 저장됨 

▪ Redash는 마지막으로 실행된 집계 결과를 표시 

▪ 별도 데이터 마트를 만들 필요가 없음

▪ 결과를 팀 내에서 공유하기 위한 콘솔로 우수 but BI 도구만큼 대량의 데이터를 처리할 수 없음

Superset

Superset에 의한 대화형 대시보드

 

▪ 대화형 대시보드를 작성하기 위한 파이썬으로 만든 웹 애플리케이션 

▪ 화면상 마우스를 조작해서 그래프를 만듬

▪ 내장 스토리지 시스템을 갖고 있지 않으므로 데이터의 집계는 외부 데이터 저장소에 의존

▪ 시계열 데이터에 대응한 열 지향 스토리지인 'Druid'를 표준으로 지원

▪ 스트리밍 형의 데이터 전송과 조합하여 실시간 정보를 취급 

▪ Druid는 집계시에 테이블을 결합 할수 없기에 시각화를 위한 데이터 마트를 먼저 만들어야함

Kibana

kibana에 의한 실시간 대시보드

 

▪ 자바스크립트로 만들어진 대화식 시각화 도구

▪ 실시간 대시보드를 만들 목적으로 사용

▪ 검색 엔진인 'Elasticsearch(엘라스틱서치)' 의 프런트 엔드로 개발되었기 때문에 도입에는 Elasticsearch가 필수

▪ Elasticsearch이외의 데이터 소스에는 대응하고 있지 않아 시각화하려는 데이터는 모두 Elasticsearch로 저장해야 함

▪ Elasticsearch는 '전체 텍스트 탐색(full-text search)' 에 대응한 데이터 스토어 

▪ 검색 조건에 맞는 데이터를 빠르게 시각화하는데 적합한 도구

BI 도구

▪ 장기적인 데이터의 추이를 시각화하거나, 집계의 조건을 세부적으로 바꿀 수 있는 대시보드를 만들려면 BI 도구가 적합

▪ 시각화에 적합한 데이터 마트를 만들어 읽고 쓰는 것을 전제로 함

▪ 하나의 대시보드에 표시할 수 있는 정보량은 한계가 있기 때문에, 몇 가지 중요한 화면만 먼저 만들고 화면상에서 집계 조건을 바꿀 수 있도록 함

하나의 데이터를 다각적으로 분석하기

하나의 테이블에서 다수의 대시보드 작성하기

 

▪ 대화형 대시보드를 만들기 위해서는 그 바탕이 되는 데이터를 모두 포함하는 하나의 테이블을 작성 

▪ 테이블에서는 다수의 대시보드를 만듬

▪ 알고 싶은 것이 늘어날 때마다 데이터 마트에 테이블을 만들고 거기에서 파생된 다수의 대시보드가 생겨나는 것이 BI 도구의 시각화 과정

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

시각화에 적합한 데이터 마트 만들기

다차원 모델과 OLAP 큐브

다차원 모델에 있어서의 크로스 집계

 

▪ OLAP(online analytical processing)는 데이터 집계를 효율화하는 접근 방법 중 하나 

▪ OLAP에서는 '다차원 모델'의 데이터 구조를 'MDX(multidimensional expressions)' 등의 쿼리 언어로 집계

▪ 데이터 분석을 위해 만들어진 다차원 데이터를 'OLAP 큐브(OLAP)'라고 부르며, 이를 집계하는 구조가 OLAP

MPP 데이터베이스와 비정규화 테이블

▪ BI 도구와 MPP 데이터 베이스를 조합하여 크로스 집계하는 경우가 증가

▪ BI 도구로 생각한 그래프를 만들기 위해서는 만들고 싶은 그래프에 맞추어 '다차원 모델'을 설계함

▪ 하지만 MPP 데이터베이스에 다차원 모델의 개념은 없기 때문에 이를 대신하여 '비정규화 테이블'을 준비

▪ 시각화에 적합한 데이터 마트를 만드는 것은 BI 도구를 위한 비정규화 테이블을 만드는 프로세스

테이블을 비정규화하기

관계형 모델에 의한 테이블 설계

 

▪  데이터베이스의 설계에서는 테이블을 '마스터'와 '트랜잭션'으로 구분

▪  시간과 함께 생성되는 데이터를 기록한 것이 '트랜잭션(transaction)'

▪  트랜잭션에서 참고 되는 각종 정보가 '마스터(master)'

▪  마스터는 상황에 따라 다시 쓰임

▪  위에 예시에서는 '판매일'만이 트랜잭션, 다른 것은 모두 마스터

팩트 테이블과 디멘전 테이블

▪  팩트 테이블(fact table): 트랜잭션처럼 사실이 기록된 것, 주로 숫자 데이터나 판매액

▪  디멘전 테이블(dimension table): 참고되는 마스터 데이터, 데이터를 분류하기 위한 속성값

스타 스키마와 비정규화 

데이터 마트의 스키마

 

▪  스타 스키마(star schema): 데이터 마트를 만들 때는 팩트 테이블을 중심으로 여러 디멘전 테이블을 결합 

▪  디멘전 테이블을 작성하려면 정규화에 의해 분해된 테이블을 최대한 결합하여 하나의 테이블로 정리

▪  이를 '비정규화(demormalization)'라고 함

▪  스타 스키마를 사용하면 단순하기에 이해하기 쉽고 데이터 분석을 쉽게 할 수 있음

 

스타 스키마에 의한 테이블 결합

 

▪ BI 도구는 스타 스키마의 테이블에 효율적으로 쿼리를 실행할 수 있음

▪ 팩트 테이블의 데이터 양은 집계 시간을 좌우함 따라서 팩트 테이블을 작게하는 것이 고속화에 있어서 중요

▪ 팩트 테이블에는 ID와 같은 키만을 남겨두고 그 외의 나머지는 디멘전 테이블로 옮김

 

비정규화 테이블

▪ 열 지향 스토리지는 칼럼 단위로 데이터가 저장되므로 칼럼의 수가 아무리 늘어나도 성능에 영향을 주지 않음

▪ 또한 문자열을 그대로 저장해도 아주 작게 압축되므로 디스크I/O의 증가는 억제됨 

▪ 따라서 데이터를 디멘전 테이블로 이동 시킬 이유가 없어짐, 거대한 팩트 테이블 하나로 충분 

▪ '비정규화 테이블(denormalized table)': 스타 스키마에서 비정규화를 진행해 모든 테이블을 결합한 팩트 테이블

▪ 데이터 마트는 비정규화 테이블로 하는 것이 단순하고 효율적인 방법

다차원 모델 시각화에 대비하여 테이블을 추상화하기

다차원 모델에 의한 테이블과 쿼리의 관계

 

▪ 비정규화 테이블을 준비했다면 그것을 '다차원 모델(multidimendional model)'에 의해 추상화

▪ 다차원 모델은 칼럼을 '디멘전(dimension)'과 '측정값(measure)'으로 분류 

▪ 디멘전(dimension): 크로스 집계에 있어서의 행과 열을 이용하는 것, 주로 날짜 및 문자열의 값이 됨

▪ 측정값(measure): 숫자 데이터와 그 집계 방법을 정의하는 것, 주로 sum()과 max()와 같은 집계 함수와 함께 사용

▪ 디멘전 모델의 디멘전이랑 '2차원' 등의 단어로 사용되는 차원(dimension)

모델의 정의 확장

▪ BI 도구를 이용한 데이터 시각화

   1) 시각화하고 싶은 측정값 및 디멘전을 결정 ex) 월별 상품의 매출을 알고자하면 '금액'이 측정값이고 '판매일'과 '상품명'이 디멘전

   2) 데이터 마트에 비정규화 테이블을 만들고 BI 도구로 시각화

   3) 필요에 따라 비정규화 테이블에 새로운 칼럼을 추가하고 다시 시각화 

▪ 다차원 모델의 정의는 확장 가능 

▪ 이렇게 해서 만들어진 비정규화 테이블을 모은 것이 BI 도구를 위한 데이터 마트

 

 

[참고]

빅데이터를 지탱하는 기술(니시다 케이스케)

 

'Data Engineering > 책 리뷰' 카테고리의 다른 글

[빅데이터를 지탱하는 기술] 3. 빅데이터의 분산 처리 (2)  (0) 2023.09.06
[빅데이터를 지탱하는 기술] 3. 빅데이터의 분산 처리 (1)  (0) 2023.09.05
[빅데이터를 지탱하는 기술] 2. 빅데이터의 탐색 (1)  (0) 2023.09.02
[빅데이터를 지탱하는 기술] 1. 빅데이터의 기초 지식 (2)  (0) 2023.09.01
[빅데이터를 지탱하는 기술] 1. 빅데이터의 기초 지식 (1)  (0) 2023.08.30
  1. 2-3. 애드 혹 분석과 시각화 도구
  2. Jupyter Notebook에 의한 애드 혹 분석
  3. 대시보드 도구
  4. BI 도구
  5. 2-4. 데이터 마트의 기본 구조
  6. 시각화에 적합한 데이터 마트 만들기
  7. 테이블을 비정규화하기
  8. 다차원 모델 시각화에 대비하여 테이블을 추상화하기
'Data Engineering/책 리뷰' 카테고리의 다른 글
  • [빅데이터를 지탱하는 기술] 3. 빅데이터의 분산 처리 (2)
  • [빅데이터를 지탱하는 기술] 3. 빅데이터의 분산 처리 (1)
  • [빅데이터를 지탱하는 기술] 2. 빅데이터의 탐색 (1)
  • [빅데이터를 지탱하는 기술] 1. 빅데이터의 기초 지식 (2)
Doodo
Doodo
DoodoDoodo 님의 블로그입니다.
  • Doodo
    Doodo
    Doodo
  • 전체
    오늘
    어제
    • 분류 전체보기 (192)
      • CS (17)
        • Network (11)
        • Database (6)
      • Language (19)
        • Python (11)
        • SQL (6)
        • R (2)
      • Linux (17)
      • DevOps (35)
        • Git (7)
        • Docker (8)
        • Kubernetes (9)
        • GCP (4)
        • AWS (7)
      • Data Engineering (50)
        • 책 리뷰 (14)
        • Airflow (35)
        • Redis (1)
      • DBMS (21)
        • CUBRID (21)
      • ML & DL (2)
      • 코딩테스트 (24)
      • 프로젝트 (7)
        • 서울시 대기현황 데이터 적재 프로젝트 (4)
        • CryptoStream (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Doodo
[빅데이터를 지탱하는 기술] 2. 빅데이터의 탐색 (2)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.