HBase 개요

HBase란?

Apache HBase 는 미국 아파치 소프트웨어 재단(Apache Software Foundation)이 개발하여 공개하고 있는 오픈 소스 분산형 데이터베이스 관리 시스템이다. 데이터베이스의 주류인 관계형(RDB)과 다른 구조를 가지는, NoSQL 시스템의 하나이다.

미국 구글(Google)사가 개발해 동사 시스템에서 내부적으로 사용하고 있는 “BigTable”(빅 테이블)을 모델로, 이와 유사한 구조나 기능을 가지는 데이터베이스 관리 시스템을 오픈 소스의 소프트웨어로서 재현한 것이다.

마찬가지로 ASF가 개발하여 공개하고 있는 분산 파일 시스템인 HDFS(Hadoop Distributed File System)를 기반으로 데이터베이스를 구축한다. 관계형 데이터베이스와 같이 테이블(테이블)의 형태로 데이터를 구조화하지만, 일반적인 RDBMS 와는 달리 각 컬럼의 값을 한데 모아서 스토리지 상에 기록한다. 이러한 방식을 컬럼 지향형이라고 한다.

테이블의 각 행(row)에는, “쿼리파이어”(qualifier)라고 하는 표지(열명에 해당)와 “셀”(cell)이라고 하는 단위의 데이터(필드 치에 상당)의 페어를 단위로 데이터를 저장한다. 그리고, 복수의 쿼리파이어가 “컬럼 패밀리”(column family)로 그룹화되어 있다. 셀의 데이터는 자동으로 이력 관리되고, 과거의 임의의 시점의 데이터를 호출할 수 있다.

여러 서버 컴퓨터에서 하나의 데이터베이스를 관리하는 분산 환경을 전제로 설계되어 데이터를 여러 노드 에 분산하여 기록하는 샤딩을 자동으로 수행하므로 애플리케이션 측에서 대상을 신경 쓸 필요가 없고, 데이터의 일관성이 강하게 확보되어 처리 도중에 오래된 데이터를 외부로부터 참조되지 않게 되어 있다.

데이터베이스의 조작은 RDB와 같이 SQL이 아닌, Java API나 RESTful API 등에서의 형태로 제공되는 API를 어플리케이션으로부터 호출하는 것으로 수행한다. Apache Hadoop의 MapReduce 등 빅 데이터의 대규모 분산 처리 등에 적합하다.