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

"하이퍼테이블"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
잔글
1번째 줄: 1번째 줄:
[[파일:하이퍼테이블 로고.png|썸네일|200픽셀|'''하이퍼테이블'''(Hypertable) 로고]]
+
[[파일:하이퍼테이블 로고.png|썸네일|200픽셀|'''하이퍼테이블'''(Hypertable)]]
[[파일:하이퍼테이블 글자.png|썸네일|300픽셀|'''하이퍼테이블'''(Hypertable) 로고와 글자]]
+
[[파일:하이퍼테이블 글자.png|썸네일|300픽셀|'''하이퍼테이블'''(Hypertable)]]
 
 
'''하이퍼테이블'''<!--하이퍼 테이블-->(Hypertable)<!--Hyper Table-->이란 [[구글]]의 대규모 확장형 데이터베이스인 [[빅테이블]]을 원형으로 한 [[오픈소스]] 분산형 [[데이터베이스]]이다. 비정형 데이터를 분석하기 위한 [[노에스큐엘]](NoSQL)의 일종이다. 높은 성능과 편의성을 가지고 있다.<ref name="db"> 카네기 멜런 데이터 베이스 그룹, 〈[https://dbdb.io/db/hypertable Hypertable]〉, 《Database of Databases》, 2018-12-12</ref>
 
  
 +
'''하이퍼테이블'''<!--하이퍼 테이블-->(Hypertable)<!--Hyper Table-->이란 [[구글]](Google)의 대규모 확장형 데이터베이스인 [[빅테이블]]을 원형으로 한 [[오픈소스]] 분산형 [[데이터베이스]]이다. 비정형 데이터를 분석하기 위한 [[노에스큐엘]](NoSQL)의 일종이다. 높은 성능과 편의성을 가지고 있다.
 
== 개요 ==
 
== 개요 ==
하이퍼테이블은 비관계형 데이터베이스인 [[노에스큐엘]] 중 빅테이블을 모델로 한 오픈소스 데이터베이스로 분산파일 시스템 위에서 실행된다. HDFS. MapR, Ceph, KFS, 로컬을 지원하고 [[C++]]을 이용하여 개발되었다. 스토리지 아키텍처는 디스크를 지향하며 외국 키는 지원하지 않는다. 또한 시스템을 기본 클러스터에 간편히 추가하여 원활하고 경제적으로 크기를 페타바이트 단위로 확장할 수 있다.<ref name="db"></ref>
+
하이퍼테이블(Hypertable)은 비관계형 [[데이터베이스]]인 [[노에스큐엘]](NoSQL) [[빅테이블]]을 모델로 한 오픈소스 데이터베이스로 분산파일 시스템 위에서 실행된다. HDFS. MapR, Ceph, KFS, 로컬을 지원하고 [[C++]]을 이용하여 개발되었다. 스토리지 아키텍처는 디스크를 지향하며 외국 키는 지원하지 않는다. 또한 시스템을 기본 [[클러스터]]에 간편히 추가하여 원활하고 경제적으로 크기를 페타바이트 단위로 확장할 수 있다. 하이퍼테이블
 +
(Hypertable)은 구글의(Google)의 독점적이고 대규모로 확장 가능한 데이터베이스인 빅테이블(Bigtable)을 모델로 한 대규모 확장 가능한 고성능 오픈 소스 데이터베이스이다. 하이퍼테이블은 기존 [[관계형 데이터베이스 관리 시스템]](RDBMS)에서 잘 처리되지 않는 확장성 문제를 해결하기 위한 목적으로 설계되었다. 하이퍼테이블은 경쟁 제품에 비해 최대의 효율성과 우수한 성능을 제공하여 비용을 크게 절감한다. 하이퍼테이블의 테이블은 단일 기본 키인 행 키로 정렬 된 방대한 데이터 테이블로 생각할 수 있다. 관계형 데이터베이스와 마찬가지로 하이퍼테이블은 데이터를 정보 테이블로 나타낸다. 테이블의 각 행에는 관련 정보가 포함된 셀이 있으며 각 셀은 부분적으로 행 키와 열 이름으로 식별된다. 테이블이 생성될 때 최대 255개의 열 이름의 대한 자원이 제공된다. 하이퍼테이블은 세 번쩨 차원인 인 타임 스탬프를 추가하여 기존의 2차원 테이블 모델을 확장한다. 이 타임 스탬프 차원은 각 테이블 셀의 서로 다른 버전을 나타내는 것으로 생각할 수 있다. 하이퍼테이블은 하둡(Hadoop)위에 매끄럽게 오버레이되어 빅데이터 애플리케이션을 위한 확장 가능한 강력한 데이터베이스 인프라를 제공한다.<ref> 〈[https://www.predictiveanalyticstoday.com/hypertable/ 하이퍼 테이블]〉, 《피에이티 리처치》</ref>  
  
 
== 역사 ==
 
== 역사 ==
15번째 줄: 15번째 줄:
 
기업을 위한 상용 기술지원 서비스를 제공하며 다음과 같은 기능을 제공한다.
 
기업을 위한 상용 기술지원 서비스를 제공하며 다음과 같은 기능을 제공한다.
  
* '''체크포인트''' : 테이블 데이터를 임의의 순서대로 출력하여 하이퍼테이블에 백업시키고, 하이퍼테이블은 항상 체크포인트에서 일관되고 작동 가능한 상태로 되돌아올 수 있다.<ref>윤승은, 〈[https://terms.naver.com/entry.nhn?docId=797348&cid=50376&categoryId=50376 체크 포인트]〉, 《정보통신용어사전》, 일진사, 2008-01-15</ref>
+
* '''체크포인트''' : 테이블 데이터를 임의의 순서대로 출력하여 하이퍼테이블에 백업시키고, 하이퍼테이블은 항상 체크포인트에서 일관되고 작동 가능한 상태로 되돌아올 수 있다.<ref name='나'> 〈[https://dbdb.io/db/hypertable 하이퍼 테이블]〉, 《데이터베이스 데이터베이스》</ref>  
* '''동시성 제어''' : 다중 버전 동시성 제어(MVCC: Multi Version Concurrency Control)란 하이퍼테이블이 가지고 있는 기능 중 하나로 수정된 번호로 자동으로 할당된 타임 스탬프를 사용한다.<ref>박기현, 〈[https://terms.naver.com/entry.nhn?docId=2271946&cid=51207&categoryId=51207 동시성 제어]〉, 《데이터 통신과 컴퓨터 네트워크》, 한빛아카데미(주), 2013-09-10</ref>  
+
* '''동시성 제어''' : 다중 버전 동시성 제어(MVCC: Multi Version Concurrency Control)란 하이퍼테이블이 가지고 있는 기능 중 하나로 수정된 번호로 자동으로 할당된 타임 스탬프를 사용한다.<ref name='나'> 〈[https://dbdb.io/db/hypertable 하이퍼 테이블]〉, 《데이터베이스 데이터베이스》</ref>  
* '''데이터 모델''' : 하이퍼테이블은 일련의 관련 열을 사용한다.
+
* '''데이터 모델''' : 하이퍼테이블은 일련의 관련 열을 사용한다.<ref name='나'> 〈[https://dbdb.io/db/hypertable 하이퍼 테이블]〉, 《데이터베이스 데이터베이스》</ref>
* '''쿼리 인터페이스''' : 하이퍼테이블은 테이블을 생성하고 수정 및 쿼리하기 위한 HQL(Hypertable Query Language)을 제공한다. 이것을 사용해서 관리 명령을 호출할 수도 있다. HQL은 하이퍼테이블 명령 줄 인터페이스(htshell), Thrift API 메소드 및 하이퍼테이블로 해석할 수 있다.
+
* '''쿼리 인터페이스''' : 하이퍼테이블은 테이블을 생성하고 수정 및 쿼리하기 위한 HQL(Hypertable Query Language)을 제공한다. 이것을 사용해서 관리 명령을 호출할 수도 있다. HQL은 하이퍼테이블 명령 줄 인터페이스(htshell), Thrift API 메소드 및 하이퍼테이블로 해석할 수 있다.<ref name='나'> 〈[https://dbdb.io/db/hypertable 하이퍼 테이블]〉, 《데이터베이스 데이터베이스》</ref>
* '''스토리지 아키텍처''' : 디스크 지향으로 하이퍼테이블은 어떠한 파일 시스템에서도 실행할 수 있다. 파일 시스템(FS) 브로커는 모든 파일 시스템 요청을 처리한다. FS 브로커들은 현재 HDFS, MapR, Ceph, KFS 및 현지인을 지원한다.
+
* '''스토리지 아키텍처''' : 디스크 지향으로 하이퍼테이블은 어떠한 파일 시스템에서도 실행할 수 있다. 파일 시스템(FS) 브로커는 모든 파일 시스템 요청을 처리한다. FS 브로커들은 현재 HDFS, MapR, Ceph, KFS 및 현지인을 지원한다.<ref name='나'> 〈[https://dbdb.io/db/hypertable 하이퍼 테이블]〉, 《데이터베이스 데이터베이스》</ref>
 +
 
 +
=== 시스템 구성 요소 ===
 +
[[파일:시스템 구성 요소.png|썸네일|400픽셀|시스템 구성 요소]]
 +
 
 +
;초공간
 +
이것은 우리 시스템의 하이퍼스페이스(Hyperspace)와 동일하다. 하이퍼스페이스(또는 Chubby)는 소량의 메타 데이터를 저장하기위한 파일 시스템을 제공하는 서비스이다. 또한 독점 또는 공유 잠금에서 잠금 관리자 역할을하며 모든 파일 또는 디렉토리에서 획득한다. 단일 서버로 구현되지만 가까운 장래에 분산되고 고 가용성이 될 것이다. 구글(Google)은 하이퍼스페이스를 "모든 분산 데이터 구조의 뿌리"라고 부르며이 시스템을 생각하는 좋은 방법이다.<ref name='가'> 〈[https://www.toptechbox.com/p/hypertable-tutorials.html HyperTable이란 무엇입니까?]〉, 《탑텍박스》</ref>
  
=== 지원 언어 ===
+
;범위 서버
[[SQL]]과 비슷한 HQL이라는 명령어를 지원한다. C++ API도 제공하며 다음 언어를 모두 지원한다. [[C++]], [[Java]], [[Perl]], [[PHP]], [[Python]], [[Ruby]]
+
테이블(Table)은 연속 된 행 범위 세트로 구분되며 각 범위는 범위 서버에 의해 관리된다. 처음에 각 테이블은 전체 행 키 공간에 걸쳐있는 단일 범위로 구성된다. 테이블이 데이터로 채워지면 범위는 결국 크기 임계 값 (기본값은 200MB)을 초과하고 중간 행 키를 분할 지점으로 사용하여 두 범위로 분할된다. 범위 중 하나는 원래 범위를 보유한 동일한 범위 서버에 유지되고 다른 범위는 마스터에 의해 다른 범위 서버에 재 할당된다. 이 분할 프로세스는 계속 증가함에 따라 모든 범위에 대해 계속된다. 각 범위 서버는 자신이 담당하는 범위에 대한 테이블 데이터의 모든 읽기 및 쓰기를 처리한다. 범위 서버는 메모리에 업데이트를 저장 한 후 셀카체(CellCache)라고합니다. 주기적으로 CellCache는 셀스토어(CellStore)라고하는 특별히 포맷 된 파일의 디스크로 플러시된다. 액세스 그룹의 데이터를 스캔하려면 범위 서버가 액세스 그룹에 대한 CellCache 및 모든 CellStore의 병합을 수행해야한다.<ref name='가'> 〈[https://www.toptechbox.com/p/hypertable-tutorials.html HyperTable이란 무엇입니까?], 《탑텍박스》</ref>
  
== 버전 ==
+
;석사
현재 버전은 2016년 3월에 릴리즈한 0.9.8.11이다.
+
마스터는 테이블 생성 및 삭제와 같은 모든 메타 작업을 처리한다. 클라이언트 데이터는 마스터를 통해 이동하지 않으므로 클라이언트가 인식하지 못하는 동안 마스터가 잠시 중단 될 수 있다. 또한 마스터는 범위 서버 오류를 감지하고 필요한 경우 범위를 재 할당한다. 마스터는 범위 서버 부하 분산도 담당한다. 현재 마스터 프로세스는 하나 뿐이지 만 시스템은 상시 대기 마스터를 허용하는 방식으로 설계되었다. <ref name='가'> 〈[https://www.toptechbox.com/p/hypertable-tutorials.html HyperTable이란 무엇입니까?]〉, 《탑텍박스》</ref>
 +
 
 +
;DFS 브로커
 +
Hypertable은 모든 파일 시스템에서 실행되도록 설계되었다. 이를 위해 시스템은 DFS 브로커라고하는 것을 통해 파일 시스템에 대한 인터페이스를 추상화했다. DFS 브로커는 표준화 된 파일 시스템 프로토콜 메시지를 특정 파일 시스템에 고유 한 시스템 호출로 변환하는 프로세스이다. DFS 브로커는 HDFS (hadoop), KFS 로컬용으로 개발되었다.<ref name='가'> 〈[https://www.toptechbox.com/p/hypertable-tutorials.html HyperTable이란 무엇입니까?]〉, 《탑텍박스》</ref>
 +
 
 +
=== 지원 ===
 +
;운영 체제
 +
*'''리눅스'''(Linux) :
 +
*'''오에스 엑스'''(OS X) :
 +
*'''위도우'''(Windows) :
 +
 
 +
;프로그래밍 언어
 +
*'''씨플플'''(C++) :
 +
*'''자바'''(Java) :
 +
*'''퍼릴'''(Perl) :
 +
*'''피에이치피'''(PHP) :
 +
*'''파이썬'''(Python) :
 +
*'''루비'''(Ruby) :
  
 
== 현황 ==
 
== 현황 ==
33번째 줄: 56번째 줄:
  
 
== 참고자료 ==
 
== 참고자료 ==
* 한국정보통신기술협회 - http://terms.tta.or.kr/dictionary/dictionaryView.do?word_seq=050536-3
+
* 〈[https://www.predictiveanalyticstoday.com/hypertable/ 하이퍼 테이블]〉, 《피에이티 리처치》
* DB-ENGINES  - https://db-engines.com/en/system/Hypertable
+
* 〈[https://dbdb.io/db/hypertable 하이퍼 테이블]〉, 《데이터베이스 데이터베이스》
* 거울속 항해일지, 〈[https://chess72.tistory.com/139 hypertable 알아볼까?]〉, 《티스토리 블로그》, 2012-04-07
+
* 〈[https://www.toptechbox.com/p/hypertable-tutorials.html HyperTable이란 무엇입니까?]〉, 《탑텍박스》
* 개발노트, 〈[https://firedev.tistory.com/entry/NoSQL-%EC%A2%85%EB%A5%98-%EC%A0%95%EB%A6%AC (NoSQL) 종류 정리]〉, 《티스토리 블로그》, 2014-05-19
+
   
* 삼성SDS 커뮤니케이션팀, 〈[https://www.samsungsds.com/global/ko/news/story/1203248_2919.html SMAC의 대량 데이터 처리를 위한 DBMS기술!]〉, 《SAMSUNG SDS》, 2015-06-03
 
* Doug Judd, 〈[https://qconsf.com/sf2008/sf2008/presentation/Hypertable%2B-%2BAn%2BOpen%2BSource%2C%2BHigh%2BPerformance%2C%2BScalable%2BDatabase.html Hypertable - 오픈 소스, 고성능, 확장성있는 데이터베이스]〉, 《QCon》, 2015-10-15
 
* 카네기 멜런 데이터 베이스 그룹, 〈[https://dbdb.io/db/hypertable Hypertable]〉, 《Database of Databases》, 2018-12-12
 
 
 
 
== 같이 보기 ==
 
== 같이 보기 ==
 
* [[데이터베이스 관리 시스템]]
 
* [[데이터베이스 관리 시스템]]

2020년 8월 7일 (금) 15:42 판

하이퍼테이블(Hypertable)
하이퍼테이블(Hypertable)

하이퍼테이블(Hypertable)이란 구글(Google)의 대규모 확장형 데이터베이스인 빅테이블을 원형으로 한 오픈소스 분산형 데이터베이스이다. 비정형 데이터를 분석하기 위한 노에스큐엘(NoSQL)의 일종이다. 높은 성능과 편의성을 가지고 있다.

개요

하이퍼테이블(Hypertable)은 비관계형 데이터베이스노에스큐엘(NoSQL) 중 빅테이블을 모델로 한 오픈소스 데이터베이스로 분산파일 시스템 위에서 실행된다. HDFS. MapR, Ceph, KFS, 로컬을 지원하고 C++을 이용하여 개발되었다. 스토리지 아키텍처는 디스크를 지향하며 외국 키는 지원하지 않는다. 또한 시스템을 기본 클러스터에 간편히 추가하여 원활하고 경제적으로 크기를 페타바이트 단위로 확장할 수 있다. 하이퍼테이블 (Hypertable)은 구글의(Google)의 독점적이고 대규모로 확장 가능한 데이터베이스인 빅테이블(Bigtable)을 모델로 한 대규모 확장 가능한 고성능 오픈 소스 데이터베이스이다. 하이퍼테이블은 기존 관계형 데이터베이스 관리 시스템(RDBMS)에서 잘 처리되지 않는 확장성 문제를 해결하기 위한 목적으로 설계되었다. 하이퍼테이블은 경쟁 제품에 비해 최대의 효율성과 우수한 성능을 제공하여 비용을 크게 절감한다. 하이퍼테이블의 테이블은 단일 기본 키인 행 키로 정렬 된 방대한 데이터 테이블로 생각할 수 있다. 관계형 데이터베이스와 마찬가지로 하이퍼테이블은 데이터를 정보 테이블로 나타낸다. 테이블의 각 행에는 관련 정보가 포함된 셀이 있으며 각 셀은 부분적으로 행 키와 열 이름으로 식별된다. 테이블이 생성될 때 최대 255개의 열 이름의 대한 자원이 제공된다. 하이퍼테이블은 세 번쩨 차원인 인 타임 스탬프를 추가하여 기존의 2차원 테이블 모델을 확장한다. 이 타임 스탬프 차원은 각 테이블 셀의 서로 다른 버전을 나타내는 것으로 생각할 수 있다. 하이퍼테이블은 하둡(Hadoop)위에 매끄럽게 오버레이되어 빅데이터 애플리케이션을 위한 확장 가능한 강력한 데이터베이스 인프라를 제공한다.[1]

역사

  • 2008년: 중국의 Zvents 사에서 구글빅테이블을 기반으로 한 오픈소스 데이터베이스인 하이퍼테이블을 만들었다.
  • 2009년: 1월 중국의 검색엔진 바이두가 프로젝트의 스폰서가 됐다.
  • 2016년: 3월에 개발을 중단했으며 DB 엔진 순위에서 제외되었다.

특징

기업을 위한 상용 기술지원 서비스를 제공하며 다음과 같은 기능을 제공한다.

  • 체크포인트 : 테이블 데이터를 임의의 순서대로 출력하여 하이퍼테이블에 백업시키고, 하이퍼테이블은 항상 체크포인트에서 일관되고 작동 가능한 상태로 되돌아올 수 있다.[2]
  • 동시성 제어 : 다중 버전 동시성 제어(MVCC: Multi Version Concurrency Control)란 하이퍼테이블이 가지고 있는 기능 중 하나로 수정된 번호로 자동으로 할당된 타임 스탬프를 사용한다.[2]
  • 데이터 모델 : 하이퍼테이블은 일련의 관련 열을 사용한다.[2]
  • 쿼리 인터페이스 : 하이퍼테이블은 테이블을 생성하고 수정 및 쿼리하기 위한 HQL(Hypertable Query Language)을 제공한다. 이것을 사용해서 관리 명령을 호출할 수도 있다. HQL은 하이퍼테이블 명령 줄 인터페이스(htshell), Thrift API 메소드 및 하이퍼테이블로 해석할 수 있다.[2]
  • 스토리지 아키텍처 : 디스크 지향으로 하이퍼테이블은 어떠한 파일 시스템에서도 실행할 수 있다. 파일 시스템(FS) 브로커는 모든 파일 시스템 요청을 처리한다. FS 브로커들은 현재 HDFS, MapR, Ceph, KFS 및 현지인을 지원한다.[2]

시스템 구성 요소

시스템 구성 요소
초공간

이것은 우리 시스템의 하이퍼스페이스(Hyperspace)와 동일하다. 하이퍼스페이스(또는 Chubby)는 소량의 메타 데이터를 저장하기위한 파일 시스템을 제공하는 서비스이다. 또한 독점 또는 공유 잠금에서 잠금 관리자 역할을하며 모든 파일 또는 디렉토리에서 획득한다. 단일 서버로 구현되지만 가까운 장래에 분산되고 고 가용성이 될 것이다. 구글(Google)은 하이퍼스페이스를 "모든 분산 데이터 구조의 뿌리"라고 부르며이 시스템을 생각하는 좋은 방법이다.[3]

범위 서버

테이블(Table)은 연속 된 행 범위 세트로 구분되며 각 범위는 범위 서버에 의해 관리된다. 처음에 각 테이블은 전체 행 키 공간에 걸쳐있는 단일 범위로 구성된다. 테이블이 데이터로 채워지면 범위는 결국 크기 임계 값 (기본값은 200MB)을 초과하고 중간 행 키를 분할 지점으로 사용하여 두 범위로 분할된다. 범위 중 하나는 원래 범위를 보유한 동일한 범위 서버에 유지되고 다른 범위는 마스터에 의해 다른 범위 서버에 재 할당된다. 이 분할 프로세스는 계속 증가함에 따라 모든 범위에 대해 계속된다. 각 범위 서버는 자신이 담당하는 범위에 대한 테이블 데이터의 모든 읽기 및 쓰기를 처리한다. 범위 서버는 메모리에 업데이트를 저장 한 후 셀카체(CellCache)라고합니다. 주기적으로 CellCache는 셀스토어(CellStore)라고하는 특별히 포맷 된 파일의 디스크로 플러시된다. 액세스 그룹의 데이터를 스캔하려면 범위 서버가 액세스 그룹에 대한 CellCache 및 모든 CellStore의 병합을 수행해야한다.[3]

석사

마스터는 테이블 생성 및 삭제와 같은 모든 메타 작업을 처리한다. 클라이언트 데이터는 마스터를 통해 이동하지 않으므로 클라이언트가 인식하지 못하는 동안 마스터가 잠시 중단 될 수 있다. 또한 마스터는 범위 서버 오류를 감지하고 필요한 경우 범위를 재 할당한다. 마스터는 범위 서버 부하 분산도 담당한다. 현재 마스터 프로세스는 하나 뿐이지 만 시스템은 상시 대기 마스터를 허용하는 방식으로 설계되었다. [3]

DFS 브로커

Hypertable은 모든 파일 시스템에서 실행되도록 설계되었다. 이를 위해 시스템은 DFS 브로커라고하는 것을 통해 파일 시스템에 대한 인터페이스를 추상화했다. DFS 브로커는 표준화 된 파일 시스템 프로토콜 메시지를 특정 파일 시스템에 고유 한 시스템 호출로 변환하는 프로세스이다. DFS 브로커는 HDFS (hadoop), KFS 로컬용으로 개발되었다.[3]

지원

운영 체제
  • 리눅스(Linux) :
  • 오에스 엑스(OS X) :
  • 위도우(Windows) :
프로그래밍 언어
  • 씨플플(C++) :
  • 자바(Java) :
  • 퍼릴(Perl) :
  • 피에이치피(PHP) :
  • 파이썬(Python) :
  • 루비(Ruby) :

현황

이 프로젝트의 설계 목표 중 가장 중요한 것은 최적의 성능으로 하이퍼테이블이 Hadoop DFS와 같은 기존의 분산 파일 시스템에서 실행되도록 설계되었다. 설계자는 이를 위해 자바보다는 시스템의 전체적인 부분을 전적으로 C++으로 만들었으며 여러 언어와 호환된다. 그러나 2016년 3월부터 추가 개발을 중단하면서 DB 엔진 순위에서 제외되었다. 더욱이 관련 정보도 찾기 힘들다.

각주

  1. 하이퍼 테이블〉, 《피에이티 리처치》
  2. 2.0 2.1 2.2 2.3 2.4 하이퍼 테이블〉, 《데이터베이스 데이터베이스》
  3. 3.0 3.1 3.2 3.3 HyperTable이란 무엇입니까?〉, 《탑텍박스》

참고자료

같이 보기


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