¿Cuál es la diferencia entre Google Cloud Bigtable y el almacén de datos de Google Cloud Datastore / App Engine, y cuáles son las principales ventajas / desventajas prácticas? AFAIK Cloud Datastore está construido sobre Bigtable.
¿Cuál es la diferencia entre Google Cloud Bigtable y el almacén de datos de Google Cloud Datastore / App Engine, y cuáles son las principales ventajas / desventajas prácticas? AFAIK Cloud Datastore está construido sobre Bigtable.
Respuestas:
Según la experiencia con Datastore y la lectura de los documentos de Bigtable , las principales diferencias son:
Cloud Bigtable está diseñado para grandes empresas y empresas que a menudo tienen mayores necesidades de datos con cargas de trabajo de back-end complejas.
Bigtable y Datastore son extremadamente diferentes. Sí, el almacén de datos está construido sobre Bigtable, pero eso no lo convierte en algo así. Eso es como decir que un automóvil está construido sobre ruedas, por lo que un automóvil no es muy diferente de las ruedas.
Bigtable y Datastore proporcionan modelos de datos muy diferentes y una semántica muy diferente en cómo se modifican los datos.
La principal diferencia es que el Almacén de datos proporciona transacciones ACID similares a las de una base de datos SQL en subconjuntos de datos conocidos como grupos de entidades (aunque el lenguaje de consulta GQL es mucho más restrictivo que SQL). Bigtable es estrictamente NoSQL y viene con garantías mucho más débiles.
Si lees documentos, BigTable es esto y Datastore es MegaStore . El almacén de datos es BigTable más replicación, transacción e índice. (Y es mucho más caro).
Voy a tratar de resumir todas las respuestas anteriores más lo que se ofrece en Coursea Google Cloud Platform Big Data y 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 menor a tener en cuenta, a partir de noviembre de 2016, la biblioteca cliente de bigtable python todavía está en Alpha, lo que significa que el cambio futuro podría no ser compatible con versiones anteriores. Además, la biblioteca de python bigtable no es compatible con el entorno estándar de App Engine. Tienes que usar el flexible.
Este podría ser otro conjunto de diferencias clave entre Google Cloud Bigtable y Google Cloud Datastore junto con otros servicios. El contenido que se muestra en la imagen a continuación también puede ayudarlo a seleccionar el servicio adecuado.
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.
El almacén de datos está más preparado para la aplicación y es adecuado para una amplia gama de servicios, especialmente para microservicios.
La tecnología subyacente de Datastore es Big Table, por lo que puedes imaginar que Big Table es más poderosa.
El almacén de datos viene con una operación gratuita de 20K por día, puede esperar alojar un servidor con una base de datos confiable con un costo CERO.
También puede consultar esta biblioteca ORM de Datastore, viene con una gran cantidad de excelentes características https://www.npmjs.com/package/ts-datastore-orm