Upload
zuehlke
View
167
Download
0
Tags:
Embed Size (px)
Citation preview
NoSQL
Datenhaltung Gangnam Style
Dr. Stephan Volmer
Technology
Market
Big Data
non-relationalsimple interface
schema-free
distributed
eventually consistent
big data
open source
relaxed consistency
semi-structured data
easy replication
Key Value Stores
Document DatabasesGraph Databases
Wide Column Stores
Column Family StoresObject Databases
XML Databases Multi-Model Databases
Grid & Cloud Database SolutionsMulti-Value Databases
Triple Stores
HBase
Cassandra
SimpleDB CouchDB
MongoDB
Redis
Chordless
Riak
Neo4j
sones
InfoGrid
HyperGraphDB
InfiniteGraph
OrientDB
HyperTable
Cloudera
Dynamo
Hadoop
Membase
Voldemort
Tokyo Cabinet
Scalaris
Memcached
BerkeleyDB
Jena
Keyspace
FlockDB
RavenDB
Terracotta
LevelDB
BrightstarDB
Azure Table Storage
Aster Data
Parstream
BigTable
Vertica
•Retroperspektive
•Definition
•Verteilte Systeme
•Skalierungsmodelle
•Datenmodelle
•Fazit
Themenschwerpunkte
Retroperspektive
•Etymologie
•Definition
•Geschichte
© Zühlke 2013
Etymologie
NoSQL | Dr. Stephan Volmer 2. July 2013 Slide 8
Eric Evans
Software ArchitectThe OpenNMS Group
Debian DeveloperCassandra Committer
© Zühlke 2013
Definition
NoSQL | Dr. Stephan Volmer 2. July 2013 Slide 9
© Zühlke 2013
Geschichte
NoSQL | Dr. Stephan Volmer
SQL
2. July 2013 Slide 10
NoSQL
1970 1990 2000 20101980
Definition
Was haben relationaleDatenbanken so populär gemacht?
Investitionen
Standards
Garantien
Mehrwert
Was sind heute die größtenHerausforderungen für
relationale Datenbanken?
Daten!
VarietyVelocityVolume
Consistency
Scalabilty
Scale-Up
Scale-Out
ACID
BASE
© Zühlke 2013
ACID•Atomicity
•Consistency
•Isolation
•Durable
Haerder, T., Reuter, A.: Principles of transaction-oriented database recovery. ACM Computing Surveys 15 (4): 287–317, December 1983.
Garantien
NoSQL | Dr. Stephan Volmer
BASE•Basically Available
•Soft State
•Eventually Consistent
Vogels, W.: Eventually consistent. All Things Distributed Blog, December 2007. Available from http://www.allthingsdistributed.com/2007/12/eventually_consistent.html
2. July 2013 Slide 15
© Zühlke 2013
Neue Generation von Datenbanken
•Horizontal scalability
•Non-relational data model
•Relaxed consistency model
•Semi-structured data
•Simple data replication
•Simple interface
•Open source
NoSQL | Dr. Stephan Volmer 2. July 2013 Slide 16
Verteilte Systeme
•CAP Theorem
© Zühlke 2013
CAP Theorem
NoSQL | Dr. Stephan Volmer
A
P
CConsistency
Availability
Partition Tolerance
C
A
P2. July 2013 Slide 18
© Zühlke 2013
CAP Theorem
A
P
CC
A
NoSQL | Dr. Stephan Volmer
PSlide 192. July 2013 Slide 19
Ein verteiltes System kann zweibeliebige dieser Eigenschaften
gleichzeitig garantieren,
jedoch nicht alle drei!
© Zühlke 2013
P
C
A
CAP Theorem
NoSQL | Dr. Stephan Volmer
PA
CSQLOracle DB2
MySQLPostgres
Sybase
SQLite H2
SQL Server
NoSQLAster Data Greenplum Vertica
2. July 2013 Slide 21
© Zühlke 2013
CAP Theorem
NoSQL | Dr. Stephan Volmer
PA
P
A
C
NoSQLHyperTable
HBase
BigTable
TerraStore
Scalaris
MongoDB
MemcacheDB
Redis
BerkeleyDB
2. July 2013 Slide 22
© Zühlke 2013
A
CAP Theorem
NoSQL | Dr. Stephan Volmer
PA
C
CNoSQLVoldemort
Tokyo Cabinet
Dynamo
Cassandra CouchDB
Riak
SimpleDB
2. July 2013 Slide 23
Skalierungsmodelle
•Single Server / Server Cluster
•Sharding
•Master-Slave Replication
•Peer-to-Peer Replication
•Hybrid Sharding & Replication
© Zühlke 2013
Single Server / Server Cluster
NoSQL | Dr. Stephan Volmer 2. July 2013 Slide 25
© Zühlke 2013
Sharding
NoSQL | Dr. Stephan Volmer 2. July 2013 Slide 26
© Zühlke 2013
Master-Slave Replication
NoSQL | Dr. Stephan Volmer
Master
Slaves
2. July 2013 Slide 27
© Zühlke 2013
Peer-to-Peer Replication
NoSQL | Dr. Stephan Volmer
Peers
2. July 2013 Slide 28
© Zühlke 2013
Hybrid Sharding & Replication
NoSQL | Dr. Stephan Volmer
Peers
2. July 2013 Slide 29
•Key / Value Stores
•Document Stores
•Column Index Stores
•Column Family Stores
•Triple Stores
•Graph Databases
Datenmodelle
© Zühlke 2013
Konventionelle, relationale Datenbanken
NoSQL | Dr. Stephan Volmer
ID : 1Name : MichaelAge: 42
ID : 3Name : JoeAge: 28
ID : 2Name : ChristopherAge: 36
PersonId Name Age
1 Michael 42
3 Christopher 36
2 Joe 28
Index
2
3
1
2. July 2013 Slide 31
© Zühlke 2013
Person
Key / Value Stores
NoSQL | Dr. Stephan Volmer
ID : 1Name : MichaelAge: 42
ID : 3Name : JoeAge: 28
ID : 2Name : ChristopherAge: 36
Key Value
64ca4238 TWljaGFlbCwgNDI=
c81e728d Q2hyaXN0b3BoZXIsIDM2
eccbc87e Sm9lLCAyOA==
2. July 2013 Slide 32
© Zühlke 2013
Person
Document Stores
NoSQL | Dr. Stephan Volmer
ID : 1Name : MichaelAge: 42
ID : 3Name : JoeAge: 28
ID : 2Name : ChristopherAge: 36
Key Value
64ca4238 { “ID”:”1”, “Name”:”Michael”, “Age”:”42” }
c81e728d { “ID”:”3”, “Name”:”Joe”, “Age”:”28” }
eccbc87e { “ID”:”2”, “Name”:”Christopher”, “Age”:”36” }
2. July 2013 Slide 33
© Zühlke 2013
Column Index Stores
NoSQL | Dr. Stephan Volmer
ID : 1Name : MichaelAge: 42
ID : 3Name : JoeAge: 28
ID : 2Name : ChristopherAge: 36
PersonId
Name
Age
1 3 2Michael Joe Christopher
42 28 36
1 2 3Christopher Joe Michael
28 36 42
2. July 2013 Slide 34
© Zühlke 2013
Column Family Stores
NoSQL | Dr. Stephan Volmer
GamesPlayers
Goose Name:Michael, Age:42RedBird Name:ChristopherApollo Name:Joe, Age:28, Level:Ace
Matches
chess 2010-05-2015:10:23
2010-05-2317:37:59
Player1:Goose, Player2:Apollo, Winner:2
Player1:Apollo, State:SGVsbG8gV29yb…
tetris Player:RedBird, Score:8756
KeyspaceColumn Families
Column
Super Column
2. July 2013 Slide 35
Fazit
To SQL or to NoSQL?Das ist nicht die Frage!
NoSQL is not about any one feature of any of the projects. NoSQL is not about scaling, NoSQL is not about performance, NoSQL is not about
hating SQL, NoSQL is not about ease of use, NoSQL is not about sharding, NoSQL is not about throughput, NoSQL is not about speed,
NoSQL is not about dropping ACID, NoSQL is not about Eventual Consistency, NoSQL is not about CAP, NoSQL is not about open
standards, NoSQL is not about Open Source and NoSQL is most likely not about whatever else you want NoSQL to be about.
NoSQL is about choice!Jan Lehnardt, CouchDB
Die Zukunft gehörtPolyglot Persistence!
SQL- & NoSQL-Technologienwerden zukünftig konvergieren!
“Know your battlefield, pick your battles!”
Consistency Scalabilty
Configuration
SecurityReplication
Client Access
Installation
Dr. Stephan VolmerLead Software Architect
Telefon +49 6196 777 54 0 Email [email protected] @stvzegXing http://xing.to/stv