"users" : {
"user123" : {
"profile": {
"name": "Kim",
"age": "30"
},
"settings": {
"theme": "dark",
"language": "ko"
}
}
}
슈퍼컬럼은 NoSQL 데이터 모델링 구조 중 열 기반(Column-Oriented) 데이터베이스에서 사용되는 확장 컬럼의 한 형태로, **하나의 컬럼이 다시 다수의 컬럼 집합을 포함하는 중첩 구조(nested structure)**를 갖는다.
전통적인 관계형 데이터베이스(RDBMS)에서는 행(row)과 열(column) 기반의 고정 스키마를 사용하지만, 슈퍼컬럼은 **동적 스키마(dynamically typed schema)**를 통해 유연하고 계층적인 데이터 구조를 표현하는 데 사용된다.
구분 | 일반 컬럼 | 슈퍼컬럼 |
---|---|---|
데이터 구조 | Key → Value | Key → (SubKey → Value) |
중첩성 | 없음 | 있음 (2단계 맵 구조) |
사용 목적 | 단일 속성 표현 | 논리적 속성 묶음 표현 |
즉, 슈퍼컬럼은 (Row Key → SuperColumn Key → Column Key: Value)의 3단계 구조를 갖는다.
계층적 데이터 표현
정렬성 유지
비정형 스키마 지원
데이터 조회 단순화
Cassandra와 같은 시스템에서는 초기에는 슈퍼컬럼을 활용했으나, 다음과 같은 기술적 한계로 인해 현재는 deprecated(폐기 예정) 되었음.
성능 저하
복잡한 내부 처리
쿼리 제한
운영 도구 미지원
확장성 한계
현재는 슈퍼컬럼 대신 복합 키(Composite Key) 또는 **정렬된 컬럼(Clustering Column)**을 활용하는 방식이 일반화되었으며, 이를 통해 슈퍼컬럼과 동일하거나 더 나은 기능을 구현할 수 있다.
PRIMARY KEY (partition_key, clustering_key)
또한, 일부 시스템에서는 JSON Document 저장 방식을 활용해 복잡한 구조를 한 컬럼에 직렬화하여 저장하기도 함.