본문 바로가기
Book & Lesson

[책정리]빅데이터를 지탱하는 기술 2-1. 크로스집계의 기본

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

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

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

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

 

목차 

챕터2. 빅데이터의 탐색

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

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

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

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

 

 


크로스집계의 개념  

크로스테이블

행과 열이 교차하는 부분에 숫자데이터가 들어가있는 테이블

사람들이 보기 편한 보고서지만, 데이터베이스에서는 다루기 어려운 데이터형식 

새로운 행을 추가하긴 쉽지만, 열을 늘리는것이 간단하지 않다. (컬럼과 행으로만 구분)

 

트랜잭션 테이블 

크로스테이블을 행방향으로만 증가시키게 하고, 열방향으론 데이터를 증가시키지 않도록 하는 형식

흔히 사용하는 RDB에서의 테이블 데이터형식

 

크로스집계: 랜잭션 테이블에서 크로스테이블로 변환하는 과정, 데이터 시각화의 기초

크로스테이블, 트랜잭션 테이블

피벗테이블

소량의 데이터를 크로스집계하는데 편리한 것

흔히 엑셀에서 사용하는 피벗테이블, 광범위한 테이블의 데이터를 요약하는 통계 테이블

 

행과열이 교차하는 부분의 값을 자동으로 집계해줌.

평균값, 최댓값, 차이 등을 계산한 집계결과를 즉시 얻을 수 있음. 

 

크로스테이블에 정리할 뿐만 아니라 그래프로 시각화한 피벗그래프 가능

 

룩업테이블

트랜잭션 테이블에 새로운 항목을 추가하는게 아니라, 다른테이블과 결합하여 사용하고 싶을때 참고하는 테이블형태

 

트랜잭션테이블과 룩업테이블은 서로 독립적으로 관리.

트랜잭션은은 DB에서 가져오고, 룩업테이블은 데이터분석 용도에 따라 변경가능 


크로스집계 해보기

BI도구 (태블로) 

[판매이력]테이블을 선택하고, 룩업테이블로 [상품]을 결합한다.

그럼 디비상에서 테이블을 결합하는 것과 동일하게 두개의 엑셀시트를 결합할 수 있다. 

추가된 속성을 사용하여 크로스 집계도 가능하다

 

Pandas

전체 엑셀로 뽑아진 판매데이터를 중에 [판매이력]테이블과 [상품]테이블을 로드한다. 그리고 두개의 테이블을 merge()한다. 추가된 속성을 사용하여 pivot_table()로 크로스집계가 가능하다. 

 

SQL

수백만레코드까진 태블로와 Pandas에서 커버할 수 있지만, 그 이상이 되면 너무 느려진다.이떄 대량의 데이터를 크로스집계하려면 SQL의 집계함수를 이용한다. SQL의 실행결과는 크로스테이블이 아닌 트랜잭션 테이블형태.이를 크로스집계하여 임의의 크로스테이블을 얻을 수 있다. 

 


크로스집계 프로세스 

1. 데이터집계단계 : 데이터를 SQL로 먼저 집계

2. 시각화단계 : 시각화도구로 크로스집계

데이터마트

데이터집계단계와 시각화단계 사이에 있다.

 

데이터마트와 시각화는 트레이드오프관계이다.

데이터마트가 작을수록 시각화하는게 간단하지만, 동시에 원래 데이터에 포함된 정보를 잃어서 시각화로 할게 없어짐.

데이터집계에서 가능한 많은 정보를 남겨서 데이터마트가 커져도 데이터가 거대화되어 좋은 시각화를 할 수 없게 된다. 

즉, 필요에 따라 데이터를 어느정도 남길 것인가를 결정해야한다. 결국 데이터마트의 크기에 따라 시스템구성이 결정.

 

 

 

크로스테이블, 트랜잭션 테이블 예시 출처 https://loustler.io/data_eng/bigdata-basic-3/

 

 

반응형