Qual è la differenza tra Google Cloud Bigtable e il datastore di Google Cloud Datastore / App Engine e quali sono i principali vantaggi / svantaggi pratici? AFAIK Cloud Datastore è basato su Bigtable.
Qual è la differenza tra Google Cloud Bigtable e il datastore di Google Cloud Datastore / App Engine e quali sono i principali vantaggi / svantaggi pratici? AFAIK Cloud Datastore è basato su Bigtable.
Risposte:
In base all'esperienza con Datastore e alla lettura dei documenti di Bigtable , le principali differenze sono:
Cloud Bigtable è progettato per le aziende e le imprese più grandi che spesso hanno esigenze di dati più ampie con carichi di lavoro back-end complessi.
Bigtable e Datastore sono estremamente diversi. Sì, il datastore è costruito su Bigtable, ma questo non lo rende affatto simile. È un po 'come dire che un'auto è costruita sopra le ruote, quindi un'auto non è molto diversa dalle ruote.
Bigtable e Datastore forniscono modelli di dati molto diversi e semantica molto diversa nel modo in cui i dati vengono modificati.
La differenza principale è che il Datastore fornisce transazioni ACID simili a database SQL su sottoinsiemi di dati noti come gruppi di entità (sebbene il linguaggio di query GQL sia molto più restrittivo di SQL). Bigtable è rigorosamente NoSQL e viene fornito con garanzie molto più deboli.
Se leggi documenti, BigTable è questo e Datastore è MegaStore . Datastore è BigTable più replica, transazione e indice. (ed è molto più costoso).
Proverò a riepilogare tutte le risposte sopra più quanto viene fornito in Coursea 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 | |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
Un punto relativamente minore da considerare, a partire da novembre 2016, la libreria client bigtable python è ancora in Alpha, il che significa che la futura modifica potrebbe non essere compatibile con le versioni precedenti. Inoltre, la libreria bigtable python non è compatibile con l'ambiente standard di App Engine. Devi usare quello flessibile.
Questo potrebbe essere un altro insieme di differenze chiave tra Google Cloud Bigtable e Google Cloud Datastore insieme ad altri servizi. I contenuti mostrati nell'immagine qui sotto possono anche aiutarti nella scelta del servizio giusto.
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 è più pronto per le applicazioni e adatto a un'ampia gamma di servizi, in particolare per i microservizi.
La tecnologia alla base di Datastore è Big Table, quindi puoi immaginare che Big Table sia più potente.
Datastore viene fornito con 20.000 operazioni gratuite al giorno, puoi aspettarti di ospitare un server con DB affidabile a costo ZERO.
Puoi anche controllare questa libreria ORM Datastore, viene fornita con molte ottime funzionalità https://www.npmjs.com/package/ts-datastore-orm