We all know about different types of Databases. Just highlighting them to start off the topic.
Relational DB:
- Fixed table schema and relations (primary and foreign key)
- Strong transactional capability
- Update all table data in one transaction and commit
- Failure of one, implies rollback in all.
- Since its strong in transactions, Relational DB is preferred for OLTP (Online transaction processing) systems like banking.
- Lots of transactions (large number of users and small transactions per user)
- Data is stored in row storage
- In Google Cloud we have
- Cloud SQL
- Supports MySQL, SQL server and PostgreSQL
- Regional Database
- Multi zone for High availability
- Can't create Global Cloud SQL DB
- Data upto a few TB
- Fully managed (replication, patch management, DB management etc)
- Public IP provided to connect to the DB
- Cloud shell option also provided in console (gcloud sql command)
- Enable Cloud SQL Admin API as a pre-requisite
- Cloud Spanner
- Unlimited scale
- Horizontal scaling
- High availability
- Global applications (Globally consistent)
- Fully managed
- Multi region
- Option to add compute capacity when being configured
- 1 node = 1000 processing units
- Compute cost is the hourly cost charge for nodes or processing units.
- Storage cost is separate and billed per GB per month
- Min 100 processing units or 1 node
- Can be used for Analytics as well (OLAP - Online Analytics Processing)
- Used to analyze huge amount of data
- Reporting, data warehouse
- Uses columnar storage (not row) [High compression]
- Since data is stored via columns, it can be distributed
- Queries can run over multiple nodes (efficient execution for complex queries)
- GCP Managed service is BigQuery
NO SQL DB: (Not only SQL)
- Flexible schema
- Scales horizontally
- Highly scalable
- High performance
- GCP managed No SQL service:
- Cloud Firestore (Data store)
- Serverless
- Document DB
- Can run SQL like queries
- Used for high transactions
- Mobile and web applications
- Small to medium DB (few TB)
- BigTable
- Scalable
- Wide column DB
- Not serverless
- Data size > 10TB
- Does not support multi row transaction. Supports only single row.
- Not to be used for transactional applications
In Memory Database
- Faster to retrieve data since data is not on the disk
- Low latency (microseconds)
- Persistent data stored in memory
- Use for caching or session management
- GCP service is Managed Store
No comments:
Post a Comment