Google Cloud Databases
Google Cloud SQL is a managed database service that is compatible with SQL, MySQL and PostgreSQL and can connect to almost any application. This service provides automatic data backup, replication and failover.
Key features include:
- Fully managed deployment and maintenance of the database engine
- Automatic data encryption
- Able to run on a private network for enhanced security
- Supports Java, Python, Ruby, PHP, Node.js and Go
- Integrates with BigQuery for big data analytics
Designed for online transaction processing, this service is based on a SQL dialect used internally by Google, with a high level of SQL semantics support and transactional consistency. It has built-in scale-out capabilities, supports distributed SQL queries and resumes queries in case of error. The service uses TrueTime, a Google Cloud clock synchronization service that combines atomic clock and GPS technology.
Google Cloud Bigtable
A distributed column data store that can process large amounts of structured data. Bigtable is designed to support applications that require massive scalability—up to petabytes of data. It uses a simple data model that Google refers to as a multidimensional sorted graph. The data is sorted by row key, and the mapping index is sorted by row, column key and timestamp. A compression algorithm helps BigTable store very large data volumes at low cost.
Google Cloud Firestore
Cloud Firestore offers a scalable cloud-based version of Firestore. The database is hosted on Google Cloud Platform (GCP), providing a flexible solution for server, mobile, and web development. Cloud Firestore syncs data across client applications using realtime listeners.
Google Cloud Firestore offers offline support for web and mobile applications, ensuring responsive design regardless of Internet connectivity and network latency. It integrates seamlessly with GCP and Firebase products.
Here are key features of Cloud Firestore:
- Hierarchical and flexible data structures—data is stored in documents, which are organized into collections. You can also add subcollections with complex nested objects.
- Queries can retrieve individual documents or all documents in a collection—and the collection should match query parameters.
- Data synchronization for updating data—located on any connected device.
- Data caching—for data the application is actively using. This enables the app to read, write, query, and listen to data even when devices are offline. Once the device is back online, the system synchronizes all local changes with Cloud Firestore.
Firebase Realtime Database
A cloud-hosted NoSQL database that allows you to store and synchronize data between users in real time. Data is synchronized between all clients and is available even when the application is offline.
Key features include:
- Uses data synchronization instead of regular HTTP requests. Whenever data changes, the connected device receives an update within a few milliseconds
- Accessible directly from mobile devices or web browsers, with no need for an application server
- Security and data validation through security rules—expression-based rules that are executed when reading or writing data from the database
- SDK commands for persisting data to disk, so the Firebase app can continue to respond even when offline
This service comes in two flavors: Memorystore for Redis and Memcached.
- Memorystore for Redis – A fully managed service that uses a Redis in-memory data storage to cache application data. Redis is an open source database with very low latency in the sub-millisecond level.
- Memorystore for Memcached – A highly scalable, fully managed Memcached service. It is based on the open source Memcached and complies with binary and ASCII protocols. It can be accessed from any programming language using the standard Memcached client library, making it easy to change and migrate existing applications without any code changes.
A data warehouse service based on a serverless architecture, which lets you ingest and analyze very large volumes of data using a syntax similar to SQL. The service provides several variants:
- BigQuery ML—builds and deploys machine learning models
- BigQuery BI Engine—analyzes complex datasets
- BigQuery GIS—provides fast geospatial analysis
BigQuery is priced based on data storage and queries performed, with a choice between pay-per-use and flat pricing.
In this article I covered several managed database services provided by Google Cloud, which address different usage scenarios:
- Google Cloud SQL—offering managed MySQL, PostgreSQL, and Microsoft SQL Server
- Cloud Spanner—massively scalable transactional SQL database
- Bigtable—distributed columnar data store
- Cloud Firestore and Firebase Realtime Database—database services built for web and mobile applications
- Cloud Memorystore—caching service with very low latency
- BigQuery—managed data warehouse
I hope this review will help you understand Google’s database offering and select the services that will provide most value for your organization.