Handzettel - Schulungsraumserver Institut für Informationswirtschaft

Werbung
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
NoSQL Datenbanken
LV Datenorientierte Systemanalyse, WS 2014/15
Dr. Walter Ebner, <[email protected]>
Institut für Informationswirtschaft
Wirtschaftsuniversität Wien
Überblick
Abgrenzung zu relationalen Datenbanksystemen
CAP-Theorem
ACID versus BASE
Die vier NoSQL Produktkategorien
• Key-Value Stores
• Column-based Stores
• Document Stores
• Graph Databases
Datenorientierte Systemanalyse – NoSQL
NoSQL Features
5
Dr. Walter Ebner, Institut für Informationswirtschaft
1
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
Relationale Datenbanksysteme
Grundlage ist die Relation
wird bei relationalen DBMS als Tabelle bezeichnet
• Tabellen (Spalten haben eine definierten Datentyp
und eine bestimmte Genauigkeit bzw. Länge)
• Definierte Primär- und Fremdschlüssel
Alle Daten sind in Tabellen abgelegt
Abfragen basieren auf der relationalen Algebra
• Selection, Projektion, Mengenoperationen, Joins
Die Standard-Abfragesprache heißt SQL
Datenorientierte Systemanalyse – NoSQL
Es gibt das Konzept eines Schemas:
6
Relationale Datenbanksysteme
• Neben SQL bieten einige DBMS noch mächtige
Programmiersprachen an: PL/SQL (Oracle),
PL/pgSQL (PostgreSQL), Transact-SQL (MSSQL)
• Relationale Datenbankmanagementsysteme setzen
die ACID Anforderungen um.
Datenorientierte Systemanalyse – NoSQL
Relationale Datenbankmanagementsysteme:
7
Dr. Walter Ebner, Institut für Informationswirtschaft
2
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
ACID
•
Atomic: All operations in a transaction succeed or every
operation is rolled back.
•
Consistent: On transaction completion, the database is
structurally sound.
•
Isolated: Transactions do not contend with one another.
Contentious access to state is moderated by the database so
that transactions appear to run sequentially.
•
Durable: The results of applying a transaction are permanent,
even in the presence of failures.
Datenorientierte Systemanalyse – NoSQL
Unter dem Begriff ACID werden die Garantien für Datenbanktransaktionen zusammengefasst. Eine Transaktion ist eine
einzelne logische Operation, die auf die Daten angewendet wird.
8
•
NoSQL steht nicht für „Nein zu SQL“ sondern für:
•
Der Begriff NoSQL wurde 2009 von Eric Evans, einem Software
Entwickler bei der Apache Software Foundation, geprägt.
•
Klasse von nicht-relationalen Datenspeicherungssystemen
•
Haben normalerweise kein fixes Schema
•
Viele NoSQL Lösungen weichen eine oder mehrere ACID
Anforderungen auf.
Datenorientierte Systemanalyse – NoSQL
NoSQL?
9
Dr. Walter Ebner, Institut für Informationswirtschaft
3
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
NoSQL – Der Anfang
•
Die folgenden wissenschaftlichen Artikel bilden die Grundlage
für die NoSQL Bewegung:
• CAP Theorem (2000 von Eric Brewer)
• MapReduce (2004 von Google)
• BigTable (2006 von Google)
http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/de//archi
ve/bigtable-osdi06.pdf
• Dynamo (2007 von Amazon)
http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf
•
Die folgenden Bereiche können von relationalen DBMS nur
schwer modelliert werden:
• Document Storage and Indexing
• Recursive Data and Graphs (Netzwerke)
• Time Series Data
Datenorientierte Systemanalyse – NoSQL
http://research.google.com/archive/mapreduce.html
Datenorientierte Systemanalyse – NoSQL
Entstehungsgeschichte
http://www.benstopford.com/2012/06/30/thoughts-on-big-data-technologies-part-1/
Dr. Walter Ebner, Institut für Informationswirtschaft
4
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
Datenorientierte Systemanalyse – NoSQL
Wer verwendet NoSQL?
12
NoSQL?
Jeder NoSQL Ansatz versucht einige der Unzulänglichkeiten von
•
horizontal scalability
•
read/write performance
•
schema limitations
•
difficult query patterns
•
parallel data processing
•
etc.
Datenorientierte Systemanalyse – NoSQL
relationalen Datenbanken zu lösen:
13
Dr. Walter Ebner, Institut für Informationswirtschaft
5
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
NoSQL Features
Gewaltige read/write Performance
Normalerweise mit schnellen key-value Zugriff
High Availability
Partitioning and Sharding
Fehlertolerant
Shardingkonzept in Riak:
Datenorientierte Systemanalyse – NoSQL
Daten werden auf mehreren Nodes gespeichert
http://docs.basho.com/riak/latest/references/appendices/concepts/
NoSQL Features
Unterstützung riesiger Datenmengen
 leichte Skalierbarkeit (horizontal scaling). Wenn die
Kapazitäten knapp werden, kann man mit minimalen Aufwand
weiter Daten-Nodes hinzufügen.
Extrem performant!
 MapReduce Ansatz
Semi-structured and schemaless
 mit JSON/XML lassen sich Daten semistrukturiert abbilden
 in Key-Value Stores lassen sich alle Arten von Objekten
ablegen
Normalerweise kein fixes Schema
Auch keine Datentypen
Dr. Walter Ebner, Institut für Informationswirtschaft
Datenorientierte Systemanalyse – NoSQL
Parallel Computing
6
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
NoSQL Features
Leichte Anwendungsentwicklung
Oft moderne Web-API mittels RESTful Services
Setzen auf bekannte Technologien: z.B: Javascript, HTTP,
Leichte Wartbarkeit und Administration
Minimale Administration und automatisierter Betrieb haben
hohen Stellenwert bei der Entwicklung
Open-Source
 Viele Lösungen sind open-source und haben eine aktive
Community.
Duales Lizensierungsmodell
 Bei vielen Lösungen gibt es sowohl eine freie Variante als
auch eine mit kommerziellen Support.
Datenorientierte Systemanalyse – NoSQL
XML, JSON
Nachteile von NoSQL
Joins
Group By
Order By
Indexes
ACID transactions
Complex relationships
Powerful and standard query language (SQL)
Maturity (Reifegrad)
Einige NoSQL Ansätze bieten einige (aber nicht alle) dieser Features.
Datenorientierte Systemanalyse – NoSQL
Auf was muss man verzichten?
http://blog.chariotsolutions.com/2010/01/why-you-need-nosql-in-your-toolbox.html
Dr. Walter Ebner, Institut für Informationswirtschaft
7
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
CAP Theorem
“It is impossible for a distributed computer system to
simultaneously provide all three of the following guarantees:
•
•
Consistency (all nodes see the same data at the same time)
•
Partition tolerance (the system continues to operate despite
arbitrary message loss or failure of part of the system)”
Availability (a guarantee that every request receives a
response about whether it was successful or failed)
Datenorientierte Systemanalyse – NoSQL
Das CAP Theorem wurde im Jahr 2000 von Eric Brewer formuliert:
•
Um hoch zu skalieren muss man Partitionieren  man muss
zwischen Konsistenz und Verfügbarkeit wählen
Dr. Walter Ebner, Institut für Informationswirtschaft
Datenorientierte Systemanalyse – NoSQL
CAP-Theorem – Two out of three
19
8
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
Datenorientierte Systemanalyse – NoSQL
BASE Consistency Model
http://www.ivanomalavolta.com/diving-into-nosql/
20
MapReduce
Ein von Google entwickeltes Programmiermodell um
Berechnungen über riesige Datenmengen über Clusternodes
verteilt parallel durchzuführen.
•
Map
Der erste Schritt des MapReduce-Verfahrens ist das Mapping.
Dabei werden alle in Frage kommenden Datensätze an eine
Mapping-Funktion übergeben, welche dann entscheidet, was
mit diesem Datensatz geschehen soll. Die Ergebnisse solch
eines Mapping-Vorgangs landen in einem Zwischenspeicher.
•
Reduce
Mit einem anschließenden Reduce-Schritt können die
Ergebnisse gruppiert werden. Reduce gibt nur einen Datensatz
als Ergebnis zurück (es reduziert die Eingabemenge auf ein
Ergebnis)
Datenorientierte Systemanalyse – NoSQL
Dabei werden Probleme zur Problemlösung in zwei Teile geteilt:
http://research.google.com/archive/mapreduce.html
21
Dr. Walter Ebner, Institut für Informationswirtschaft
9
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
Datenorientierte Systemanalyse – NoSQL
Einige NoSQL Datenbanklösungen
22
Datenorientierte Systemanalyse – NoSQL
NoSQL – Einteilung in Quadranten
23
http://graphdatabases.com/
Dr. Walter Ebner, Institut für Informationswirtschaft
10
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
Datenorientierte Systemanalyse – NoSQL
Einordnung nach CAP
24
http://t3n.de/news/visual-guide-nosql-systems-269025/
•
Der Fokus liegt auf Skalierbarkeit
entworfen für extrem hohe Lasten
•
Es werden Collections von Key-Value Paaren gespeichert
vergleichbar mit Maps oder assoziativen Array in klassischen
Programmiersprachen.
•
•
KEY=string value
•
Key Namespaces werden verwendet um Kollisionen beim Key
zu vermeiden.
VALUE=irgendeine Art von Element (Strings, XML, JSON, mp3Dateien)
Datenorientierte Systemanalyse – NoSQL
Key-Value Stores
25
Dr. Walter Ebner, Institut für Informationswirtschaft
11
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
Key-Value Stores
Vorteile
leicht zu verwenden
extrem gute Performance
keine Notwendigkeit Indizes zu pflegen
Daten horizontal verteilbar
Nachteile
•
•
•
keine komplexen Abfragen möglich (kein SQL)
•
Keys müssen in den Arbeitsspeicher passen
keine Transaktionen
Viele Datenstrukturen können nicht so leicht als Key-Value Pairs
modelliert werden.
Datenorientierte Systemanalyse – NoSQL
•
•
•
•
26
Key-Value Stores
Einige Lösungen
Redis
Dynamo
MemcacheDB
Anwendungsgebiete
•
•
•
•
•
Aktienkurse
Real-Time Data Collection
Real-Time Communication
User Session Storage
Datencache für Datenbanken
Datenorientierte Systemanalyse – NoSQL
•
•
•
27
Dr. Walter Ebner, Institut für Informationswirtschaft
12
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
Column-oriented Stores
•
•
Liegen zwischen relationalen DBMS und Key-Value Stores.
•
Im Gegensatz zu relationalen Datenbanken, werden die Daten
der Spalten beieinander gespeichert und nicht die von Zeilen.
•
Jede Zeile kann eine unterschiedliche Menge von
Spalten haben
(Keine Storage Kosten für
NULL Werte)
Datenorientierte Systemanalyse – NoSQL
Sind nach dem BigTable paper von Google modelliert:
The data model is based on a sparsely populated table whose
rows can contain arbitrary columns, the keys for which provide
natural indexing.
28
Column-oriented Stores
Vorteile
leicht Tasks zu verteilen
Zur Lösung von „Big Data“ Problemen
High Availability
Garbage Collection für expired data
Nachteile
•
•
•
Denormalisierung der Daten nötig
Einfügevorgänge sind resourcenaufwändig
Die benötigten Abfragen müssen frühzeitig in der Planung
berücksichtigt werden.
Datenorientierte Systemanalyse – NoSQL
•
•
•
•
29
Dr. Walter Ebner, Institut für Informationswirtschaft
13
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
Column-oriented Stores
Einige Lösungen
HBase
BigTable
Cassandra
Anwendungsgebiete
•
•
•
•
Suchmaschinen
•
•
Viele Lösungen bieten Versionierung an
Logging
Analysing Log Data
Wenn man riesige zwei-dimensionale Tabellen (ohne Join) lesen
muss.
In Cassandra ist das Schreiben schneller als Werte zu lesen
Datenorientierte Systemanalyse – NoSQL
•
•
•
30
•
Übermenge zu den Key-Value Stores. Man kann auch innerhalb
des VALUE Teils Abfragen machen (nicht nur im Key).
Der Dokument-Teil ist strukturiert.
•
Dokumente kann man sich als Tupel mit einer beliebigen
Anzahl von Felder vorstellen (JSON)
•
Dokumente können
verschachtelte Strukturen beinhalten
•
Dokumente sind auch
oft versioniert
Datenorientierte Systemanalyse – NoSQL
Document Stores
31
Dr. Walter Ebner, Institut für Informationswirtschaft
14
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
Document Stores
Vorteile
Variable Daten (in Bezug auf die Struktur) speicherbar
Object-orientierter Ansatz
Funktioniert gut mit denormalisierten Daten
Nachteile
•
•
•
Schwierig komplexe Abfragen zu machen
Keine Joins zwischen den Dokumenten möglich
Daten müssen strukturiert sein
Datenorientierte Systemanalyse – NoSQL
•
•
•
32
Document Stores
Einige Lösungen
MongoDB bzw. CouchDB für JSON Daten
BaseX für XML Daten
Riak für alle möglichen Daten
Anwendungsgebiete
•
Wenn man im Voraus noch nicht weiß, wie die Daten
ausschauen werden bzw.
•
wenn zu erwarten ist, dass immer wieder neue Datenfelder
hinzukommen.
•
Für vordefinierte Reports über akkumulierte Daten, die sich nur
gelegentlich ändern.
•
Anwendungsgebiete, bei denen Versionierung wichtig ist.
Datenorientierte Systemanalyse – NoSQL
•
•
•
33
Dr. Walter Ebner, Institut für Informationswirtschaft
15
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
Graph Databases
•
Fokussiert auf die Modellierung von Datenstrukturen und deren
Beziehungen
•
•
Von der Graphentheorie der Mathematik inspiriert.
• Entities sind Knoten
• Beziehungen sind die Kanten zwischen den Knoten
• Key-Value Pairs können sowohl bei Knoten als auch bei
Kanten gespeichert werden.
•
Graph Datenbanken beeindrucken besonders bei Daten, die viele
Verbindungen untereinander aufweisen.
(Relationale Datenbanken können Graphen modellieren, aber jede
Kante benötigt einen kostspieligen Join)
Datenorientierte Systemanalyse – NoSQL
Als Datenmodell wird der Property Graph verwendet:
34
Datenorientierte Systemanalyse – NoSQL
Property Graph - Beispiel
http://blog.neo4j.org/2010/02/top-10-ways-to-get-to-know-neo4j.html
35
Dr. Walter Ebner, Institut für Informationswirtschaft
16
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
Graph Databases
•
Leichte Modellierung da Whiteboard friendly (alles was man auf
eine Tafel zeichnen kann, kann man auch so umsetzen)
•
Das Traversieren zwischen Knoten entlang der Kanten ist extrem
schnell. Für die Abfragen an Graphen können Graphen-Algorithmen verwendet werden (z.B.: Dijkstra für den kürzesten Weg)
•
•
Passt gut zu objekt-orientierten Ansätzen
Neo4J ist ACID-compliant
Nachteile
•
Nicht horizontal skalierbar, da die Daten nicht partitioniert werden
können.
•
•
Keine Joins (dafür jedoch traversieren)
Daten müssen strukturiert sein
Datenorientierte Systemanalyse – NoSQL
Vorteile
36
Graph Databases
Einige Lösungen
Neo4J
OrientDB
AllegroGraph
Anwendungsgebiete
•
•
•
•
•
•
Soziale Netzwerke
Recommendation Engines
Geographische Daten
Transportnetzwerke
Netzwerktopologien
Berechtigungssysteme (verschachtelte Gruppen)
Datenorientierte Systemanalyse – NoSQL
•
•
•
37
Dr. Walter Ebner, Institut für Informationswirtschaft
17
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
Einige Open Source Lösungen
Redis – http://code.google.com/p/redis (Key-Value)
MemcacheDB - http://memcachedb.org/ (Key-Value)
Hbase – http://hbase.apache.org (Column-oriented)
Cassandra – http://cassandra.apache.org (Column-oriented)
Riak – http://www.basho.com (Key-Value bzw. Document)
MongoDB – http://www.mongodb.org (Document)
CouchDB - http://couchdb.apache.org (Document) AP
Couchbase – http://www.couchbase.com (Document) CP
Neo4J – http://neo4j.org (Graph)
OrientDB – http://www.orientdb.org (Graph)
FlockDB – http://github.com/twitter/flockdb (distributed Graph)
Datenorientierte Systemanalyse – NoSQL
•
•
•
•
•
•
•
•
•
•
•
38
Datenorientierte Systemanalyse – NoSQL
Datenbankfeatures im Vergleich
Dr. Walter Ebner, Institut für Informationswirtschaft
18
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
Zusammenfassung
•
Es geht um „Big-Data“ Probleme
•
SKALIERBARKEIT (scale out statt scale up) aber meistens auf
•
NoSQL ist keine eierlegende Wollmilchsau
NoSQL ≠
•
Der neue Trend ist Polyglot Persistence
 Der kombinierte Einsatz von relationalen Datenbanksystemen und NoSQL Datenbanken
Datenorientierte Systemanalyse – NoSQL
Kosten der Konsistenz
Anhang
VERTEILTE SUCHMASCHINEN
Dr. Walter Ebner, Institut für Informationswirtschaft
19
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
Suchmaschinen
•
Die zwei bedeutendsten Open Source Projekte bei den verteilten
•
Ihr Funktionsumfang ist ähnlich.
•
Beide sind in Java programmiert und bauen auf der Java
Bibliothek Lucene auf.
•
Das ältere Projekt ist Apache Solr, jedoch gewinnt elasticsearch
rasch an Bedeutung.
Datenorientierte Systemanalyse – NoSQL
Suchmaschinen sind:
Apache Lucene
Lucene ist eine in Java geschriebene Bibliothek zur Volltextsuche.
•
High Performance Indizierung von Dokumenten (150GB/Stunde)
•
Mächtige und effiziente Suchalgorithmen:
–
ranked searching - best results returned first
–
many powerful query types: phrase queries, wildcard queries, proximity queries, range
queries and more
–
fielded searching (e.g. title, author, contents)
–
sorting by any field
–
multiple-index searching with merged results
–
allows simultaneous update and searching
–
flexible faceting, highlighting, joins and result grouping
–
fast, memory-efficient and typo-tolerant suggesters
–
pluggable ranking models
–
configurable storage engine (codecs)
Dr. Walter Ebner, Institut für Informationswirtschaft
Datenorientierte Systemanalyse – NoSQL
Lucene bietet:
20
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
Apache Solr
„Solr is a standalone enterprise search server with a REST-like API“:
Dokumente können in Form von XML, JSON, CSV oder binär über
HTTP importiert (indiziert) werden. Abgefragt wird über HTTP GET
und man erhält XML, JSON, CSV oder binäre Ergebnisse.
•
•
•
•
Advanced Full-Text Search Capabilities (basiert auf Lucene)
•
Near Real-time indexing
Optimiert für High Volume Web Traffic
Standards Based Open Interfaces - XML, JSON and HTTP
Linearly scalable, auto index replication, auto failover and
recovery
Datenorientierte Systemanalyse – NoSQL
Eigenschaften:
Elasticsearch
•
Elasticsearch is a distributed, RESTful, free/open source
search server based on Lucene.
Eigenschaften:
• Fulltext Suchmaschine
• Optimiert für Real time data indexing and analytics
• Linier skalierbar (Cluster ist verteilt  High Availability)
• Mandantenfähigkeit
• Dokumentenorientiert (JSON documents)
• Schema-Free (im Gegensatz zu Solr ist nicht zwingend ein
Mapping File erforderlich)
• RESTful API
Dr. Walter Ebner, Institut für Informationswirtschaft
Datenorientierte Systemanalyse – NoSQL
•
21
NoSQL – Datenbanken
PI Datenorientierte Systemanalyse, WS 2014/15
Übungen
Datenorientierte Systemanalyse – NoSQL
Nun zu den praktischen Übungsbeispielen…
Datenorientierte Systemanalyse – NoSQL
ENDE
47
Dr. Walter Ebner, Institut für Informationswirtschaft
22
Herunterladen