검수요청.png검수요청.png

빅테이블

위키원
이동: 둘러보기, 검색
빅테이블(Bigtable)
빅테이블(Bigtable)

빅테이블(Bigtable)은 수천 대의 일반 서버에 걸쳐 페타바이트 단위의 데이터를 대규모로 확장하도록 설계된 구조화된 데이터를 관리하기 위한 분산형 스토리지 시스템이다. 구글 클라우드 데이터 저장소를 기반으로 하고 있다.

개요[편집]

빅테이블은 2004년에 개발이 시작되었으며, 2015년 5월 6일에 빅테이블 공개 버전이 서비스로 제공되었다.[1] 빅테이블은 구글 클라우드 플랫폼의 일부로 제공되는 구글 클라우드 데이터 저장소를 기반으로 하고 있다. 현재는 웹 색인, 맵리듀스(빅테이블에 저장된 데이터를 만들고 수정하는데 종종 사용), 구글 지도, 구글 도서 검색, 내 역사 검색, 구글 어스, 블로거닷컴, 구글 코드 호스팅, 유튜브, 지메일과 같은 수많은 구글 애플리케이션들에 사용된다.

기능[편집]

빠른 속도 및 높은 성능[편집]

빅테이블은 짧은 지연 시간을 필요로 하는 대규모 애플리케이션이나 높은 처리량을 필요로 하는 데이터 처리와 분석을 위한 스토리지 엔진으로 사용할 수 있다.[2]

확장 및 복제[편집]

빅테이블은 수백 페타바이트까지 픞로비저닝 및 확장하고 초당 수백만 건의 작업을 원활하게 처리할 수 있다. 배포 구성의 변경사항은 즉시 적용되기 때문에 구성을 변경하는 동안에도 다운타임이 발생하지 않는다. 복제를 통해 실시간으로 제공되는 앱의 가용성을 향상시키고 작업 부하를 제공이나 분석용으로 분리한다.[2]

연동[편집]

빅테이블은 Hadoop, Cloud Dataflow, Cloud Dataproc 등 널리 사용되는 빅데이터 도구와 쉽게 연동된다. 또한 빅테이블은 업계 표준의 오픈 소스 HBase API를 지원하기 때문에 개발자는 쉽게 익힐 수 있다.[2]

관리[편집]

구글에서 데이터베이스를 관리하고 구성 및 조정을 처리하므로 애플리케이션 개발에 집중할 수 있다.[2]

장점[편집]

클라우드 빅테이블은 구조화되지 않은 키/값 데이터에 매우 높은 처리량과 확장성이 필요한 애플리케이션에 적합하다. 여기서 각 값은 보통 10MB 이하이다. 클라우드 빅테이블은 또한 일괄 맵리듀스 작업, 스트림 처리/분석, 머신러닝 애플리케이션을 위한 스토리지 엔진으로도 탁월하다.

  • 시계열 데이터 : 여러 서버의 시간별 CPU 및 메모리 사용량
  • 마케팅 데이터 : 구매 내역 및 고객 선호도
  • 재무 데이터 : 거래 내역, 주식 가격, 통화 환율
  • 사물 인터넷 데이터 : 에너지 측정기 및 가전제품의 사용량 보고서
  • 그래프 데이터 : 사용자가 서로 연결되는 방법에 대한 정보

스토리지 모델[편집]

클라우드 빅테이블은 각각 정렬된 키/값 매핑으로 구성되어 있고 대규모로 확장 가능한 테이블에 데이터를 저장한다. 이 테이블은 일반적으로 단일 항목을 기술하는 행과 각 행의 개별 값을 포함하는 열로 구성된다. 각 행은 단일 row key로 색인이 생성되고, 서로 연관된 열은 일반적으로 column family로 그룹화된다. 각 열은 column family와 column family 내 고유 이름인 column qualifier의 조합으로 식별된다.

각 행/열 교집합에는 서로 다른 타임스탬프에 다양한 셀 또는 버전이 포함될 수 있으므로 시간에 경과함에 따라 저장된 데이터가 어떻게 바뀌었는지에 대한 기록을 확일할 수 있다. 클라우드 빅테이블의 테이블은 희소 테이블이므로, 셀에 데이터가 없으면 공간을 차지하지 않는다.

메모리 및 디스크 사용량[편집]

빈 셀[편집]

Cloud Bigtable 테이블의 빈 셀은 공간을 차지하지 않는다. 각 행은 기본적으로 키/값 항목의 모음이며, 여기에서 키는 column family, column qualifier, 타임스탬프의 조합입니다. 행에 특정 키의 값이 없다면 키/값 항목이 없는 것입니다.

열 한정자[편집]

한 행에서 사용된 각각의 열 한정자(column qualifier)는 해당 행에 저장되기 때문에 행 공간을 차지한다. 따라서 열 한정자는 데이터처럼 사용하는 것이 효율적인 경우가 많다.

컴팩션[편집]

클라우드 빅테이블은 삭제된 항목을 없애고, 읽기 및 쓰기 효율성이 높아지도록 데이터를 재구성하기 위해 테이블을 주기적으로 재작성한다. 이러한 프로세스를 '컴팩션'이라 한다. 컴팩션을 위한 구성 설정은 존재하지 않으며 클라우드 빅테이블에서 사용자 데이터를 자동으로 컴팩션한다.

변형 및 삭제[편집]

클라우드 빅테이블에서는 변형을 순차적으로 저장하고, 정해진 시간에만 컴팩션하기 때문에 행에 대한 변형 또는 변경 사항은 스토리지 공간을 추가로 차지한다. 클라우드 빅테이블은 테이블을 컴팩션할 때 더이상 필요하지 않은 값을 삭제한다. 사용자가 셀의 값을 업데이트하면 데이터 컴팩션이 이루어질 때까지 일정 시간 동안 원래 값과 새 값이 디스크에 저장한다.

삭제도 일종의 변형이기 때문에 단기적으로라도 스토리지 공간을 추가로 차지한다. 테이블 컴팩션전까지는 삭제 시 스토리지 공가ㅏㄴ이 비워지는 것이 아니라 추가로 사용하게 된다.

데이터 압축[편집]

클라우드 빅테이블은 지능형 알고리즘을 사용해서 데이터를 자동으로 압축한다. 테이블에 대한 압축 설정은 구성할 수 없다. 하지만 효율적으로 압축될 수 있도록 데이터를 저장하는 방법을 알아두면 유용하다.

  • 랜덤 데이터는 패턴이 있는 데이터만큼 효율적으로 압축할 수 없다.
  • 압축 효율은 동일한 값이 동일 행에 있든, 인접한 행에 있든 간에 서로 가까이 있을 때 가장 높다. 동일한 데이터 청크를 포함하는 행이 서로 인접하도록 row key를 배열하면 데이터를 효율적으로 압축할 수 있습니다.

데이터 내구성[편집]

클라우드 빅테이블을 사용할 때 데이터는 구글 데이터 센터의 스토리지 기기를 사용해서 구글의 내구성이 뛰어난 내부 파일 시스템인 Colossus에 저장된다. 클라우드 빅테이블을 사용하기 위해 HDFS 클러스터 또는 다른 파일 시스템을 실행할 필요가 없다. 인스턴스에서 복제를 사용하는 경우, 클라우드 빅테이블은 인스턴스의 각 클러스터 데이터 사본 한 개를 Colossus에 보관한다. 각 사본이 다른 영역(zone) 또는 리전에 위치하므로 내구성이 더욱 향상된다.

실제로 구글은 표준 HDFS 3중 복제보다 높은 수준의 데이터 내구성을 구현하기 위해 고유한 저장 방법을 사용한다. 또한 구글은 치명적 재해로부터 데이터를 보호하고, 재해 복구에 사용할 수 있는데이터의 백업본을 만든다.

보안[편집]

Cloud Bigtable 태블릿에 대한 액세스는 구글 클라우드 플랫폼 프로젝트와 사용자에게 할당되는 클라우드 ID 및 액세스 관리 역할로 제어된다. 예를 들어 개별 사용자가 태블릿에서 읽기, 태블릿에 쓰기, 새 인스턴스 만들기 작업을 수행하지 못하게 하는 Cloud IAM 역할을 할당할 수 있다. 다른 사람이 사용자의 프로젝트에 대한 액세스 권한을 갖고 있지 않거나 Cloud Bigtable에 대한 적절한 권한이 부여된 Cloud IAM 역할을 갖고 있지 않은 경우에는 사용자의 테이블에 액세스할 수 없다.

보안은 프로젝트 수준 및 인스턴스 수준에서 관리할 수 있다. Cloud Bigtable은 테이블 수준, 행 수준, 열 수준, 셀 수준의 보안 제안을 지원하지 않는다.

각주[편집]

  1. Joab Jackson, 〈구글, 빅테이터 저장 서비스 '클라우드 빅테이블' 공개〉, 《아이티월드》, 2015-05-07
  2. 2.0 2.1 2.2 2.3 CLOUD BIGTABLE〉, 《구글 클라우드 공식 사이트》

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 빅테이블 문서는 데이터에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.