[독서] 빅데이터를 지탱하는 기술 #3

이동욱·2022년 3월 14일
0

독서

목록 보기
3/4

Intro

  • 책을 읽으며 책 내용을 정리하려합니다.
  • 하루에 한 챕터정도 읽으며 책의 내용을 상세하게는 정리하지 않고 키워드나 느낌점을 위주로 정리하려합니다.

Contents

Notice

  • 2장의 주요 내용은 spread sheet, BI tool, sql, pandas 등을 활용하여 데이터 집계를 하는 방법의 예시를 들고 있습니다.

DM

  • 데이터 집계와 시각화 사이에 존재합니다.
  • 적은 정보를 남겨 집계하여 시각화 한다면 원래 데이터에 포함된 정보를 잃게 되어 시각화의 프로세스에서 할 수 있는것이 적어집니다.
  • 반대로 가능한 많은 정보를 남긴다면 DM이 거대화되어 결국 좋은 시각화를 할 수 없게 됩니다.
  • 이는 필요에따라 어느정도 정보를 남길지 결정해야 하며 Trade Off 관계에 있음을 말합니다.

열 지향 스토리지

  • 메모리에 다 못올릴 정도의 대량의 데이터를 신속하게 집계하려면 미리 데이터를 집계에 적합한 형태로 변환해야 한다.

데이터 처리의 지연

  • 지연이 적은 DM 작성을 위한 기초지식
  • 응답이 빠르다 = Latency가 적다. = 지연이 적다.
  • 방법1. 모든 데이터를 메모리에 올린다. (일반적인 RDB가 이러하다 하지만 메모리가 부족하면 성능저하가 심하다.)
  • 방법2. MPP 아키텍처에 의한 데이터 처리의 병렬화

압축과 분산에 의해 지연 줄이기

  • 데이터를 가능한 작게 압축하고 여러 디스크에 분산함으로써 데이터 로드에 따른 지연을 줄인다.
    • 이렇게 분산된 데이터를 읽어들이는데는 디스크 I/O를 병렬처리 하는것이 효과적이다.
    • MPP (Massive Parallel Processing) 아키텍처
    • RedShift, Bigquery

Without Index

  • 일반적으로 데이터 검색을 고속화 하기위해 index를 사용.
    • 하지만 데이터 분석에 있어서 인덱스는 도움이 별로 안됨..! (어떤 컬럼이 사용될지 모르기 때문)
  • 인덱스에 의지하지 않는 고속화 기술이 필요함 -> 열 지향 데이터베이스

MPP

  • 행 지향에서는 보통 하나의 쿼리가 하나의 스레드에서 실행
  • MPP에서는 하나의 쿼리를 다수의 작은 task로 분해하고 이를 가능한 병렬로 실행
    • CPU 코어 수에 비례함
    • 데이터가 고르게 분산되어야 할 필요가 있음 (Why? 디스크로부터의 로드가 병목현상)
    • 고속화를 위해 CPU와 디스크 모두를 균형있게 늘려야 함

데이터 마트 집계시스템 별 최적의 레코드 수

  • RDB: 수천만건 권장
  • MPP DB: 수억~
  • 대화형 쿼리엔진: 수억~

Outro

  • 2장 까지 읽고 작성한 후기입니다.
  • 제 기준으로 정리하며 작성하기때문에 생략된 내용이 많아 이미 아시는 내용이 아니라면 책을 사서 보시는것을 추천합니다.
  • 처리량(Throughput) 과 지연(Latency) 를 관점으로 DW나 DL이 어느것에 집중하여 설계하였는지 DM은 어느것에 집중하여 설계하였는지 배울 수 있었습니다.
    • 막연하게 알고있던 부분이었지만 글로 읽으니 좀 더 정리되는 것 같아 좋았습니다.
  • 책을 읽으며 좋았던 점은 어떤 기술 혹은 도구를 선택함에 있어 그 이유를 설명하고 권장할만한 사항을 함께 말해준다는 점 입니다.
  • 아직 많이 읽지는 못했지만 내용적으로 어렵지 않고 빅데이터 처리에대한 개념들을 갖추기에 부족함이 없는 책이라는 생각이 듭니다.
  • Fact Table, Dimension Table등도 현업에서 사용하였지만 이렇게 글과 그림으로 정리된 것을 보니 좀 더 이해가 잘 되었습니다.
profile
공부해서 남주자

0개의 댓글