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

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?

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

Recommended