BigQuery와 BigTable의 차이점은 무엇인가요? [닫은]


82

누군가가 BigQuery 대신 BigTable을 사용하는 이유가 있나요? 둘 다 읽기 및 쓰기 작업을 지원하는 것으로 보이며 후자는 고급 '쿼리'작업도 제공합니다.

제휴 네트워크를 개발해야하므로 (따라서 클릭 수와 '판매'를 추적해야합니다) bigQuery가 더 나은 API를 가진 bigTable 인 것처럼 보이기 때문에 그 차이에 상당히 혼란 스럽습니다.


BigTable은 더 나은 성능이 필요한 사람들을위한 저수준 및 덜 관리되는 Cloud Datastore와 비슷합니다.
dyeray 2010 년

1
이 과거의 SO 스레드도 도움이 될 수 있습니다. stackoverflow.com/questions/34437572/…
Elliott Brossard

@dyeray 예, 알고 있지만 누군가가 BigQuery 대신 BigTable과 BigQuery에서 동일한 데이터를 유지해야 할 이유가 있습니까?
모자가없는 사용자

BigTable은 단일 행 또는 작은 범위 조회에 매우 적합합니다. BigQuery는 큰 그림에서 매우 뛰어납니다. 효율적인 드릴 다운이 포함 된 분석을 원하는 경우 대규모 분석에는 BigQuery를 사용하고 소규모 분석에는 BigTable을 사용합니다.
Solomon Duskis 2016 년

시스템 속성 비교 Google BigQuery, Google Cloud Bigtable 및 Google Cloud Datastore. ! 이미지 (면책 조항! db-engines.com에서 복사)
Le Khiem

답변:


104

차이점은 기본적으로 다음과 같습니다.

BigQuery는 많이 변경되지 않거나 추가하여 변경되는 데이터 세트를위한 쿼리 엔진입니다. 쿼리에 "테이블 스캔"이 필요하거나 전체 데이터베이스를 살펴볼 필요가있을 때 탁월한 선택입니다. 합계, 평균, 개수, 그룹화를 생각하십시오. BigQuery는 많은 양의 데이터를 수집하고 이에 대해 질문해야 할 때 사용하는 것입니다.

BigTable은 데이터베이스입니다. 확장 가능한 대규모 애플리케이션의 기초가되도록 설계되었습니다. 데이터를 읽고 쓰는 데 필요한 모든 종류의 앱을 만들 때 BigTable을 사용하고 확장이 잠재적 인 문제가 될 수 있습니다.


2
두 번째 단락에서 - 당신은 의미 Use BigTable: O)
미하일 Berlyant

@MikhailBerlyant 덕분에, 편집
마이클 Manoochehri을

3
여기 Google의 불행한 명명 규칙이 있습니다. 일반적으로 SQL을 생각할 때-테이블 형식 데이터 구조를 생각하고 쿼리를 생각할 때 데이터베이스의 키-값 또는 조회 유형을 생각합니다. 이 경우 BigTable은 SQL이 아닌 반면 BigQuery Sql 데이터베이스입니다.
Maksood

@Michael Manoochehri cloud.google.com/bigquery/… 아래 인용문을 읽어
보세요

영구 외부 테이블에 대한 액세스를 사용자 (서비스 계정 포함) 또는 그룹과 공유 할 수 있습니다. 외부 테이블을 조회하려면, 사용자 또는 그룹은 (최소한)을 부여 할 필요가 다음 bigquery.dataViewer의 데이터 세트 레벨 이상에서 역할을 외부 테이블에게이 들어있는 데이터 세트에 액세스 할 bigquery.user의 프로젝트 레벨에서 또는 역할을 메타 데이터 및 테이블에 대한 읽기 전용 액세스를 제공하는 Cloud Bigtable 의 bigtable.reader 역할
gstackoverflow

80

GCP-GCP 데이터베이스 옵션 결정 순서도

이는 Google 클라우드가 제공하는 서로 다른 데이터 저장소를 결정하는 데 도움이 될 수 있습니다 (면책 조항! Google Cloud 페이지에서 복사 됨).

요구 사항이 라이브 데이터베이스 인 경우 BigTable 이 필요합니다 (실제로 OLTP 시스템은 아님). 분석 목적에 더 가깝다면 BigQuery 가 필요합니다!

OLTPOLAP를 생각해보십시오 . 또는 Cassandra 대 Hadoop에 익숙한 경우 BigTable은 대략 Cassandra와 동일하고 BigQuery는 대략 Hadoop과 동일합니다 (동의, 공정한 비교는 아니지만 아이디어를 얻음).

https://cloud.google.com/images/storage-options/flowchart.svg

노트

것을 명심하시기 바랍니다 Bigtable을가 관계형 데이터베이스는 아니고, SQL 쿼리 또는 지원하지 않습니다 JOIN들 않으며 다중 행 트랜잭션을 지원합니다. 또한 소량의 데이터에는 좋은 솔루션이 아닙니다. RDBMS OLTP를 원하면 cloudSQL (mysql / postgres) 또는 스패너를 살펴 봐야 할 수 있습니다.

비용 관점

https://stackoverflow.com/a/34845073/6785908 . 여기에서 관련 부품을 인용합니다.

전체 비용은 데이터를 '쿼리'하는 빈도로 귀결됩니다. 백업이고 이벤트를 너무 자주 재생하지 않으면 비용이 많이 듭니다. 그러나 매일 한 번 재생해야하는 경우 5 $ / TB 스캔을 매우 쉽게 트리거하기 시작합니다. 우리는 삽입과 저장이 얼마나 저렴한 지 너무 놀랐지 만 구글은 당신이 어떤 시점에서 값 비싼 쿼리를 실행할 것으로 기대하기 때문에 이것은 종종 발생합니다. 하지만 몇 가지를 중심으로 디자인해야합니다. 예를 들어 AFAIK 스트리밍 삽입은 테이블에 기록된다는 보장이 없으며 실제로 기록되었는지 확인하기 위해 목록 끝에서 자주 폴링해야합니다. 시간 범위 테이블 데코레이터를 사용하면 테일링을 효율적으로 수행 할 수 있습니다 (전체 데이터 세트 스캔 비용을 지불하지 않음).

주문이 마음에 들지 않으면 무료로 테이블을 나열 할 수도 있습니다. 그런 다음 '쿼리'를 실행할 필요가 없습니다.

편집 1

클라우드 스패너 는 비교적 젊지 만 강력하고 유망합니다 (그리고 엄청나게 비쌉니다). 적어도 Google 마케팅은 기능이 두 세계 (기존 RDBMS 및 noSQL)에서 최고라고 주장합니다.

여기에 이미지 설명 입력


영구 외부 테이블에 대한 액세스를 사용자 (서비스 계정 포함) 또는 그룹과 공유 할 수 있습니다. 외부 테이블을 쿼리하려면 사용자 또는 그룹에 권한을 부여해야합니다 (최소한). 외부 테이블이 포함 된 데이터 세트에 액세스하기위한 데이터 세트 수준 이상의 bigquery.dataViewer 역할 프로젝트 수준의 bigquery.user 역할 또는 메타 데이터 및 테이블에 대한 읽기 전용 액세스를 제공하는 Cloud Bigtable의 bigtable.reader 역할
gstackoverflow

위의 인용문은 cloud.google.com/bigquery/… 에서 가져 왔습니다 . bigtable 에 액세스 하려면 bigquery 라는 단어가 포함 된 권한이 필요 합니까?
gstackoverflow

-3

BigQuery와 Cloud Bigtable은 동일하지 않습니다. Bigtable은 Hadoop 기반 NoSQL 데이터베이스 인 반면 BigQuery는 SQL 기반 데이터웨어 하우스입니다. 특정 사용 시나리오가 있습니다.

매우 짧고 간단한 용어로;

  • ACID 트랜잭션에 대한 지원이 필요하지 않거나 데이터가 구조화되지 않은 경우 Cloud Bigtable을 고려하세요.
  • OLAP (온라인 분석 처리) 시스템에서 대화 형 쿼리가 필요한 경우 BigQuery를 고려하세요.

5
Bigtable은 Hadoop 기반 NoSQL 데이터베이스가 아닙니다. 사실 그 반대입니다. Bigtable 백서 HBase (Hadoop 기반 NoSQL)가 빌드되었습니다. 이 때문에 그들은 유사한 (동일한?) API를 공유합니다.
Igor Dvorzhak
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.