IT story

Google Cloud Bigtable 및 Google Cloud Datastore

hot-time 2020. 8. 3. 17:39
반응형

Google Cloud Bigtable 및 Google Cloud Datastore


Google Cloud Bigtable 과 Google Cloud Datastore / App Engine 데이터 스토어 의 차이점은 무엇이며 주요 실질적인 장점 / 단점은 무엇입니까? AFAIK Cloud Datastore는 Bigtable 위에 구축됩니다.


Datastore에 대한 경험과 Bigtable 문서 읽기 에 따라 주요 차이점은 다음과 같습니다.

  • Bigtable은 원래 HBase 호환성을 위해 설계되었지만 이제 여러 언어로 된 클라이언트 라이브러리가 있습니다 . 데이터 스토어는 원래 Python / Java / Go 웹 앱 개발자 (원래 App Engine)에 더욱 적합했습니다.
  • Bigtable은 '저기'가 아니라 클러스터를 구성 해야한다는 점에서 Datastore보다 '조금 더 많은 IaaS' 입니다.
  • Bigtable은 하나의 인덱스 ( '행 키'(Datastore의 엔티티 키)) 만 지원합니다.
    • 이는 데이터 스토어의 인덱싱 된 속성과 달리 쿼리가 키에 있음을 의미합니다.
  • Bigtable은 단일 행에서만 원 자성을 지원합니다. 트랜잭션이 없습니다.
  • Bigtable에서는 돌연변이 및 삭제가 원 자성이 아닌 것처럼 보이지만 Datastore는 읽기 / 쿼리 방법에 따라 최종적이고 강력한 일관성을 제공합니다.
  • 청구 모델은 매우 다릅니다.
    • 읽기 / 쓰기 작업, 스토리지 및 대역폭에 대한 데이터 스토어 요금
    • Bigtable을 요금 에 대한 '노드' , 스토리지 및 대역폭

Bigtable은 대량의 데이터 및 분석에 최적화

  • Cloud Bigtable 은 영역 또는 지역에 걸쳐 데이터를 복제하지 않습니다 (단일 클러스터 내의 데이터가 복제되고 내구성이 있음). 이는 Bigtable이 더 빠르고 효율적이며 비용이 훨씬 저렴하지만 기본 구성에서는 내구성이 떨어지고 사용 가능합니다.
  • 그것은 HBase API를 사용합니다 -학습이나 새로운 패러다임의 위험이 없습니다
  • 오픈 소스 Big Data 도구와 통합되어있어 고객이 사용하는 대부분의 분석 도구 (Hadoop, Spark 등)에서 Bigtable에 저장된 데이터를 분석 할 수 있습니다.
  • Bigtable은 단일 행 키로 색인화됩니다
  • Bigtable은 단일 영역에 있습니다

Cloud Bigtable은 복잡한 백엔드 워크로드로 더 많은 데이터가 필요한 대기업 및 기업을 위해 설계되었습니다.

데이터 스토어는 애플리케이션에 고가의 트랜잭션 데이터를 제공하도록 최적화되었습니다

  • Cloud Datastore 는 복제 및 데이터 동기화로 매우 높은 가용성을 제공합니다
  • 다목적 성과 고 가용성으로 인해 데이터 저장소가 더 비쌉니다.
  • 동기 복제로 인해 데이터 저장 속도가 느려진다
  • 데이터 저장소는 트랜잭션 및 쿼리와 관련하여 훨씬 나은 기능을 제공합니다 (보조 인덱스가 존재하기 때문에)

Bigtable과 Datastore는 매우 다릅니다. 예, 데이터 스토어는 Bigtable을 기반으로 구축되었지만 그와 비슷한 것은 아닙니다. 그것은 자동차가 바퀴 위에 세워 졌다고 말하는 것과 같습니다. 따라서 자동차는 바퀴와 크게 다르지 않습니다.

Bigtable과 Datastore는 데이터 변경 방식에서 매우 다른 데이터 모델과 매우 다른 의미를 제공합니다.

주요 차이점은 데이터 스토어가 엔티티 그룹으로 알려진 데이터 서브 세트에서 SQL 데이터베이스와 유사한 ACID 트랜잭션을 제공한다는 점입니다 (쿼리 언어 GQL이 SQL보다 훨씬 제한적 임). Bigtable은 엄격히 NoSQL이며 훨씬 약한 보증이 제공됩니다.


논문을 읽으면 BigTable은 이것 이고 Datastore는 MegaStore 입니다. 데이터 스토어는 BigTable과 복제, 트랜잭션 및 인덱스입니다. (그리고 훨씬 비싸다).


위의 모든 답변과 Coursea Google Cloud Platform 빅 데이터 및 기계 학습 기본 사항에 제공된 답변을 요약하려고합니다.

+---------------------+------------------------------------------------------------------+------------------------------------------+--+
|      Category       |                             BigTable                             |                Datastore                 |  |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
| Technology          | Based on HBase(uses HBase API)                                   | Uses BigTable itself                     |  |
| ----------------    |                                                                  |                                          |  |
| Access Mataphor     | Key/Value (column-families) like Hbase                           | Persistent hashmap                       |  |
| ----------------    |                                                                  |                                          |  |
| Read                | Scan Rows                                                        | Filter Objects on property               |  |
| ----------------    |                                                                  |                                          |  |
| Write               | Put Row                                                          | Put Object                               |  |
| ----------------    |                                                                  |                                          |  |
| Update Granularity  | can't update row ( you should write a new row, can't update one) | can update attribute                     |  |
| ----------------    |                                                                  |                                          |  |
| Capacity            | Petabytes                                                        | Terbytes                                 |  |
| ----------------    |                                                                  |                                          |  |
| Index               | Index key only (you should properly design the key)              | You can index any property of the object |  |
| Usage and use cases | High throughput, scalable flatten data                           | Structured data for Google App Engine    |  |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+

이 이미지도 확인하십시오 : enter image description here

enter image description here


A relatively minor point to consider, as of November 2016, bigtable python client library is still in Alpha, which means the future change might not be backward compatible. Also, bigtable python library is not compatible with App Engine's standard environment. You have to use the flexible one.


I just found this useful analogy buried in the length page about eventual consistency in the Datastore documentation (emphasis mine):

One practice is to combine Cloud Datastore and BigQuery to fulfill different business requirements. Use Cloud Datastore for online transactional processing (OLTP) required for core application logic and use BigQuery for online analytical processing (OLAP) for backend operations. It may be necessary to implement a continuous data export flow from Cloud Datastore to BigQuery to move the data necessary for those queries.

참고URL : https://stackoverflow.com/questions/30085326/google-cloud-bigtable-vs-google-cloud-datastore

반응형