빅테이블
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
빅테이블은 구글에서 개발한 분산 데이터베이스 시스템으로, 2004년에 개발이 시작되어 2006년에 설계가 공개되었다. 웹 인덱싱, 맵리듀스, 구글 지도, 유튜브 등 다양한 구글 애플리케이션에서 사용되며, 2015년에는 "클라우드 빅테이블"이라는 이름으로 구글 클라우드 플랫폼에서 공개되었다. 빅테이블은 와이드 컬럼 저장소의 전형적인 예시로, 수백에서 수천 대의 서버에 페타바이트 규모의 데이터를 처리하며, 자동 확장을 지원한다. 아파치 HBase와 아파치 카산드라는 빅테이블을 모델로 한 오픈 소스 프로젝트이다.
더 읽어볼만한 페이지
- 데이터베이스 관리 시스템 - 트랜잭션 처리
트랜잭션 처리는 데이터베이스 시스템에서 데이터의 일관성과 무결성을 보장하기 위한 기술이며, ACID 속성을 통해 데이터 정확성을 유지하고 롤백, 데드락 처리 등의 기술을 활용한다. - 데이터베이스 관리 시스템 - 저장 프로시저
저장 프로시저는 데이터베이스 관리 시스템에서 SQL 문들을 미리 컴파일하여 저장하고, 모듈화, 보안성, 성능 향상, 유지보수 용이성과 같은 특징을 가지며, 데이터베이스 시스템마다 구현 방식과 지원하는 언어가 다를 수 있는 코드 묶음이다. - 구글 - 구글 두들
구글 두들은 구글 검색 엔진의 로고를 특별한 날이나 인물, 사건 등을 기념하기 위해 제작되는, 정적인 이미지부터 대화형 게임, 애니메이션 비디오 등 다양한 형식의 창의적인 콘텐츠이다. - 구글 - 웨이모
웨이모는 알파벳의 자회사로, 라이다, 레이더, 카메라 기반 센서 시스템과 인공지능 소프트웨어를 이용하여 자율 주행 기술을 개발하고 로보택시, 트럭 운송 및 배달 서비스를 제공하지만, 기술적 한계, 안전 문제, 규제 및 지역 주민 반발 등의 과제를 안고 있다.
빅테이블 - [IT 관련 정보]에 관한 문서 | |
---|---|
개요 | |
이름 | 구글 빅테이블 |
개발사 | 구글 |
플랫폼 | 구글 클라우드 플랫폼 |
프로그래밍 언어 | C++ (코어) 자바 파이썬 고 루비 |
출시일 | 2005년 2월 |
최신 버전 | 알 수 없음 |
미리보기 날짜 | 알 수 없음 |
장르 | 클라우드 스토리지 |
라이선스 | 사유 |
웹사이트 | 구글 빅테이블 공식 웹사이트 |
2. 역사
빅테이블은 2004년에 개발이 시작되어[27] 2006년에 설계가 논문으로 공개되었다.[17] 맵리듀스[18], 구글 지도[20], 구글 도서 검색, "내 역사 검색", 구글 어스, 블로거, 구글 코드 호스팅, 오르kut[20], 유튜브[21], 지메일 등 여러 구글 애플리케이션을 지원한다.
구글의 스패너 RDBMS는 각 테이블의 2단계 커밋마다 팍소스 그룹을 가진 빅테이블 구현 위에 레이어를 만들고 있다. Google F1영어은 스패너를 사용하여 MySQL에 의존하는 구현을 대체하기 위해 만들어졌다.[23]
2. 1. 개발 배경
빅테이블 개발은 2004년에 시작되었다.[1] 구글 애널리틱스,[2] 웹 인덱싱, MapReduce,[18] 구글 지도,[3] 구글 북스 검색, "내 검색 기록", 구글 어스, Blogger.com, 구글 코드 호스팅, 유튜브,[4] Gmail[5] 등 여러 구글 애플리케이션에서 사용되고 있다. 구글이 자체 데이터베이스를 개발한 이유는 확장성과 성능 특성에 대한 더 나은 제어를 위해서였다.[22]아파치 HBase와 카산드라는 빅테이블을 모델로 한 가장 잘 알려진 오픈 소스 프로젝트 중 일부이다.
2015년 5월 6일, 빅테이블의 공개 버전이 구글 클라우드의 일부로 "클라우드 빅테이블"이라는 이름으로 제공되었다.[2]
2022년 1월 현재, 빅테이블은 10 Exabytes 이상의 데이터를 관리하고 초당 50억 개 이상의 요청을 처리하고 있다.[7] 2022년 1월 27일, 구글은 자동 확장성을 포함한 빅테이블에 대한 여러 업데이트를 발표했다.[8]
2. 2. 구글 서비스 적용
빅테이블은 2004년에 개발이 시작되었으며[27] 현재 웹 색인[28], 맵리듀스[18], 구글 지도[29], 구글 도서 검색, "내 역사 검색", 구글 어스, 블로거닷컴, 구글 코드 호스팅, 유튜브[30], 지메일[31] 등 수많은 구글 애플리케이션에서 사용된다.2. 3. 외부 공개 및 발전
빅테이블은 2004년에 개발이 시작되었으며[27] 2006년에는 설계가 논문으로 공개되었다.[17] 맵리듀스(빅테이블에 저장된 데이터를 만들고 수정하는데 종종 사용)[18], 구글 지도[29], 구글 도서 검색, "내 역사 검색", 구글 어스, 블로거닷컴, 구글 코드 호스팅, 유튜브[30], 지메일[31]과 같은 수많은 구글 애플리케이션들에 사용된다.아파치 HBase와 카산드라는 빅테이블을 모델로 한 가장 잘 알려진 오픈 소스 프로젝트 중 일부이다.
2015년 5월 6일, 빅테이블의 공개 버전이 구글 클라우드의 일부로 "클라우드 빅테이블"이라는 이름으로 제공되었다.[2]
2022년 1월 현재, 빅테이블은 10 Exabytes 이상의 데이터를 관리하고 초당 50억 개 이상의 요청을 처리하고 있다.[7] 2022년 1월 27일, 구글은 자동 확장성을 포함한 빅테이블에 대한 여러 업데이트를 발표했다.[8]
3. 기술
빅테이블은 빠르고 대규모의 컬럼 지향 DBMS로, 행이 아닌 열로부터의 빠른 읽기에 초점을 맞추고 있다.
태블릿의 GFS 내 위치 (서버의 IP와 Port)는 "META1" 태블릿이라고 불리는 여러 특별한 태블릿에 데이터베이스 엔트리로 기록된다. META1 태블릿은 단 하나뿐인 "META0" 태블릿을 조회하여 찾을 수 있다. "META0" 태블릿은 통상 1대의 머신을 점유하는데, 이는 클라이언트가 "META1" 태블릿의 위치에 관해 빈번하게 문의하기 때문이다. "META1" 태블릿은 자체적으로 실제 데이터 위치에 대한 답을 가지고 있다. GFS 마스터 서버처럼 META0은 일반적으로 병목 현상이 되지 않는다. META1의 위치를 발견하고 전송하기 위해 필요한 프로세서 시간과 대역은 극히 적다. 클라이언트는 위치를 캐시하여 조회를 최소화한다.
3. 1. 특징
빅테이블은 와이드 컬럼 저장소의 대표적인 예시 중 하나로, 관계형 데이터베이스가 아닌 희소하고 분산된 다차원 정렬 맵으로 정의될 수 있다.[9] 빅테이블은 임의의 두 문자열 값(행 키와 열 키)과 타임스탬프(3차원 매핑)를 연관된 임의의 바이트 배열에 매핑한다.빅테이블은 콜로서스, 처비 락 서비스, SSTable (LevelDB와 같은 로그 구조 저장소) 등 여러 구글 기술을 기반으로 구축되었다. "수백 또는 수천 대의 머신"에 걸쳐 페타바이트 범위로 확장 가능하며, "재구성 없이" 시스템에 더 많은 머신을 쉽게 추가하고 해당 리소스를 자동으로 활용할 수 있도록 설계되었다.[9]
예를 들어, 구글의 웹 페이지 사본은 행 키가 역 도메인 이름 URL이고, 열이 웹 페이지의 다양한 속성을 설명하며, 특정 열이 페이지 자체를 담고 있는 빅테이블에 저장될 수 있다. 페이지 열은 웹 페이지가 수집된 시점에 타임스탬프가 찍힌 다양한 사본을 설명하는 여러 타임스탬프 버전이 있을 수 있다. 빅테이블의 각 셀은 0개 이상의 타임스탬프가 찍힌 데이터 버전을 가질 수 있으며, 타임스탬프는 만료된 데이터의 버전 관리 및 가비지 수집을 허용한다.
테이블은 여러 ''태블릿''으로 분할된다. 즉, 테이블의 세그먼트는 각 태블릿의 크기가 수백 메가바이트 또는 수 기가바이트가 되도록 특정 행 키에서 분할된다. 빅테이블은 수천에서 수십만 개의 태블릿 샤드가 수백에서 수천 대의 빅테이블 서버에서 제공될 수 있다는 점에서 맵리듀스 작업자 풀과 유사하다. 테이블 크기가 지정된 한도를 초과하여 증가할 위험이 있는 경우, 태블릿은 BMDiff[10][11] 알고리즘과 Snappy로 오픈 소스화된 LZ77의 공간 효율성이 떨어지지만 계산 시간 측면에서 더 효율적인 Zippy 압축 알고리즘[12][13]을 사용하여 압축될 수 있다.
GFS에서 태블릿의 위치는 "META1" 태블릿이라고 하는 여러 특수 태블릿의 데이터베이스 항목으로 기록된다. META1 태블릿은 단일 "META0" 태블릿을 쿼리하여 찾을 수 있는데, 이는 일반적으로 자체 서버에 상주한다. META0 태블릿은 클라이언트가 실제 데이터 위치에 대한 답변이 있는 "META1" 태블릿의 위치에 대해 자주 쿼리하기 때문에 중요하다. GFS의 마스터 서버와 마찬가지로, META0 서버는 일반적으로 병목 현상이 되지 않는데, META1 위치를 검색하고 전송하는 데 필요한 프로세서 시간과 대역폭이 최소이며 클라이언트가 쿼리를 최소화하기 위해 위치를 적극적으로 캐싱하기 때문이다.
빅테이블은 빠르고 대규모의 컬럼 지향 DBMS이다. 행이 아닌 열로부터의 빠른 읽기에 초점을 맞추고 있다. 빅테이블은 수백에서 수천 대의 서버에 페타바이트에 달하는 데이터를 처리하며, 시스템에 서버를 쉽게 추가하여 재설정 없이 해당 리소스를 자동으로 사용하기 시작하도록 설계되었다.[24]
각 테이블은 다차원이다. 각 필드는 해당 시점의 스냅샷을 가지며, 버전 관리를 할 수 있다. 테이블은 GFS에 최적화되어 있으며, 큰 테이블은 여러 ''Tablet segment'' (태블릿 세그먼트)로 자동으로 분할된다. 분할은 태블릿의 크기가 200MB가 되도록 행의 경계에서 이루어진다. 크기가 특정 한계를 초과할 조짐이 보이면, 테이블은 BMDiff와 Zippy 알고리즘을 사용하여 압축된다. 이들은 LZW보다 압축률은 떨어지지만, 계산량에서 우위에 있다.
3. 2. 구성 요소
빅테이블은 와이드 컬럼 저장소의 대표적인 예시 중 하나로, 희소하고 분산된 다차원 정렬 맵으로 정의될 수 있다. 빅테이블은 행 키, 열 키, 그리고 타임스탬프의 세 가지 값을 사용하여 임의의 바이트 배열에 매핑한다. 이는 관계형 데이터베이스와는 다른 구조를 가진다.[9]빅테이블은 다음과 같은 구글 기술을 기반으로 구축되었다.
빅테이블은 "수백 또는 수천 대의 머신"에 걸쳐 페타바이트 범위로 확장 가능하며, 시스템에 더 많은 머신을 쉽게 추가하고 자동으로 리소스를 활용할 수 있도록 설계되었다.[9] 예를 들어, 구글 웹 페이지의 사본은 행 키가 역 도메인 이름 URL이고, 열이 웹 페이지의 다양한 속성을 설명하며, 특정 열이 페이지 자체를 담고 있는 빅테이블에 저장될 수 있다. 이 페이지 열은 웹 페이지가 수집된 시점에 타임스탬프가 찍힌 다양한 버전의 사본을 가질 수 있다. 빅테이블의 각 셀은 0개 이상의 타임스탬프가 찍힌 데이터 버전을 가질 수 있으며, 타임스탬프는 만료된 데이터의 버전 관리 및 가비지 수집을 가능하게 한다.
테이블은 여러 개의 ''태블릿''으로 분할된다. 각 태블릿은 특정 행 키를 기준으로 분할되며, 크기는 수백 메가바이트에서 수 기가바이트까지 다양하다. 빅테이블은 수천에서 수십만 개의 태블릿 샤드를 수백에서 수천 대의 빅테이블 서버에서 제공할 수 있다. 테이블 크기가 지정된 한도를 초과하면, 태블릿은 BMDiff[10][11] 알고리즘과 Snappy로 오픈 소스화된 Zippy 압축 알고리즘[12][13]을 사용하여 압축된다.
태블릿의 위치는 "META1" 태블릿이라는 특수 태블릿에 기록된다. META1 태블릿은 "META0" 태블릿을 쿼리하여 찾을 수 있으며, META0 태블릿은 일반적으로 자체 서버에 상주한다. 클라이언트는 META1 태블릿 위치를 자주 쿼리하기 때문에 META0 태블릿은 일반적으로 병목 현상이 되지 않는다. 클라이언트는 쿼리를 최소화하기 위해 위치 정보를 적극적으로 캐싱한다.
3. 3. 다른 구현
빅테이블은 와이드 컬럼 저장소의 대표적인 예시 중 하나이다. 행 키와 열 키, 그리고 타임스탬프를 사용하여 임의의 바이트 배열에 데이터를 매핑한다. 이는 관계형 데이터베이스가 아니며, 희소하고 분산된 다차원 정렬 맵으로 정의될 수 있다.[9] 구글 기술인 콜로서스 (구글 파일 시스템), 처비 락 서비스, SSTable (LevelDB과 같은 로그 구조 저장소) 등을 기반으로 만들어졌다.빅테이블은 "수백 또는 수천 대의 머신"에 걸쳐 페타바이트급으로 확장 가능하며, 시스템에 더 많은 머신을 쉽게 추가하고 자동으로 리소스를 활용할 수 있도록 설계되었다.[9] 예를 들어, 구글 웹 페이지 사본은 행 키가 역 URL이고, 열이 웹 페이지의 다양한 속성을 설명하며, 특정 열이 페이지 자체를 담는 형태로 빅테이블에 저장될 수 있다. 페이지 열은 웹 페이지가 수집된 시점에 타임스탬프가 찍힌 여러 버전의 사본을 가질 수 있는데, 빅테이블의 각 셀은 0개 이상의 타임스탬프가 찍힌 데이터 버전을 가질 수 있기 때문이다. 타임스탬프는 만료된 데이터의 버전 관리 및 가비지 수집에도 사용된다.
테이블은 여러 개의 ''태블릿''으로 분할된다. 각 태블릿은 특정 행 키를 기준으로 분할되며, 크기는 수백 메가바이트에서 수 기가바이트에 이른다. 수천에서 수십만 개의 태블릿 샤드가 수백에서 수천 대의 빅테이블 서버에서 제공될 수 있다는 점에서 맵리듀스 작업자 풀과 유사하다. 테이블 크기가 지정된 한도를 초과하면, 태블릿은 BMDiff,[10][11] Snappy로 오픈 소스화된 Zippy 압축 알고리즘[12][13]을 사용하여 압축된다. GFS에서 태블릿의 위치는 "META1" 태블릿이라는 특수 태블릿에 기록된다. META1 태블릿은 단일 "META0" 태블릿을 쿼리하여 찾을 수 있으며, META0 태블릿은 일반적으로 자체 서버에 상주한다. META0 서버는 클라이언트가 META1 태블릿 위치를 자주 쿼리하기 때문에 병목 현상이 되지 않으며, 클라이언트는 쿼리를 최소화하기 위해 위치를 적극적으로 캐싱한다.
하둡 프로젝트는 빅테이블의 현재 구현을 목표로 HBase를 개발하고 있다. HBase는 하둡 위에서 빅테이블과 유사한 기능을 제공하며, 빅테이블이 구글 파일 시스템에서 제공하는 분산 데이터 스토리지를 활용하는 것과 같은 방식이다.
- 하이퍼테이블
4. 관련 항목
참조
[1]
간행물
Google's Bigtable
https://andrewhitchc[...]
2007-07-29
[2]
웹사이트
Announcing Google Cloud Bigtable: The same database that powers Google Search, Gmail and Analytics is now available on Google Cloud Platform
http://googlecloudpl[...]
2015-05-06
[3]
간행물
Google's Bigtable
https://andrewhitchc[...]
2007-07-29
[4]
간행물
YouTube Scalability
https://kylecordes.c[...]
2007-07-12
[5]
간행물
Google App Engine
https://code.google.[...]
Google Code
2014-04-17
[6]
간행물
Research
http://research.goog[...]
[7]
웹사이트
Cloud Bigtable now even easier to manage with autoscaling
https://cloud.google[...]
[8]
웹사이트
Google scales up Cloud Bigtable NoSQL database
https://www.techtarg[...]
2022-01-27
[9]
간행물
Radar
http://radar.oreilly[...]
O'Reilly
2006-05
[10]
웹사이트
Google Bigtable, Compression, Zippy and BMDiff
http://feedblog.org/[...]
2008-10-12
[11]
학술
Data compression using long common strings
IEEE Computer Society
[12]
간행물
Outer court
http://blogoscoped.c[...]
2005-10-23
[13]
간행물
Snappy
http://google.github[...]
[14]
웹사이트
Announcing Google Cloud Bigtable: The same database that powers Google Search, Gmail and Analytics is now available on Google Cloud Platform
http://googlecloudpl[...]
2016-09-21
[15]
웹사이트
Get started with Google Cloud Datastore - a fast, powerful, NoSQL database
https://developers.g[...]
2019-06-10
[16]
문서
Google's BigTable
http://andrewhitchco[...]
[17]
웹사이트
Bigtable: A Distributed Storage System for Structured Data
https://research.goo[...]
2018-02-04
[18]
문서
[19]
블로그
Official Google Reader
https://googlereader[...]
[20]
문서
Google's BigTable
http://andrewhitchco[...]
[21]
강연
YouTube Scalability Talk
http://kylecordes.co[...]
[22]
문서
[23]
간행물
Research
http://research.goog[...]
Google
[24]
뉴스
"Database War Stories #7: Google File System and BigTable"
http://radar.oreilly[...]
[25]
웹인용
Announcing Google Cloud Bigtable: The same database that powers Google Search, Gmail and Analytics is now available on Google Cloud Platform
http://googlecloudpl[...]
2015-05-06
[26]
URL
http://googledevelop[...]
[27]
인용
Google's BigTable
http://andrewhitchco[...]
[28]
인용
(download ebook)
http://research.goog[...]
Google
[29]
인용
Google's BigTable
http://andrewhitchco[...]
[30]
인용
YouTube Scalability
http://kylecordes.co[...]
2007-07-12
[31]
인용
Google App Engine
https://code.google.[...]
Google Code
2017-02-05
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com