nosql-databases...nosql-databases präsentation für advanced seminar "computer...

25
NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, [email protected]

Upload: others

Post on 16-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

NoSQL-Databases

Präsentation für Advanced Seminar "Computer Engineering",

Matthias Hauck,[email protected]

Page 2: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

Klassische SQL-Datenbanken

● Anwendungsgebiet:– Geschäftsanwendungen

– Behördenanwendungen

● Anwendungsklassen– Online Transaction Processing(OLTP)

– Online Analytic Processing(OLAP)

Page 3: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

3/25

Klassische SQL-Datenbanken

● Focus auf Robustheit– ACID

● Relationales Datenmodel– Star(Performanz)

– Zeilen Orientiert(Daten anhängen)

● Ausgereift– Ursprung in den 70er

● Teuer– Oracle Database Enterprise Edition(pur) 47.500 $/Prozessor

Page 4: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

4/25

Relationales Datenmodel

ID Vorname Name11 David9 Thomas4

21 Dennis32 John Connor

BowmanAnderson

Samantha CarterNedry

AttributPrimärschlüssel(Primary key)

Eintrag(Record)

Schema

Beispiel Abfrage:select LV.Name from Stud, Belegungen, LV where Name=Nedry, Stud.ID = Belegungen.ID, Belegungen.ID=LV.ID

Relation

Page 5: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

5/25

Neue Anforderungsprofile

● Webanwendungen– interaktive Datenzugriff

– Verfügbarkeit wichtiger als Konsistenz

– Anforderungen der Daten variiert

● Big Data● Mobile Anwendungen

– Synchronisation

– Wenig Leistungsfähige Hardware

Page 6: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

6/25

Anforderungen

● Extreme Skalierbarkeit– Viele Anfragen

– Viele (stark wachsende) Daten

● Hohe Verfügbarkeit● Schnell ändernde Software● Niedrige Kosten

– Geringer administrativer Aufwand

– Standard Hardware

Page 7: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

7/25

Lösungen(Evolution)

● Cache Layer für SQL Datenbank– Memcached

● Middelware– Gizzard

● NoSQL

Page 8: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

8/25

Lösung: NoSQL

● Ausrichtung auf Cluster– Teilweiser Verzicht auf Abstraktion

● Flexible Schemas● Verzicht auf Features● Ein Interface das nicht SQL verwendet

Page 9: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

9/25

Fokus der Entwicklung

● Anpassung an die Aufgabenfelder● Unterstützung verteilter Systeme

– Replikation

– Verteilung von Daten

● Optimierung der Performanz/Durchsatz

Page 10: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

10/25

Arten von NoSQL-Datenbanken

● Key-Value Store– MemcacheDB, Amazon Dynamo

● Document Store– Lotus Notes, couchDB

● Spalten-orientierte Datenbanken– Bigtable, Cassandra

● Graph Datenbanken– Neo4j

Weitere Klassifikationen möglich!

Page 11: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

11/25

Key/Value Store

● Einfacher Aufbau● Einfache Abfragen● Value wird nicht

ausgewertet

Key Value

Bunsen

Buchteln

Winter

Page 12: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

12/25

Document Store

● Strukturierte Daten– Gruppierung von gemeinsam

genutzten Daten

● Flexibles Schema"oname":"The Silence of the Lambs""name“: { "en":"The Silence of the Lambs"

"de":"Das Schweigen der Lämmer" "fi": "Uhrilampaat" }

"regie":"Jonathan Demme""schauspieler":{"Jodie Foster",

"Anthony Hopkins"}"laufzeit":"113 min"

Page 13: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

13/25

Spalten-orientierte Datenbankenoder: Wide Column Store / Column Families

● Tabelle mit Zeilen und Spalten● Zeilen besitzen unbegrenzte Anzahl an Spalten ● Spalten gehören zu einer Spalten Familie

● Die Anzahl der Spalten Familien ist begrenzt

Bild: Google: Bigtable: A Distributed Storage System for Structured Data

Page 14: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

14/25

Graph Datenbanken

● Modellierung der Daten als Graph

● Unterstützung von Graphen Verarbeitung

PaulAlter: 33

AntonAlter: 1

GesaAlter:31

Vater vonMutter von

verheiratet mit

verheiratet mit

JuliaAlter: 32

kennt

Page 15: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

15/25

Verteilte Systeme: CAP-Theorem

Consistency

Availability Partition-tolerance

Page 16: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

16/25

Verteilte Systeme: BASE

Basically available, Soft-state, Eventual consistency● Updates nicht sofort im ganzen System sichtbar

– Varianten möglich

– Nicht alle Knoten müssen gleichzeitig Commiten

● Applikation muss Inkonsistenzen tolerieren

Page 17: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

17/25

Verteilte Systeme: BASE vs. ACID

ACID BASE

ACID BASEStrong consistencyIsolationFocus on “commit”Nested transactionsAvailability?Conservative (pessimistic)Difficult evolution (e. g. schema)

Weak consistency – stale data OKAvailability firstBest effortApproximate answers OKAggressive (optimistic)Simpler!FasterEasier evolution

Quelle: Brewer, Eric A.: Towards Robust Distributed Systems. Portland, Oregon, July 2000. –Keynote at the ACM Symposium on Principles of Distributed Computing (PODC) on 2000-07-19., Folie 13

Page 18: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

18/25

Verteilte Systeme: Sharding

● Automatische Verwaltung – Load Balancing

– Daten Verteilung/Redistribution

● Lookup Mechanismus– Statisch/Dynamisch

– Hash, Lookup Server

● Membership Managment

Page 19: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

19/25

Performanz: Elimination von Overhead

● Kommunikation Frontend/Backend

● Logging

● Locking● Latching● Buffermangment

Page 20: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

20/25

Performanz: Elimination von Overhead

● Kommunikation Frontend/Backend– Verlagerung von Logik in Client Lib

– Komplexe Operationen auf dem Server(Stored procedures)

– MapReduce Integration

● Logging

● Locking● Latching● Buffermangment

Page 21: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

21/25

Performanz: Elimination von Overhead

● Kommunikation Frontend/Backend

● Logging

– Verzicht auf Logs

– Replikation/GEO distribution

● Locking● Latching● Buffermangment

Page 22: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

22/25

Performanz: Elimination von Overhead

● Kommunikation Frontend/Backend● Logging

● Locking– Verzicht auf Transaktionen(über mehr als einen Eintrag)

● Latching● Buffermangment

Page 23: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

23/25

Weitere Optimierungen

● In Memory DB– Performanz

– Einfacheres Zugriffsmanagement

● Überarbeitung des Storage Layouts– Kompression

Page 24: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

24/25

Kritik an NoSQL

● NoSQL hat nichts mit SQL zu tun● Nichts neues● Nicht standardisiert ● Kein kommerzieller Support /

Lizenzprobleme● Evatual Consistency ist kompliziert

Page 25: NoSQL-Databases...NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet:

25/25

Fazit & Ausblick

● SQL Datenbanken sind relevant● NoSQL Datenbanken sind relevant● NoSQL wird reifen● Neue Technologien kommen

– NewSQL