30
Berlin, 23. Mai 2012 NoSQL Der neue Königsweg für Datenbanken?

NoSQL - Der neue Königsweg für Datenbanken?

Embed Size (px)

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

Page 1: NoSQL - Der neue Königsweg für Datenbanken?

Berlin, 23. Mai 2012

NoSQL

Der neue Königswegfür Datenbanken?

Page 3: NoSQL - Der neue Königsweg für Datenbanken?

Great Websites run InfoparkGegründet 1994 in Berlin

CMS und WebCRM in der Cloud

Cloud-Plattform für dynamische Web-Sites

Page 4: NoSQL - Der neue Königsweg für Datenbanken?

NoSQL

Page 5: NoSQL - Der neue Königsweg für Datenbanken?

Say NO to SQL?

Page 6: NoSQL - Der neue Königsweg für Datenbanken?

NoSQL=

Not Only SQL

Page 7: NoSQL - Der neue Königsweg für Datenbanken?

Trends

Page 8: NoSQL - Der neue Königsweg für Datenbanken?

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

Page 9: NoSQL - Der neue Königsweg für Datenbanken?

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

Page 10: NoSQL - Der neue Königsweg für Datenbanken?

Trend #3: Architektur

Applikation

Datenbank

Page 11: NoSQL - Der neue Königsweg für Datenbanken?

Trend #3: Architektur

Applikation

Datenbank

Applikation Applikation

Page 12: NoSQL - Der neue Königsweg für Datenbanken?

Trend #3: Architektur

Applikation

Datenbank

Applikation Applikation

Datenbank Datenbank

Page 13: NoSQL - Der neue Königsweg für Datenbanken?

Aktuelle Trends

Große Datenmengen• ständig wachsend• verteile Erstellung

Semistrukturierte Daten• Keine festen Schemata• Evolution der Daten

Architektur• Trend zu verteilten Systemen• Cloud

Page 14: NoSQL - Der neue Königsweg für Datenbanken?

Probleme mit klassischen RDBMS

Mangelnde Skalierbarkeit

Single point of failure

Verteilte Systeme / Cluster

Strikte Schemata / komplexe Migration

Wiederherstellungszeiten

Page 15: NoSQL - Der neue Königsweg für Datenbanken?

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

Page 16: NoSQL - Der neue Königsweg für Datenbanken?

“Of three properties - data consistency, system availability and tolerance to network partitions - only two can be achieved at the same time.– Eric Brewer

Page 17: NoSQL - Der neue Königsweg für Datenbanken?

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

Page 18: NoSQL - Der neue Königsweg für Datenbanken?

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.

Page 19: NoSQL - Der neue Königsweg für Datenbanken?

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

Page 20: NoSQL - Der neue Königsweg für Datenbanken?
Page 21: NoSQL - Der neue Königsweg für Datenbanken?

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

Page 22: NoSQL - Der neue Königsweg für Datenbanken?

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 …

Page 23: NoSQL - Der neue Königsweg für Datenbanken?

WebApps brauchen nicht unbedingt …

Transaktionen

Strikte Datenkonsistenz

Komplexe Abfragen

Page 24: NoSQL - Der neue Königsweg für Datenbanken?

WebApps eigenen sich oft besonders

für NoSQL-DBs.

Page 25: NoSQL - Der neue Königsweg für Datenbanken?

NoSQL - So many choices …

MongoDB

Riak

CouchDB

BigCouch

Redis

Cassandra

DynamoDB

Page 26: NoSQL - Der neue Königsweg für Datenbanken?

Our History

Wir starteten mit BigCouch

Switch zu CouchDB

Erwägten Riak

… und nutzen nun DynamoDB

Page 27: NoSQL - Der neue Königsweg für Datenbanken?

Management-Intense

Except DynamoDB, they are all very …

Page 28: NoSQL - Der neue Königsweg für Datenbanken?

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

Page 29: NoSQL - Der neue Königsweg für Datenbanken?

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