[DB] NoSQL Column-oriented, Column Family DB

cheonbi·2022년 11월 8일
0

Data Analysis

목록 보기
4/4
post-thumbnail

1. Column-oriented DB

Column-oriented
Data Table을 Column 단위로 쪼개어 저장하는 DB를 의미

[그림1] 일반적인 RDBMS에서 이용하는 Row-oriented 기법과 Column-oriented 기법을 비교하는 그림

Row-oriented는 하나의 Row가 하나의 Disk Block 안에 저장
Column-oriented 방식은 하나의 Column이 하나의 Disk Block 안에 저장

[그림1]에서 Gender가 Male인 사람이 몇명인지 구하는 동작을 DB가 수행할 경우
  • Row-oriented
    4개의 Block을 읽고 안의 Gender값을 알아내어 Sum을 수행

  • Column-oriented
    1개의 Block만 읽고 결과를 구할 수 있기 때문에 빠른 처리가 가능

📌 Data를 분석하는 동작의 경우 Table에서 모든 Column이 필요한 것이 아니라 일부 Column이 필요한 경우가 대부분

Column-oriented DB

📈
OLAP(Online Analytical Processing) 처리에 유리
편리한 Data Compression

📉
하나의 Row를 추가하거나 삭제하는 경우 여러 개의 Block을 이용해야 하기 때문에
OLTP(Online transaction processing) 처리 불리

2. Column Family DB

Colum-Family DB

  • Column을 나타내는 Column-Key/Data/Timestamp Tuple과 Row를 나타내는 Row-Key에 Mapping하여 Table를 표현하는 DB

  • RDBMS에서 NULL값도 Disk Block 공간을 차지하지만 Column-Family DB에서는 Row별로 자유로운 Column 추가/삭제가 가능

  • NULL값을 위한 별도의 Column 불필요

profile
༼ つ ◕_◕ ༽つ

0개의 댓글