as an application developer, database applications are already extensive. You may have used relational data, such as MySQL, PostgreSQL, or you might have used document storage, such as MongoDB, or Key-value databases, such as Redis. Each database has its merits, and perhaps you are considering using a distributed database, such as Cassandra, to solve the work you have on hand.
The use of these data products is not to replace the original data products, but to provide more choices for different scenarios. NoSQL stands for: Choose the right solution to handle the right business scenario.
In the course "Cassandra Basic Introduction", we will discuss the main reasons for the transition from relational database to Cassandra, and the basic characteristics of Cassandra. At the end of this chapter, you should learn to:
RDBMS features
is RDBMS suitable for big data
The third paradigm is not extensible
Sharding is a nightmare.
High Availability: It's not real.
Summary of shortcomings
Course Summary
Let's start by introducing the relational database:
RDBMS is suitable for medium data and works well on a single machine, such as MySQL, PostgreSQL.
Good support for hundreds of concurrent users.
Good acid support
For big data, it is necessary to scale horizontally, and MySQL's master/slave mode will cause acid (A:Atomic NatureC:Consistency, I:isolation, D: persistence ) no longer exists
650) this.width=650; "Src=" Http://s4.51cto.com/wyfs02/M00/82/75/wKiom1dWIBOygJcKAAC2Xdz0QyU554.jpg-wh_500x0-wm_3 -wmp_4-s_95238039.jpg "title=" 1.jpg "alt=" Wkiom1dwiboygjckaac2xdz0qyu554.jpg-wh_50 "/>
Because of the complexity of the query and the need for the user to respond quickly, the user is impatient, causing the data to be designed in a reverse-normalized format.
The data is located in each of the Shard
Join and aggregation difficulties
Need to reverse-normalized
Queries need to use Shard rules or routes to hit Shard
Adding shard requires manual data migration
650) this.width=650; "Src=" Http://s1.51cto.com/wyfs02/M00/82/75/wKiom1dWI1OjpcYiAAWw5SxFsbE690.png-wh_500x0-wm_3 -wmp_4-s_3214550782.png "title=" 22.png "alt=" Wkiom1dwi1ojpcyiaaww5sxfsbe690.png-wh_50 "/>
Master is a single point of failure
Multiple data centers are not supported
650) this.width=650; "src=" Http://s2.51cto.com/wyfs02/M00/82/75/wKiom1dWI96ThaBEAAi75bldnz0024.png "title=" 3.png " alt= "Wkiom1dwi96thabeaai75bldnz0024.png"/>
Horizontal scaling is one thing that headaches
Acid is best in the local, there is a consistency problem with multiple machines
Re-sharding need to migrate data manually
Often reverse-normalized for performance needs
High availability complex, requires extra action
Now that the RDBMS has these drawbacks, we need to address them:
Strong consistency is unrealistic: So, give up his
Re-sharding is difficult: So, we need to do it automatically
Master Failover:so, we should not use Master/slave mode
Data distributed and aggregated no good:so, for real-time query performance, needs to be reversed-normalized to make the query always hit on 1 machines
This article is from the Java Architect's Road blog, so be sure to keep this source http://eric100.blog.51cto.com/2535573/1786815
Cassandra Basic Introduction (1)-relational database (RDBMS) Overview