Google Cloud Bigtable 과 Google Cloud Datastore / App Engine 데이터 저장소 의 차이점은 무엇이며 실질적인 주요 장점 / 단점은 무엇인가요? AFAIK Cloud Datastore는 Bigtable을 기반으로 빌드되었습니다.
Google Cloud Bigtable 과 Google Cloud Datastore / App Engine 데이터 저장소 의 차이점은 무엇이며 실질적인 주요 장점 / 단점은 무엇인가요? AFAIK Cloud Datastore는 Bigtable을 기반으로 빌드되었습니다.
답변:
Datastore 사용 경험과 Bigtable 문서 읽기를 기반으로 할 때 주요 차이점은 다음과 같습니다.
Cloud Bigtable은 복잡한 백엔드 워크로드와 함께 더 큰 데이터가 필요한 경우가 많은 대기업 및 대기업을 위해 설계되었습니다.
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의 표준 환경과 호환되지 않습니다. 유연한 것을 사용해야합니다.
Cloud Datastore is a highly-scalable NoSQL database for your applications.
Like Cloud Bigtable, there is no need for you to provision database instances.
Cloud Datastore uses a distributed architecture to automatically manage
scaling. Your queries scale with the size of your result set, not the size of your
data set.
Cloud Datastore runs in Google data centers, which use redundancy to
minimize impact from points of failure. Your application can still use Cloud
Datastore when the service receives a planned upgrade.
Choose Bigtable if the data is:
Big
● Large quantities (>1 TB) of semi-structured or structured data
Fast
● Data is high throughput or rapidly changing
NoSQL
● Transactions, strong relational semantics not required
And especially if it is:
Time series
● Data is time-series or has natural semantic ordering
Big data
● You run asynchronous batch or real-time processing on the data
Machine learning
● You run machine learning algorithms on the data
Bigtable is designed to handle massive workloads at consistent low latency
and high throughput, so it's a great choice for both operational and analytical
applications, including IoT, user analytics, and financial data analysis.
Datastore는 더 많은 애플리케이션 준비가되어 있으며 특히 마이크로 서비스를위한 광범위한 서비스에 적합합니다.
Datastore의 기본 기술은 Big Table이므로 Big Table이 더 강력하다고 상상할 수 있습니다.
데이터 스토어는 매일 20K 무료로 운영되며, 비용이 전혀 들지 않는 안정적인 DB로 서버를 호스팅 할 수 있습니다.
이 Datastore ORM 라이브러리를 확인할 수도 있으며 https://www.npmjs.com/package/ts-datastore-orm에 많은 훌륭한 기능이 제공됩니다.