행은 유연, 저장은 묶음 단위

하나의 Row Key 아래 필요한 컬럼만 생기고, 실제 저장은 Column Family별로 나뉜다

Wide-Column Store는 모든 행에 같은 컬럼 집합을 강제하지 않습니다. 대신 Row Key로 행을 찾고, 관련 컬럼은 패밀리 단위로 묶어 읽고 확장합니다.

왜 이런 구조를 쓰나

로그, 시계열, IoT처럼 항목 수는 많지만 매 행의 속성은 들쭉날쭉한 데이터에서 비어 있는 컬럼을 강제로 맞추지 않아도 되기 때문입니다.

Shared Row Key
device:102

논리적으로는 한 행이지만, 저장 시에는 패밀리별로 나뉘어 접근됩니다.

한 행이 열리면 관련 컬럼이 패밀리별 묶음으로 정리됩니다.
Column Family
기기정보

자주 함께 읽는 메타데이터를 한 묶음으로 관리합니다.

zone model owner
Column Family
측정값

시간에 따라 계속 추가되는 값들을 별도 묶음으로 저장합니다.

temp humidity battery
Row Key
기기정보 패밀리
측정값 패밀리
device:101
필요한 메타데이터만 저장
zone=Seoul model=A1
센서값이 많이 붙는 행
temp=24.1 humidity=55
device:102
같은 패밀리여도 컬럼 수가 다름
zone=Busan
필요한 값만 존재
temp=23.9
device:103
메타데이터는 일부만 보유
owner=ops
다른 패밀리에는 다른 조합이 저장
battery=78 alert=on
논리적 행은 하나

애플리케이션은 Row Key 기준으로 한 행을 보지만, 내부적으로는 컬럼 묶음이 분리됩니다.

빈 칸을 억지로 채우지 않음

모든 행이 같은 스키마를 맞출 필요가 없어 희소 데이터에서 저장 낭비를 줄입니다.

패밀리 단위로 읽기와 확장

함께 접근하는 컬럼을 모아두면 대규모 쓰기와 분산 운영에 더 유리해집니다.