View
1.027
Download
0
Category
Preview:
DESCRIPTION
Durch den Siegeszug von Cloud Computing rücken relationale Datenbankkonzepte zunehmend in den Hintergrund. Alternative Technologien, wie die sogenannten NoSQL-Datenbanken, gewinnen an Bedeutung und versprechen einfachere Handhabung, höhere Skalierbarkeit und Verteilbarkeit der Daten. Der Vortrag beantwortet die Fragen, ob NoSQL-Datenbanken die neue Wunderwaffe sind, ob sie auch außerhalb der Cloud nützlich sind, für welche Einsatzzwecke sie sich eignen und welche Angebote es am Markt gibt.
Citation preview
Berlin, 23. Mai 2012
NoSQL
Der neue Königswegfür Datenbanken?
http://twitter.com/thomas_witt
Thomas Witt
@thomas_witt
Great Websites run InfoparkGegründet 1994 in Berlin
CMS und WebCRM in der Cloud
Cloud-Plattform für dynamische Web-Sites
NoSQL
Say NO to SQL?
NoSQL=
Not Only SQL
Trends
Trend #1: Big Data
0
200
400
600
800
1000
2006 2007 2008 2009 2010
988
623
397
253
161
ExaBytes of data stored per year
Trend #2: Semistrukturierte Daten
Daten werden immer komplexer• Nicht alles läßt sich in ein Schema
pressen
Daten werden individueller• Mehr unterschiedliche und nicht
vorhersehbare Daten müssen gespeichert werden
Zusätzliche Beschleunigt durch dezentral erstellte Daten• Web 2.0
Trend #3: Architektur
Applikation
Datenbank
Trend #3: Architektur
Applikation
Datenbank
Applikation Applikation
Trend #3: Architektur
Applikation
Datenbank
Applikation Applikation
Datenbank Datenbank
Aktuelle Trends
Große Datenmengen• ständig wachsend• verteile Erstellung
Semistrukturierte Daten• Keine festen Schemata• Evolution der Daten
Architektur• Trend zu verteilten Systemen• Cloud
Probleme mit klassischen RDBMS
Mangelnde Skalierbarkeit
Single point of failure
Verteilte Systeme / Cluster
Strikte Schemata / komplexe Migration
Wiederherstellungszeiten
Probleme durch ACID
Atomicity• Alles oder nichts
Consistency• Referential Integrity
Isolation• Keine Transaktion darf eine andere
Transaktion beeinflussen
Durability• Wiederherstellung von bestätigen
Transaktionen im Desaster-Fall
ACID skaliert nicht
“Of three properties - data consistency, system availability and tolerance to network partitions - only two can be achieved at the same time.– Eric Brewer
Kudos to http://blog.nahurst.com/visual-guide-to-nosql-systems
Comparision
A
C P
Availability: Each client can always read and write
Consistency: All clients always get
the same data
Partition Tolerance: System works despite
network splits
Pick Two
RelationalKey-valueColumn-oriented/TabularDocument-oriented
DynamoDBCassandraSimpleDBCouchDBRiak
RDBMS(MySQL, Oracle, …)
MongoDB,Redis,Bigtable
Erste Vorteile durch CAP bei NoSQL …
Skalierbarkeit• Beliebiges Hinzufügen weiterer
Nodes zum Datenbank-Cluster
Verfügbarkeit• Das Ausscheiden einer Node
berührt die Verfügbarkeit der DB nicht.
Elastizität• Durch Verteilung der Daten auf
mehrere Nodes wird parallel eine höhere Performance erreicht.
Arten von NoSQL-Datenbanken
Key-Value-Stores• Key-Value-Lookups• DynamoDB, Riak, Voldemort
Column Families• Jeder Schlüssel assoziiert mit
mehreren Attributen (Columns)• BigTable, Cassandra
Document Database• Semistrukturierter Dokumente • CouchDB, MongoDB
Graph DBs• Verbindungen zwischen Objekten• Neo4j
Unterschied: Queries
Keine Relationen• keine Konsistenz untereinander
Keine AdHoc-Queries• außer Keys/vorberechnete Daten
Keine Konsistenz• Eventual Consistency
Ein Schritt zurück?
Scalability, availability and resilience come at a cost
Erfordert andere Programmiertechniken
Kurze und vorhersagbare Antwortzeiten
Skalierbarkeit bei geringen Kosten
Hohe Verfügbarkeit
Flexible Schemata für semistrukturierte Daten
Schemaänderungen
Verteilung auf mehrere Rechenzentren
WebApps haben andere Anforderungen, für die RDBMS nicht designed sind …
WebApps brauchen nicht unbedingt …
Transaktionen
Strikte Datenkonsistenz
Komplexe Abfragen
WebApps eigenen sich oft besonders
für NoSQL-DBs.
NoSQL - So many choices …
MongoDB
Riak
CouchDB
BigCouch
Redis
Cassandra
DynamoDB
…
Our History
Wir starteten mit BigCouch
Switch zu CouchDB
Erwägten Riak
… und nutzen nun DynamoDB
Management-Intense
Except DynamoDB, they are all very …
“
http://highscalability.com/blog/2012/1/24/the-state-of-nosql-in-2012.html
Any system that you pick will require 24-7 operational support. If it is not hosted (e.g. by AWS), be prepared to hire a fleet of ops folks to support it yourself. If you don’t have the manpower, I recommend AWS' DynamoDB.
– Siddharth Anand, LinkedIn
NoSQL Vor- und Nachteile
Vorteile
Hohe Skalierbarkeit
Hohe Verfügbarkeit
Geringe Kosten
Vorhersagbare Elastizität
Flexible Schemata
Alle NoSQL-Datenbanken outperformen RDBMS• … in ihrem Bereich
Nachteile
Beschränkte Query-Möglichkeiten• Know what you gonny query
Eventual Consistency• Nicht intuitiv• Verlagert mehr Logik in die
Applikation
Kein Standard• a la SQL
Infopark AG • Kitzingstraße 15 • D-12277 Berlin • www.infopark.de • info@infopark.de
thomas.witt@infopark.de
Thomas Witt
Vielen Dank!
Director Product & Business Development
Recommended