Cloud Datastore is a database platform from Google which is used directly from applications using API calls – typically the Google App Engine.
Data is replicated across multiple data centers and queries scale with the size of the result – basically it doesnt slow down even if there is extreme volumes of date in the database.
Cloud Datastore is now a strongly consistent product which can be replicated to regional or multi-regional configurations.
When would you use Cloud Datastore
- Scheme can be changed
- Database is adaptable
- Can scale down to zero
- Fairly cheap – first 1gb is free
- Fully transactional DB
|Concept||Cloud Datastore||Cloud Firestore||Relational database|
|Category of object||Kind||Collection group||Table|
|Individual data for an object||Property||Field||Column|
|Unique ID for an object||Key||Document ID||Primary key|
- Cloud Datastore is designed to automatically scale to very large data sets, allowing applications to maintain high performance as they receive more traffic:
- Cloud Datastore writes scale by automatically distributing data as necessary.
- Cloud Datastore reads scale because the only queries supported are those whose performance scales with the size of the result set (as opposed to the data set). This means that a query whose result set contains 100 entities performs the same whether it searches over a hundred entities or a million. This property is the key reason some types of queries are not supported.
- Because all queries are served by previously built indexes, the types of queries that can be executed are more restrictive than those allowed on a relational database with SQL. In particular, Cloud Datastore does not include support for join operations, inequality filtering on multiple properties, or filtering on data based on results of a subquery.
- Unlike traditional relational databases which enforce a schema, Cloud Datastore is schemaless. It doesn’t require entities of the same kind to have a consistent set of properties (although you can choose to enforce such a requirement in your own application code).