Google Cloud Bigtable 과 Google Cloud Datastore / App Engine 데이터 저장소 의 차이점은 무엇이며 실질적인 주요 장점 / 단점은 무엇인가요? AFAIK Cloud Datastore는 Bigtable을 기반으로 빌드되었습니다.
답변
Datastore 사용 경험과 Bigtable 문서 읽기를 기반으로 할 때 주요 차이점은 다음과 같습니다.
- Bigtable은 원래 HBase 호환성을 위해 설계되었지만 이제는 여러 언어로 된 클라이언트 라이브러리가 있습니다 . Datastore는 원래 Python / 자바 / Go 웹 앱 개발자 (원래 App Engine)에 더 적합했습니다.
- Bigtable은 ‘그냥 거기’가 아니라 클러스터를 구성 해야한다는 점에서 Datastore보다 ‘조금 더 IaaS’ 입니다.
- Bigtable은 ‘row key'(Datastore의 항목 키)라는 하나의 색인 만 지원합니다.
- 즉, Datastore의 색인이 생성 된 속성과 달리 쿼리가 키에 있음을 의미합니다.
- Bigtable은 단일 행에서만 원 자성을 지원합니다. 트랜잭션이 없습니다.
- Bigtable에서는 변형 및 삭제가 원 자성이 아닌 것으로 보이지만 Datastore는 읽기 / 쿼리 방법에 따라 최종적이고 강력한 일관성을 제공합니다.
- 청구 모델은 매우 다릅니다.
- 읽기 / 쓰기 작업, 스토리지 및 대역폭에 대한 데이터 스토어 요금
- ‘노드’ , 스토리지 및 대역폭에 대한 Bigtable 요금
답변
Bigtable은 대량의 데이터 및 분석에 최적화되어 있습니다.
- Cloud Bigtable 은 영역 또는 지역간에 데이터를 복제하지 않습니다 (단일 클러스터 내의 데이터는 복제되고 내구성이 있음). 즉, Bigtable이 더 빠르고 효율적이며 비용이 훨씬 낮지 만 내구성이 떨어지고 기본 구성에서 사용할 수 있음을 의미합니다.
- HBase API를 사용합니다. 학습에 종속되거나 새로운 패러다임의 위험이 없습니다.
- 오픈 소스 빅 데이터 도구와 통합되어 고객이 사용하는 대부분의 분석 도구 (Hadoop, Spark 등)에서 Bigtable에 저장된 데이터를 분석 할 수 있습니다.
- Bigtable은 단일 행 키로 인덱싱됩니다.
- Bigtable은 단일 영역에 있습니다.
Cloud Bigtable은 복잡한 백엔드 워크로드와 함께 더 큰 데이터가 필요한 경우가 많은 대기업 및 대기업을 위해 설계되었습니다.
Datastore는 애플리케이션에 고 가치 트랜잭션 데이터를 제공하도록 최적화되었습니다.
- Cloud Datastore 는 복제 및 데이터 동기화를 통해 매우 높은 가용성을 제공합니다.
- 다용 성과 고 가용성으로 인해 데이터 저장소가 더 비쌉니다.
- 데이터 저장소는 동기식 복제로 인해 데이터 쓰기 속도가 느립니다.
- Datastore는 트랜잭션 및 쿼리에 대해 훨씬 더 나은 기능을 제공합니다 (보조 색인이 존재하므로).
답변
Bigtable과 Datastore는 매우 다릅니다. 예, 데이터 저장소는 Bigtable을 기반으로 구축되었지만 그와 비슷한 것은 아닙니다. 그것은 마치 자동차가 바퀴 위에 만들어 졌다고 말하는 것과 같습니다. 그래서 자동차는 바퀴와 크게 다르지 않습니다.
Bigtable과 Datastore는 데이터가 변경되는 방식에서 매우 다른 데이터 모델과 의미 체계를 제공합니다.
가장 큰 차이점은 Datastore가 항목 그룹으로 알려진 데이터의 하위 집합에 SQL 데이터베이스와 유사한 ACID 트랜잭션을 제공한다는 것입니다 (쿼리 언어 GQL은 SQL보다 훨씬 더 제한적 임). Bigtable은 엄격히 NoSQL이며 훨씬 더 약한 보증을 제공합니다.
답변
논문을 읽으면 BigTable은 이것 이고 Datastore는 MegaStore 입니다. Datastore는 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 | |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
답변
고려할 상대적으로 사소한 점은 2016 년 11 월부터 bigtable python 클라이언트 라이브러리 가 여전히 알파 버전이므로 향후 변경 사항이 이전 버전과 호환되지 않을 수 있음을 의미합니다. 또한 bigtable python 라이브러리는 App Engine의 표준 환경과 호환되지 않습니다. 유연한 것을 사용해야합니다.