Was ist der Unterschied zwischen Google Cloud Bigtable und Google Cloud Datastore / App Engine-Datenspeicher und was sind die wichtigsten praktischen Vor- und Nachteile? Der AFAIK Cloud Datastore basiert auf Bigtable.
Was ist der Unterschied zwischen Google Cloud Bigtable und Google Cloud Datastore / App Engine-Datenspeicher und was sind die wichtigsten praktischen Vor- und Nachteile? Der AFAIK Cloud Datastore basiert auf Bigtable.
Antworten:
Basierend auf den Erfahrungen mit Datastore und dem Lesen der Bigtable- Dokumente sind die Hauptunterschiede:
Cloud Bigtable wurde für größere Unternehmen und Unternehmen entwickelt, die häufig einen größeren Datenbedarf mit komplexen Backend-Workloads haben.
Bigtable und Datastore sind sehr unterschiedlich. Ja, der Datenspeicher baut auf Bigtable auf, aber das macht ihn nicht so. Das ist so, als würde man sagen, dass ein Auto auf Rädern gebaut ist, und ein Auto unterscheidet sich also nicht wesentlich von Rädern.
Bigtable und Datastore bieten sehr unterschiedliche Datenmodelle und eine sehr unterschiedliche Semantik bei der Änderung der Daten.
Der Hauptunterschied besteht darin, dass der Datenspeicher SQL-datenbankähnliche ACID-Transaktionen für Teilmengen der Daten bereitstellt, die als Entitätsgruppen bezeichnet werden (obwohl die Abfragesprache GQL viel restriktiver ist als SQL). Bigtable ist ausschließlich NoSQL und bietet viel schwächere Garantien.
Wenn Sie Artikel lesen, ist BigTable dies und Datastore ist MegaStore . Der Datenspeicher ist BigTable plus Replikation, Transaktion und Index. (und ist viel teurer).
Ich werde versuchen, alle oben genannten Antworten sowie die in Coursea Google Cloud Platform enthaltenen Grundlagen zu Big Data und maschinellem Lernen zusammenzufassen
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
| 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 | |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
Ein relativ kleiner Punkt, der berücksichtigt werden muss: Ab November 2016 befindet sich die bigtable Python-Client- Bibliothek noch in Alpha, was bedeutet, dass die zukünftige Änderung möglicherweise nicht abwärtskompatibel ist. Außerdem ist die bigtable Python-Bibliothek nicht mit der Standardumgebung von App Engine kompatibel. Sie müssen die flexible verwenden.
Dies kann ein weiterer wesentlicher Unterschied zwischen Google Cloud Bigtable und Google Cloud Datastore sowie anderen Diensten sein. Der in der Abbildung unten gezeigte Inhalt kann Ihnen auch bei der Auswahl des richtigen Dienstes helfen.
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.
Der Datenspeicher ist anwendungsfähiger und für eine Vielzahl von Diensten geeignet, insbesondere für Microservices.
Die zugrunde liegende Technologie von Datastore ist Big Table. Sie können sich also vorstellen, dass Big Table leistungsfähiger ist.
Der Datenspeicher wird mit 20.000 freiem Betrieb pro Tag geliefert. Sie können davon ausgehen, dass Sie einen Server mit zuverlässiger Datenbank mit NULL Kosten hosten.
Sie können sich auch diese ORM-Bibliothek für Datenspeicher ansehen. Sie enthält viele großartige Funktionen: https://www.npmjs.com/package/ts-datastore-orm