web-dev-qa-db-ja.com

Google Cloud BigtableとGoogle Cloud Datastore

Google Cloud Bigtable とGoogle Cloud Datastore/App Engineデータストアの違いは何ですか?また、主な実用的な利点/欠点は何ですか? AFAIK Cloud DatastoreはBigtableの上に構築されています。

106
Andrei F

Datastoreの経験とBigtable docs の読み取りに基づいた主な違いは次のとおりです。

  • BigtableはHBaseとの互換性のために設計されているようですが、DatastoreはPython/Java/Goウェブアプリ開発者(元はApp Engine)向けです。
  • Bigtableは、データストアよりも「少しだけIaaS」であり、「ただそこにある」のではなく、クラスターが configured である必要があります。
  • Bigtableは1つのインデックスのみをサポートします-「行キー」(データストアのエンティティキー)
    • これは、データストアのインデックス付きプロパティとは異なり、クエリがキーにあることを意味します
  • Bigtableは単一行でのみ原子性をサポートします-トランザクションはありません
  • 突然変異と削除はBigtableではアトミックではないように見えますが、Datastoreは読み取り/クエリ方法に応じて、最終的かつ強力な一貫性を提供します
  • 請求モデルは大きく異なります:
    • 読み取り/書き込み操作、ストレージ、帯域幅のデータストア料金
    • Bigtable 料金 for 'nodes'、ストレージおよび帯域幅
88
tx802

Bigtableは大量のデータと分析用に最適化されています

  • Cloud Bigtable ゾーンまたはリージョン間でデータをレプリケートしません(単一クラスター内のデータはレプリケートされて耐久性があります)。つまり、Bigtableはより高速で効率的であり、コストははるかに低くなりますが、耐久性は低くなりますデフォルト設定で利用可能
  • HBase APIを使用します-ロックインや新しいパラダイムを学習するリスクはありません
  • オープンソースのビッグデータツールと統合されているため、顧客が使用するほとんどの分析ツール(Hadoop、Sparkなど)でBigtableに保存されているデータを分析できます。
  • Bigtableは単一の行キーでインデックス付けされます
  • Bigtableは単一のゾーンにあります

Cloud Bigtableは、大企業や、複雑なバックエンドワークロードを必要とする大規模なデータニーズを抱える企業向けに設計されています。

データストアは、価値の高いトランザクションデータをアプリケーションに提供するように最適化されています

  • Cloud Datastore レプリケーションとデータ同期により非常に高い可用性を実現
  • データストアは、その汎用性と高可用性のため、より高価です
  • データストアは同期レプリケーションのためにデータの書き込みが遅くなります
  • データストアには、トランザクションとクエリに関する機能がはるかに優れています(セカンダリインデックスが存在するため)

BigtableとDatastoreは大きく異なります。はい、データストアはBigtableの上に構築されていますが、そのようなものにはなりません。それは車が車輪の上に構築されていると言っているようなもので、車は車輪とそれほど違いはありません。

BigtableとDatastoreは、非常に異なるデータモデルと、データの変更方法における非常に異なるセマンティクスを提供します。

主な違いは、データストアがエンティティグループと呼ばれるデータのサブセットでSQLデータベースのようなACIDトランザクションを提供することです(ただし、クエリ言語GQLはSQLよりもはるかに制限的です)。 Bigtableは厳密にNoSQLであり、はるかに弱い保証が付いています。

18
user2771609

論文を読む場合、BigTableは this であり、Datastoreは MegaStore です。データストアは、BigTableとレプリケーション、トランザクション、およびインデックスです。 (そして、はるかに高価です)。

8
Justin Zhang

上記のすべての答えに加えて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

3
Adelin

2016年11月現在、考慮すべき比較的マイナーな点は、bigtable python client library はまだAlphaであり、将来の変更には後方互換性がない可能性があることを意味します。また、bigtable pythonライブラリはApp Engineの標準環境と互換性がありません。柔軟なものを使用する必要があります。

2
YSC