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.
D'après l'expérience acquise avec Datastore et la lecture de Bigtable docs , les principales différences sont les suivantes:
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.
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.
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 | |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
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.