본문 바로가기
개념

[개념][데이터베이스] 칼럼지향 데이터베이스(columnar database)

by hs_seo 2016. 12. 13.

<정의>

데이터의 저장을 칼럼단위로 처리하는 데이터베이스를 말한다. 


<장점>

칼럼 단위의 값은 데이터가 유사할 가능성이 높다. 이로 인해 높은 압축율을 얻을 수 있다. 

MIN, MAX, SUM, COUNT 와 같은 연산에서 높은 성능을 얻을 수 있다. 


<종류>

아마존 Redshift, 아파치 Cassandra, HBase 등이 있다. 





컬럼 지향 데이터베이스는 데이터를 컬럼 단위로 묶어서 저장한다. 그런 다음 이 컬럼값은 디스크 상에 연속적으로 저장된다. 

이 방식은 전통적인 데이터베이스의 전체 로우가 연속적으로 저장되는 일반적인 로우 지향형 접근방식과 다르다. 


컬럼 기반으로 데이터를 저장하는 이유는, 특정 쿼리에 대해서는 로우의 모든 데이터가 필요하지 않다는 가정에 기반하고 있다. 

이러한 경우는 특히 분석적인 데이터베이스에서 자주 발생하기 때문에 분석적 데이터베이스들은 이러한 형태의 저장 스키마를 사용하기 위한 좋은 후보이다. 


이렇듯 I/O 가 줄어든다는 이유만으로도 이 새로운 데이터 저장 구조를 채택할 법한데, 이 구조는 여기에 높은 압축률이라는 장점까지 제공한다. 

일반적으로 서로 다른 논리적인 로우 상의 같은 컬럼값들은 본질상 매우 유사하기 마련이고, 때로는 아주 약간씩만 다르기 때문에, 압축을 위해 서로 묶이는 편이 서로 상이한 값들로 이루어진 로우 지향 레코드 구조보다 훨씬 나을 때가 많다. 

대부분의 압축 알고리즘은 한정된 영역만을 바라보기 때문이다. 


컬럼에 기반하여 델타 압축이나 프리픽스 압축 같은 특화된 알고리즘을 선택하면 엄청나게 향상된 압축 비율을 얻을 수 있다. 

압축 비율이 좋으면 대역폭을 더 효율적으로 사용할 수 있다. 




반응형