NoSQL-Teil1.pptx
Document Details
Uploaded by Deleted User
Full Transcript
Prof. DI Dr. Erich Gams NoSQL Einführung und Anwendung Datenbanken informationssysteme htl-wels Übersicht Was lernen wir? Motivation NoSQL Theoretische Überlegungen (CAP, BASE, ACID) Kategorisierung und Beispiele Hands-on Prof. DI Dr. Erich Gams...
Prof. DI Dr. Erich Gams NoSQL Einführung und Anwendung Datenbanken informationssysteme htl-wels Übersicht Was lernen wir? Motivation NoSQL Theoretische Überlegungen (CAP, BASE, ACID) Kategorisierung und Beispiele Hands-on Prof. DI Dr. Erich Gams Seite 2 Prof. DI Dr. Erich Gams Seite 3 Motivation › Facebook hat 180k Server (Ende 2012) › Google hat 450k Server (2006), über 1 Million heute, 5,6 Milliarden Suchanfragen pro Tag › Microsoft: hat 1000k Server (2013) Prof. DI Dr. Erich Gams Seite 4 Motivation › Trend 1: increasing data sizes (big data) › Trend 2: more connectedness (“web 2.0”) › Trend 3: more individualization (fewer structure) › and multimedia data Prof. DI Dr. Erich Gams Seite 5 Big data › “huge amount of data produced by different devices and applications” › Black Box Data Data captured by helicopter, airplanes, and jets, etc. › Social Media Data › Stock Exchange Data › Power Grid Data : The power grid data holds information consumed by a particular node with respect to a base station. › Transport Data › Search Engine Prof. DI Dr. Erich Gams Seite 6 Big data: 3 types › Structured data : Relational data. › Semi Structured data : XML data. › Unstructured data : Word, PDF, Text, Media Logs. Prof. DI Dr. Erich Gams Seite 7 NoSQL Einführung NoSQL = „not only SQL“ verteilte und horizontale Skalierbarkeit, gleichrangige Knoten kostengünstige Rechnersysteme zur Datenspeicherung kein relationales Datenmodell (kein SQL) schemafrei / schwache Schemarestriktionen keine Transaktionen (nach gewisser Zeit konsistenter Zustand) verteilte Hardware -> hohe Ausfallsicherheit für spezifische Problemstellungen! Prof. DI Dr. Erich Gams Seite 8 Vertikale Skalierbarkeit › Vertikale Skalierung (RAM,CPU,Storage) › Server auf mehr Leistungsfähigkeit trimmen Prof. DI Dr. Erich Gams Seite 9 Horizontale Skalierbarkeit › Mehr (billige) Prozessoren › Einfügen von Nodes -> Verteilte Systeme › Horizontale Skalierung führt zu verteilten Systemen! Prof. DI Dr. Erich Gams Seite 10 Skalierungen Prof. DI Dr. Erich Gams Seite 11 Verfügbarkeit Klasse Verfügbarkeit Downtime/Jahr 2 99% 3 Tage 15 Stunden 3 99,9% 8 Stunden 45 Minuten 4 99,99% 52 Minuten 5 99,999% 5 Minuten Prof. DI Dr. Erich Gams Seite 12 Anforderungen › Sicherheit (ACID) › Verfügbarkeit › unbegrenztes Wachstum Prof. DI Dr. Erich Gams Seite 13 Teilung eines Netzwerkes › z.B. in zwei Hälften, beide getrennt erreichbar › Lösung A: Eine Hälfte abschalten — Konsistenz erhalten › Lösung B: Konsistenz aufgeben — Verfügbarkeit erhalten Prof. DI Dr. Erich Gams Seite 14 CAP Theorem * › Laut dem CAP-Theorem kann ein verteiltes System zwei der folgenden Eigenschaften gleichzeitig erfüllen, jedoch nicht alle drei. › Konsistenz (Consistency) Alle Knoten sehen zur selben Zeit dieselben Daten. › Verfügbarkeit (Availability) Alle Anfragen an das System werden stets beantwortet. Jeder Client kann stets schreiben und lesen. › Partitionstoleranz oder Ausfalltoleranz (Partition tolerance) Das System *arbeitet Prof. Eric A. auch Brewer ,bei Verlust von ACM16-Symposium einzelnen „Priciples Netzknoten weiter. of Distributed Computing“, 2000 Prof. DI Dr. Erich Gams Seite 15 CAP Theorem › AP – Domain Name Service Das DNS fällt in die Kategorie (AP). Die Verfügbarkeit ist extrem hoch, ebenso Toleranz gegenüber dem Ausfall einzelner DNS-Server › CA – relationale Datenbanken Die klassischen RDBMSe wie DB2 oder Oracle garantieren vor allem eins: Konsistenz. Grundlagen dieser System ist das ACID-Prinzip. Zugriffe sind stets atomar, konsistent, isoliert und dauerhaft › CP – Bankautomaten Für verteilte Finanzanwendung wie z. B. Geldautomaten ist die Konsistenz der Daten oberstes Gebot Prof. DI Dr. Erich Gams Seite 16 »in larger distributed-scale systems, network partitions are a given; therefore, consistency and availability cannot be achieved at the same time« Werner Vogels, Amazon.com Prof. DI Dr. Erich Gams Seite 17 ACID (Klassische Datenbanken) › Atomarität (Abgeschlossenheit) Sequenz von Daten-Operationen entweder ganz oder gar nicht ausgeführt Konsistenz heißt, dass eine Sequenz von Daten-Operationen nach Beendigung einen konsistenten Datenzustand hinterlässt › Konsistenz Konsistenter Datenzustand -> Sequenz von Operationen -> konsistenter Datenzustand › Isolation (Abgrenzung) Keine Beeinflussung nebenläufiger Daten-Operationen › Dauerhaftigkeit Dauerhafte Speicherung nach (erfolgreichem) Abschluss Prof. DI Dr. Erich Gams Seite 18 BASE (NoSQL Datenbanken) › Basically Available most data is available most of the time › Soft state the DB provides a relaxed view of data in terms of consistency › Eventually consistent data is eventually copied to all applicable nodes, but there is no requirement for all nodes to have identical copies of any given data all the time. Letztendlich nach einer möglichst kurzen Zeitspanne haben alle Teile eines verteiltes Systems wieder die gleiche Sicht auf die Daten. Prof. DI Dr. Erich Gams Seite 19 BASE vs. ACID › weiche Konsistenz › harte Konsistenz › Verfügbarkeit › Isolation › best effort › commit; › Näherungen › Verfügbarkeit? akzeptabel › komplexe › einfache Entwicklung(Schem Entwicklung a) › schneller › sicherer Prof. DI Dr. Erich Gams Seite 20 NoSQL Eigenschaften (revisted) › Selten ACID › Eingeschränkte Transaktionen › Kein JOIN › Kein SQL › Schemafrei › Skaliert horizontal › Replikation Prof. DI Dr. Erich Gams Seite 21 Vorteile Horizontale Skalierung m. weicher Konsistenz Horizontale Skalierung m. → mehr Daten harter Konsistenz Vertikale Skalierung → mehr Durchsatz & höhere Verfügbarkeit Prof. DI Dr. Erich Gams Seite 22 Kategorisierung › Document Store MongoDB, CouchDB › Key Value Apache Hadoop, Riak, Redis, Membase, Amazons Dynamo › Graph › Wide Column Store Prof. DI Dr. Erich Gams Seite 23 Kategorisierung Key-value Graph database Document-oriented Column family Prof. DI Dr. Erich Gams Seite 24 Netflix Prof. DI Dr. Erich Gams Seite 25 Document Store › Idee zusammengehörige Daten strukturiert in einem Dokument speichern › Vorteile Struktur der Daten kann unterschiedlich sein, keine Schemen (Programmierung) Keine Relationen zwischen Tabellen Dokumente können gleiche oder unterschiedliche Schlüssel mit beliebigen Werten besitzen Einfaches Hinzufügen neuer Felder Prof. DI Dr. Erich Gams Seite 26 Document Store › Beispiele Cassandra (Apache, Java, JSON Format) CouchDB (Apache, JSON over REST/HTTP, limited ACID) Informix (IBM, RDBMS with JSON) MongoDB (MongoDB, Inc, C++, GNU AGPL) RavenDB (Hibernating Rhinos LTD, C#, JavaScript) Prof. DI Dr. Erich Gams Seite 27 Document Store › speichern von "Texten" beliebiger Länge mit unstrukturierten Informationen "Vorname": "Wallace" "Adresse": "62 West Wallaby Street" "Interessen": ["Käse","Cracker","Mond"] › Die gespeicherten Dokumente müssen nicht die gleichen Felder enthalten! › Abfragen (Views) = Javascript-Funktionen Prof. DI Dr. Erich Gams Seite 28 Key/Value Store › Idee Konzept der Konfigurationsdateien Zuordnung eines Werts zu einem Schlüssel z.B.: ip=172.16.59.252 › Vorteile Schneller Zugriff, hohe Datenmengen Wert: String, Integer, Liste, Menge usw. Relationen Programmierung Verteilung auf mehrere kleinere Server Prof. DI Dr. Erich Gams Seite 29 Key/Value Store › In-Memory-Variante/On-Disk-Versionen › Embedded-Datenbanken (Unix) dbm, gdbm und Berkley DB › Redis Strings, Listen, Sets › Cassandra spaltenorientiert (spezielle Listen, z.B. Verkaufszahlen) und key-value Ansatz Apache Projekt aus Facebook entstanden Spaltenfamilien, ständig ändernde Datenmengen › Riak, Membase Prof. DI Dr. Erich Gams Seite 30 Graph › Netz aus miteinander mit Hilfe von Kanten verbundenen Knoten › Kanten mit Bezeichnern erweitert -> Netz mit Bedeutung zwischen den Verbindungen (Semantic Web) Prof. DI Dr. Erich Gams Seite 31 Graph name:Bob Bob age:63 OWS sex:male pe:KN ays ty 42d type:O e: tim name:Alice WNS age:21 Alice type:D sex:female RIVES type:car Car vendor:tesla Prof. DI Dr. Erich Gams Seite 32 Graph - Skalierung › herkömmlichen Datenbanken -> keine Suchen über Relationen (Relationstypen) › Daten auf mehrere Server möglicherweise Knoten in zwei Subgraphen aufspalten › Problem: Pareto-Regel gilt auch hier 20% der Knoten besitzen 80% Relevanz Welche Abfragen werden an Graphen gestellt? Welche Verbindungen von besonderer Bedeutung? Prof. DI Dr. Erich Gams Seite 33 Graph - Einsatz › komplex vernetzte Daten (entspricht vielen Join- Operationen) › GIS-Anwendungen (Geographic Information System), Navigation zwischen zwei Orten › Soziale Netze › Wer kennt wen? › Über welche Wege stehen zwei Entitäten (Knoten) in Beziehung Prof. DI Dr. Erich Gams Seite 34 Graph - Einsatz › komplex vernetzte Daten (entspricht vielen Join- Operationen) › Beispiele: Neo4J, OrientDB Prof. DI Dr. Erich Gams Seite 35 Soziale Netze Prof. DI Dr. Erich Gams Seite 36 GIS (Geographic Information Systems) type:R type:Hotel 1 OAD length ROAD name:Radisson Blu :3km 2 5 lat:47.452549 RO long:8.564615 AD RO AD AD RO RO AD ROAD type:Hotel name:Widder 3 t yp lat:47.373517 e len :RO long:8.539252 gth AD 13 :5k D m ROA 8 Prof. DI Dr. Erich Gams Seite 37 Deutsches Schienennetz Prof. DI Dr. Erich Gams Seite 38 Graphendatenbanken – Neo4J › Die verbreiteste Graphendatenbank der Welt › Robust: In Betrieb seit 2003 › AGPLv3 Community Edition – OpenSource › Advanced/Enterprise – für kommerzielle Anwendungen Prof. DI Dr. Erich Gams Seite 39 Graphendatenbanken – Neo4J › Objektorientiert, flexible Netzwerkstruktur › Support für ACID Transaktionen › Horizontal skalierbar › Java API Anbindung mittels Java, Groovy, Scala, JRuby › Runtime Standalone Server Embedded Database Prof. DI Dr. Erich Gams Seite 40 Wide Column Store (spaltenorientiert) › Speicherung von Daten mehrerer Einträge in Spalten anstatt in Zeilen › Spalten mit ähnlichen oder verwandten Inhalten, -> „Column Family“ (analog Tabelle). Es gibt keine logische Struktur in der Column Family. › Millionen von Spalten -> Wide Columns › Beispiele: Cassandra, Apache Hbase, Amazon SimpleDB Prof. DI Dr. Erich Gams Seite 41 Zeilen- vs. Spaltenorientiert › Zeilenorientierte Datenbanken entsprechen Karteikartensystem Berechnung über alle Karteikarten › Spaltenorientierte Datenbanken gleichartigen Informationen stehen auf einer Karte Prof. DI Dr. Erich Gams Seite 42 Wide Column Store (spaltenorientiert) versus Prof. DI Dr. Erich Gams Seite 43 Wide Column Store (spaltenorientiert) › Wann ist die spaltenorientierte Speicherung ein Vorteil? Prof. DI Dr. Erich Gams Seite 44 Vorteil? Ja/Nein › SELECT SUM(Gehalt) FROM tabelle; › UPDATE tabelle SET Gehalt = Gehalt * 1.03; › SELECT * FROM tabelle WHERE Personalnr = 1; › INSERT INTO tabelle (Personalnr, Nachname, Vorname, Gehalt) VALUES (4, Maier, Karl-Heinz, 45000); Prof. DI Dr. Erich Gams Seite 45 Map/Reduce › Programmiermodell von Google entwickelt › MapReduce dient zur verteilten und parallelen Verarbeitung großer Mengen strukturierter und unstrukturierter Daten › Divide-and-Conquer-Ansatz = verteilte Berechnungen über große Rechnercluster Prof. DI Dr. Erich Gams Seite 46 Map/Reduce „Wir möchten alle Bücher in der Bibliothek zählen. Sie zählen Regal Nr. 1, ich Regal Nr. 2. Dies entspricht dem Vorgang „map“ (erfassen). Jetzt addieren wir unsere beiden Zählungen. Dies entspricht dem Vorgang „reduce“ (reduzieren). “ Prof. DI Dr. Erich Gams Seite 47 Map/Reduce › Entnommen aus https://de.talend.com/resources/what-is-mapreduce/ Prof. DI Dr. Erich Gams Seite 48 Einsatzgebiete › Social Media-Plattform Anzahl der Neuanmeldungen in verschiedenen Ländern im letzten Monat -> Bild ihre wachsende Beliebtheit in unterschiedlichen Regionen zu erlangen › Suchengines Seitenaufrufe › Facebook Data Mining, Optimierung von Ads › Amazon Clustering von Produkten... und vieles mehr Prof. DI Dr. Erich Gams Seite 49 MapReduce – Beispiel „Das Lied von der Glocke“, 1799 von Friedrich Schiller http://de.wikipedia.org/wiki/ MapReduce#Beispiel:_Verteilte_H.C3.A4ufigkeitsanalyse_mit_MapRedu ce Prof. DI Dr. Erich Gams Seite 50 What‘s next? Bill Karwin, author of "SQL Antipatterns: Avoiding the Pitfalls of Database Programming“ 3rd August 2017 Prof. DI Dr. Erich Gams Seite 51 What‘s next? A semantic data model merges relational database concepts with knowledge representation concepts from the field of AI. Every data element has a value, but also has associations with other attributes. The idea has been around since the 1970’s but (like AI) it’s evolving slowly. These systems can become very expensive. Prof. DI Dr. Erich Gams Seite 52 What‘s next? A data lake concept is a repository of data, and each set of data is left in its original format. Structured, relational data Semi-structured data like CSV, logs, JSON, XML Unstructured data like emails or other files Binary data like images, audio, video Prof. DI Dr. Erich Gams Seite 53 What‘s next? The data lake stores all types of data and gives you some way of querying across the whole collection. Systems like Apache Hadoop and S3 could be considered to be data lakes. It’s not likely that data lakes are optimized for any particular query pattern, but rely on more brute-force strategies. As computing horsepower and parallelism becomes cheaper, no one will care. Prof. DI Dr. Erich Gams Seite 54 Zu guter Letzt: Vorteile klassisches relationales DBMS › Reife des Systems Seit vier Jahrzehnten am Markt › Kompatibilität: standardisierte Schnittstellen, einheitliches relationales Datenmodell Klare Trennung von der Anwendung › Konsistenzerfordernisse Absichern der Datenkonsistenz (Transaktionssicherheit oder Fremdschlüsselbeziehungen) von der Datenbank selbst unterstützt › Mächtigkeit der Abfragen komplexe Abfragen fassen verschiedene Tabellen zusammen filtern, gruppieren und sortieren Wenig Applikationscode Prof. DI Dr. Erich Gams Seite 55 Quellen › http://de.wikipedia.org/wiki/ACID › http://www.heise.de/open/artikel/NoSQL-im-Ueberblick-1012483.html › http://de.scribd.com/doc/30637338/ACID-vs-BASE-NoSQL-erklart › http://www.heise.de/developer/artikel/Neo4j-NoSQL-Datenbank-mit-graphentheoret ischen-Grundlagen-1152559.html › http://docs.neo4j.org/chunked/stable/tutorials-java-embedded.html › http://de.wikipedia.org/wiki/Spaltenorientierte_Datenbank › http://wikis.gm.fh-koeln.de/wiki_db/Datenbanken/SpaltenorientierteDatenbank › https://news.ycombinator.com/item?id=2849163 Prof. DI Dr. Erich Gams Seite 56 Aufgabe HelloWorld ;-) http://docs.neo4j.org/chunked/stable/tutorial s-java-embedded-hello-world.html Benutzerdatenbank http://www.heise.de/developer/artikel/Neo4j- NoSQL-Datenbank-mit- graphentheoretischen-Grundlagen- 1152559.html Prof. DI Dr. Erich Gams Seite 57 s ; - ) t ‘ s l o g e h f l o s A u Prof. DI Dr. Erich Gams Seite 58 Trugschlüsse bei verteilten Systemen › the network is › topology doesn’t reliable change › latency is zero › there is one › bandwidth is administrator infinite › transport cost is zero › the network is › the network is secure homogeneous Prof. DI Dr. Erich Gams Seite 59