web-dev-qa-db-fra.com

Google Cloud Bigtable et Google Cloud Datastore

Quelle est la différence entre Google Cloud Bigtable et le magasin de données Google Cloud Datastore/App Engine, et quels sont les principaux avantages/inconvénients pratiques? AFAIK Cloud Datastore est construit sur Bigtable.

106
Andrei F

D'après l'expérience acquise avec Datastore et la lecture de Bigtable docs , les principales différences sont les suivantes:

  • Bigtable semble être conçu pour la compatibilité HBase, alors que Datastore est davantage destiné aux développeurs d'applications Web Python/Java/Go (à l'origine, App Engine).
  • Bigtable est "un peu plus IaaS" que Datastore en ce sens qu'il n'est pas "juste là" mais nécessite un cluster configuré .
  • Bigtable ne supporte qu'un seul index - la 'clé de ligne' (la clé d'entité dans le magasin de données)
    • Cela signifie que les requêtes sont sur la clé, contrairement aux propriétés indexées de Datastore
  • Bigtable ne prend en charge l'atomicité que sur une seule ligne - il n'y a pas de transaction
  • Les mutations et les suppressions ne semblent pas être atomiques dans Bigtable, alors que Datastore fournit une cohérence forte et éventuelle en fonction de la méthode de lecture/requête.
  • Le modèle de facturation est très différent:
    • Frais de banque de données pour les opérations de lecture/écriture, le stockage et la bande passante
    • Bigtable frais pour 'nœuds' , stockage et bande passante
88
tx802

Bigtable est optimisé pour les gros volumes de données et d'analyse

  • Cloud Bigtable ne réplique pas les données sur des zones ou des régions (les données d'un cluster sont répliquées et durables), ce qui signifie que Bigtable est plus rapide et plus efficace, et que les coûts sont beaucoup moins élevés, mais moins durables. et disponible dans la configuration par défaut
  • Il utilise l’API HBase - il n’ya aucun risque de blocage ou de nouveaux paradigmes à apprendre.
  • Il est intégré aux outils Big Data open source, ce qui vous permet d'analyser les données stockées dans Bigtable dans la plupart des outils d'analyse utilisés par les clients (Hadoop, Spark, etc.).
  • Bigtable est indexé par une seule clé de ligne
  • Bigtable est dans une seule zone

Cloud Bigtable est conçu pour les grandes entreprises et les entreprises qui ont souvent des besoins de données plus importants avec des charges de travail dorsales complexes.

Le magasin de données est optimisé pour fournir des données transactionnelles de grande valeur aux applications

  • Cloud Datastore est extrêmement disponible avec réplication et synchronisation de données
  • Le magasin de données, en raison de sa polyvalence et de sa haute disponibilité, coûte plus cher
  • Le magasin de données ralentit l'écriture des données en raison de la réplication synchrone
  • Le magasin de données dispose de bien meilleures fonctionnalités autour des transactions et des requêtes (car des index secondaires existent)

Bigtable et Datastore sont extrêmement différents. Oui, le magasin de données est construit sur Bigtable, mais cela ne lui ressemble pas du tout. C'est un peu comme dire qu'une voiture est construite sur des roues, alors une voiture n'est pas très différente des roues.

Bigtable et Datastore fournissent des modèles de données très différents et une sémantique très différente quant à la façon dont les données sont modifiées.

La principale différence est que le magasin de données fournit des transactions ACID de type base de données SQL sur des sous-ensembles de données appelés groupes d'entités (bien que le langage de requête GQL soit beaucoup plus restrictif que SQL). Bigtable est strictement NoSQL et vient avec des garanties beaucoup plus faibles.

18
user2771609

Si vous lisez des articles, BigTable est this et Datastore est MegaStore . Le magasin de données est BigTable plus la réplication, la transaction et l'index. (et est beaucoup plus cher).

8
Justin Zhang

Je vais essayer de résumer toutes les réponses ci-dessus ainsi que ce qui est donné dans Coursea Principes de base de la plateforme de cloud computing Google et de l’apprentissage automatique

+---------------------+------------------------------------------------------------------+------------------------------------------+--+
|      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    |  |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+

Vérifiez aussi cette image: enter image description here

enter image description here

3
Adelin

Un point relativement mineur à prendre en compte, à compter de novembre 2016, bigtable python client bibliothèque est toujours en alpha, ce qui signifie que les modifications à venir pourraient ne pas être compatibles avec les versions antérieures. bigtable python n'est pas compatible avec l'environnement standard d'App Engine. Vous devez utiliser le flexible.

2
YSC