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は、非常に異なるデータモデルと、データの変更方法における非常に異なるセマンティクスを提供します。
主な違いは、データストアがエンティティグループと呼ばれるデータのサブセットに対してSQLデータベースのようなACIDトランザクションを提供することです(ただし、クエリ言語GQLはSQLよりもはるかに制限的です)。Bigtableは厳密にはNoSQLであり、保証ははるかに弱いものです。
論文を読むと、BigTableはこれで、DatastoreはMegaStoreです。データストアはBigTableにレプリケーション、トランザクション、インデックスを加えたものです。(そしてはるかに高価です)。
上記のすべての回答に加えて、Coursera Google Cloud Platform Big Data and Machine Learning Fundamentalsでの回答を要約してみます。
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
| 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の方が強力であると想像できます。
データストアには1日あたり20Kの無料オペレーションが付属しており、コストがゼロで信頼性の高いDBを備えたサーバーをホストすることが期待できます。
このDatastore ORMライブラリをチェックアウトすることもできます。これには、多くの優れた機能が含まれてい ますhttps://www.npmjs.com/package/ts-datastore-orm