일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 알고리즘
- 협업 필터링
- Tensor
- 웹크롤링
- 추천 시스템
- recommendation system
- 추천시스템
- selenium
- TF-IDF
- Overfitting
- Cosine-similarity
- 부스트캠프
- 코딩테스트
- pytorch
- 데이터 엔지니어링
- SGD
- 분산 시스템
- Python
- 시각화
- 백준
- 파이썬
- 데이터
- 웹스크래핑
- 프로그래머스
- codingtest
- 코테
- wordcloud
- 딥러닝
- coursera
- 머신러닝
- Today
- Total
개발자식
[Data Engineering] 빅데이터를 지탱하는 기술_빅데이터의 탐색 본문
Chapter 2. 빅데이터의 탐색
2-1. 크로스집계의 기본
2-2. 열지향 스토리지에 의한 고속화
2-3. 애드혹 분석과 시각화 도구
2-4. 데이터 마트의 기본구조
2-1. 크로스집계의 기본
크로스 테이블(cross table)
: 크로스 테이블은 컬럼과 행으로 구성된 양방향 테이블이다. 피벗 테이블 또는 다차원 테이블이라고도 한다.
- 새로운 행을 추가하긴 쉽지만, 열을 늘리는 것이 간단하지 않다.
트랜잭션 테이블(transation table)
: 시간과 함께 생성되는 데이터를 기록한 테이블로 한 번 기록하면 변하지 않는다.
- 크로스 테이블을 행 방향으로만 데이터 증가시키고, 열 방향으로는 증가시키지 않도록 한다.
크록스 집계(cross tabulation)
: 트랜잭션 테이벌에서 크로스 테이블로 변환하는 과정으로 데이터 시각화의 기초이다.
- 소량의 데이터를 크로스 집계하는데 편리한 것이 '피벗 테이블(pivot table)' 기능이고, 이를 그래프로 시각화하는 것은 '피벗 그래프(pivot graph)' 기능이다.
룩업 테이블(lookup table)
: 트랜잭션 테이블에 새로운 항목을 추가하는 것이 아니라, 다른 테이블과 결합하기 위해 사용하는 것
그 외의 크로스 집계 방법
- 데이터를 자주 살펴볼 때는 BI 도구를 사용하는 것이 좋다.
- 스크립트로 크로스 집계를 실행하고 싶다면 pandas를 이용하는 것이 편리하다.
- 데이터 양이 너무 많으면 피벗 테이블에 의한 크로스 집계로 처리할 수 없어 대량의 데이터를 크로스 집계하려면 SQL를 사용하여 데이터 집계한다.
데이터 집계 프로세스에서 많은 정보를 남긴다면 데이터 마트가 거대화되어 좋은 시각화를 할 수 없고, 적은 정보를 남긴다면 정보 부족으로 좋은 시각화를 할 수 없어 이것은 트레이드 오프 관계에 있다.
2-2. 열지향 스토리지에 의한 고속화
대량의 데이터를 신속하게 집계하려면(대기 시간이 적으려면) 미리 데이터를 집계에 적합한 형태로 변환하는 것이 필요하다.
데이터 처리응답이 빠르다 = 대기 시간이 적다 = 지연이 적다 -> 데이터 마트를 만들 때 필요한 데이터베이스 조건
고속화를 위해 사용되는 기법이 '압축'과 '분산'이다. 데이터를 가능한 한 작게 압축하고 그것을 여러 디스크에 분산함으로써 데이터의 로드에 따른 지연을 줄인다.
MPP(Massive Parallel Processing)
: 대규모 병령 처리로, 분산된 데이터를 읽을 때 멀티 코어를 활용하면서 디스크 I/O를 병렬 처리하는 것이다.
- MPP 아키텍처를 이용하면 쿼리 지연을 줄일 수 있다.
- 하드웨어 수준에서 데이터 집계에 최적화된 데이터베이스를 'MPP 데이터베이스'라고 한다.
열 지향 데이터베이스(column-oriented database, 칼럼 지향 데이터베이스)
- 데이터 분석에 사용되는 데이터베이스는 컬럼 단위의 집계에 최적화되어 있다.
- 데이터 압축 효율도 우수하다.
- 쿼리의 실행시간이 길어진다. (멀티코어를 활용하여 고속화 권장)
- 일반적으로 업무 시스템 등에서 사용되는 데이터베이스는 레코드 단위의 읽고 쓰기에 최적화되어 '행 지향 데이터베이스'이다.
- MPP 데이터베이스 및 대화형 쿼리 엔진 어느 쪽을 사용하더라도 '열 지향 스토리지로 변환한다'.
2-3. 애드혹 분석과 시각화 도구
애드 혹 분석
- 어떤 데이터 분석이라도 처음에는 애드 혹 분석을 하여 여러 번의 시행착오를 반복하면서 데이터를 살펴본다.
- BI 도구를 사용하지 않고, Jupyter Notebook 안에서 실행 가능하다.
대시보드 도구
- 정기적으로 쿼리를 실행해 보고서를 작성하거나 주요 그래프를 모아서 대시보드를 작성할 때 BI 도구를 사용할 수 있다.
대시보드 도구 종류
- Redash : SQL에 의해 쿼리의 실행 결과를 그대로 시각화
- Supreset : 화면상에서 마우스 조작만으로 그래프 만들기, 대화형 대시보드
- Kibana : Elasticsearch의 프런트 엔드에서 실시간으로 작성
+Elasticsearch는 전체 텍스트 검색에 대응한 데이터 스토어다.
BI 도구
- 몇 개월 단위의 장기적인 데이터의 추이를 시각화하거나, 집계의 조건을 세부적으로 바꿀 수 있는 대시보드를 만들려면 BI 도구를 사용하는 것이 적합하다.
- BI 도구에서 대화형으로 데이터를 참고하려면, 시각화에 필요한 정보만을 모은 데이터 마트가 필수적이다.
시각화에 적합한 데이터 마트를 만드는 것은 'BI 도구를 위한 비정규화 테이블을 만드는' 프로세스이다.
2-4. 데이터 마트의 기본구조
OLAP(OnLine Analytical Processing) 구조
- 데이터 집계를 효율화하는 접근 방법 중의 하나다.
- BI 도구는 OLAP의 구조를 사용하여 데이터를 집계하기 위한 소프트웨어이다.
- OLAP에서는 다차원 모델의 데이터 구조를 MDX(MultiDimensional Expressions) 등의 쿼리 언어로 집계한다.
- 데이터 분석을 위해 만들어진 다차원 데이터를 'OLAP 큐브'라고 부르며, 그것을 크로스 집계하는 구조가 OLAP이다.
트랜잭션(transaction)
- 시간과 함께 생성되는 데이터를 기록한 것
마스터(master)
- 트랜잭션에서 참고되는 각종 정보
팩트 테이블(fact table)
- 데이터 웨어하우스의 세계에서는 트랜잭션처럼 사실이 기록된 것을 말한다.
디멘젼 테이블(dimension table)
- 팩트 테이블에서 참고되는 마스터 데이터를 말한다.
스타 스키마
- 팩트 테이블을 중심으로 여러 디멘젼 테이블을 결합한 구조
- 정규화되어 있는 디멘젼 테이블을 최대한 결합하여 비정규화를 진행한다.
- 단순하여 이해하기 쉽고, 데이터 분석이 쉽다.
- 데이터 마트에서는 열 지향 스토리지로 성능 문제를 해결할 수 있어 스타 스키마에서 비정규화를 진행한 '비정규화 테이블'로 사용한다.
다차원 모델
- 비정규화 테이블을 준비하면 다차원 모델에 의해 추상화한다.
- 다차원 모델은 칼럼은 '디멘전'과 '측정값'으로 분류한다.
- 디멘전 : 크로스 집계에 있어서의 행과 열을 이용하는 것
- 측정값 : 숫자 데이터와 그 집계 방법을 정의하는 것
'Data > Data Engineering' 카테고리의 다른 글
[Data Engineering] 빅데이터를 지탱하는 기술_빅데이터의 축적 (0) | 2022.09.14 |
---|---|
[Data Engineering] 빅데이터를 지탱하는 기술_빅데이터의 분산 처리 (0) | 2022.09.13 |
[Data Engineering] 빅데이터를 지탱하는 기술_빅데이터의 기초 지식 (0) | 2022.09.11 |
[Data Engineering] 데이터 웨어하우스 (2) | 2022.09.10 |
[Data Engineering] 병렬 컴퓨팅, 분산 컴퓨팅, 분산 시스템 (0) | 2022.09.10 |