SlideShare uma empresa Scribd logo
1 de 62
NoSQL Neue Ansätze zur Verwaltung unstrukturierter Daten Tilmann Söffing
Das Relationale Datenbankmodell Tabellenorientiert Attribut Datensatz
Das Relationale Datenbankmodell Einfache Beziehungen mittels Referenzierung
Das Relationale Datenbankmodell Mehrfachbeziehungen über zusätzliche Tabellen
RDBM - Probleme Flexibilität Komplexität Lokalität Konnektivität
RDBM - Probleme Flexibilität Komplexität Lokalität Konnektivität Anzahl der Vornamen
RDBM - Probleme Flexibilität Komplexität Lokalität Konnektivität
RDBM - Probleme Flexibilität Komplexität Lokalität Konnektivität
RDBM - Probleme Flexibilität Komplexität Lokalität Konnektivität
Der Begriff: NoSQL NoSQL steht nicht für „No to SQL“ oder „Never use SQL“
Der Begriff: NoSQL NoSQL steht für Not OnlySQL
Ziele der NoSQL-Bewegung Verwaltung von ,[object Object]
Stark vernetzten Daten
Schnellen Strukturänderungen
Großen Datenmengen,[object Object]
Versionierung
Partitionierung,[object Object]
DOKUMENT { Dokument: Schlüssel-Wert-Paare Schemafrei: Schlüssel sind frei wählbar Paare können jederzeit hinzugefügt, geändert und gelöscht werden "empfänger":"Eddi Müller" "betrag":"1200 EUR" "kontonr":"2221115132" "blz":"830200100" }
DOKUMENT { Dokument: Schlüssel-Wert-Paare Schemafrei: Schlüssel sind frei wählbar Paare können jederzeit hinzugefügt, geändert und gelöscht werden "empfänger":"Eddi Müller" "betrag":"1200 EUR" "kontonr":"2221115132" "blz":"830200100" }
DOKUMENT { Dokument: Schlüssel-Wert-Paare Schemafrei: Schlüssel sind frei wählbar Paare können jederzeit hinzugefügt, geändert und gelöscht werden. "empfänger":"Eddi Müller" "betrag":"1200 EUR" "kontonr":"2221115132" "blz":"830200100"" betreff ":"Rechnung ABC" }
DOKUMENT { Dokument: Schlüssel-Wert-Paare Schemafrei: Schlüssel sind frei wählbar Paare können jederzeit hinzugefügt, geändert und gelöscht werden. "empfänger":"Eddi Müller" "betrag":"1200 EUR" "kontonr":"2221115132" "blz":"830200100"" betreff ":"Rechnung CBA" }
DOKUMENT { Dokument: Schlüssel-Wert-Paare Schemafrei: Schlüssel sind frei wählbar Paare können jederzeit hinzugefügt, geändert und gelöscht werden. "empfänger":"Eddi Müller" "betrag":"1200 EUR" "kontonr":"2221115132" "blz":"830200100"" betreff ":"Rechnung CBA" }
DATENBANK Datenbank anlegen Name der Datenbank vergeben In der Datenbank Dokumente erstellen Datenbank ~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~
http://localhost:5984/_utils/ Datenbank „testdb“ erstellen Dokument anlegen: { "empfänger":"Eddi Müller" "betrag":"1200 EUR" "kontonr":"2221115132" "blz":"830200100" }
DATENMODELL Dokumentenorientiert Relational Graph-Modell ~ ~ ~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~ ~ ~ ~ ~ ~ ~ ~ ~ wenig bis gar nicht vernetzt z. B. Visitenkarten teilweise vernetzt z. B. Bestellungen hoch vernetzt z. B. Verwandschaft
ABFRAGEN
ABFRAGEN Kein SQL Abfragetechnik MapReduce View: map- und reduce-Funktion Umdenken nötig, dafür skalierbar SQL SELECT * FROM …
ABFRAGEN Kein SQL Abfragetechnik MapReduce View: map- und reduce-Funktion Umdenken nötig, dafür skalierbar 1 map reduce Ergebnis 2 3
ABFRAGEN View Kein SQL Abfragetechnik MapReduce View: map- und reduce-Funktion Umdenken nötig, dafür skalierbar map reduce
ABFRAGEN Kein SQL Abfragetechnik MapReduce View: map- und reduce-Funktion Umdenken nötig, dafür skalierbar t n
REPLICATION Ziel: Zwei Datenbanken haben die gleichen Dokumente Repliziere von A nach B Ändere X in A zu X.2 Ändere X in B zu X.3 Repliziere von A nach B Lösche Konflikt X.3
REPLICATION A B Ziel: Zwei Datenbanken haben die gleichen Dokumente Repliziere von A nach B Ändere X in A zu X.2 Ändere X in B zu X.3 Repliziere von A nach B Lösche Konflikt X.3 X.1
REPLICATION A B Ziel: Zwei Datenbanken haben die gleichen Dokumente Repliziere von A nach B Ändere X in A zu X.2 Ändere X in B zu X.3 Repliziere von A nach B Lösche Konflikt X.3 Replikation X.1 X.1
REPLICATION A B Ziel: Zwei Datenbanken haben die gleichen Dokumente Repliziere von A nach B Ändere X in A zu X.2 Ändere X in B zu X.3 Repliziere von A nach B Lösche Konflikt X.3 X.2 X.1
REPLICATION A B Ziel: Zwei Datenbanken haben die gleichen Dokumente Repliziere von A nach B Ändere X in A zu X.2 Ändere X in B zu X.3 Repliziere von A nach B Lösche Konflikt X.3 X.2 X.3
REPLICATION A B Ziel: Zwei Datenbanken haben die gleichen Dokumente Repliziere von A nach B Ändere X in A zu X.2 Ändere X in B zu X.3 Repliziere von A nach B Lösche Konflikt X.3 Replikation X.3 X.2 X.2
REPLICATION A B Ziel: Zwei Datenbanken haben die gleichen Dokumente Repliziere von A nach B Ändere X in A zu X.2 Ändere X in B zu X.3 Repliziere von A nach B Lösche Konflikt X.3 X.2 X.2
Anwendungsfall: Virtuelle Pinnwand Quelle: Bruce Allmächtig
? ? Schema http://url Text texttexttexttext … Skizze…
Replikation Laptop Server
Martin Junghanns sones GmbH R&D Eugen-Richter-Straße 44 99085 Erfurt martin@sones.de 13.05.2011 sones GraphDB
Netzwerke Welt besteht aus Objekten,die miteinander in Verbindung stehen Politik, Wirtschaft, Wissenschaft Körper, Interaktionen Hardware, Software Familie, Freunde, Kollegen Komplexe Zusammenhänge, ständiger Wandel Umfangreiche Datenmengen Photo: Jeffrey Beall, flickr
Graph= (Knoten,Kanten) Graphdatenbanken Knoten ID : 2 ID : 1 Kante Photo: Jeffrey Beall, flickr
Property Graph Benutzerdefinierte Eigenschaften Knoten-Properties Kanten-Properties Knoten ID : 2 Name : Bob Alter : 23 ID : 1 Name : Alice Alter : 21 Freund_von seit : 2009/09/21 Kante Photo: Jeffrey Beall, flickr
Property Graph Benutzerdefinierte Eigenschaften Knoten-Properties Kanten-Properties Knoten ID : 2 Name : Bob Alter : 23 ID : 1 Name : Alice Alter : 21 Freund_von seit : 2009/09/21 Kante Photo: Jeffrey Beall, flickr
Property Graph Beziehungen durch Kantentypen ID : 2 Name : Bob Alter : 23 ID : 1 Name : Alice Alter : 21 Freund_von seit : 2009/09/21 verwandt_mit Grad: Mutter / Tochter ID : 3 Name : Eve Alter : 42 Photo: Jeffrey Beall, flickr
13.05.2011 Property Graph Entitäten durch Knotentypen Person Person ID : 2 Name : Bob Alter : 23 ID : 1 Name : Alice Alter : 21 Freund_von seit : 2009/09/21 wohnt_in verwandt_mit Grad: Mutter / Tochter ID : 3 Name : Eve Alter : 42 Person ID : 4 Name : Jena Land : D EW : 100K Ort Photo: Jeffrey Beall, flickr
Property Graph ID : 23 Typ : Uni Name : TU Ilmenau ID : 12 Typ : Uni Name : BA Gera ID : 3 Typ : Person Name : Carol Age : 18 studiert an seit : 2001 kommuniziert mit studiert an Studiert an verwandt mit seit : 2005 seit : 2004 Encrypted : true Method : AES Grad : Sister ID : 0 Typ : Person Name: Alice Age : 23 ID : 1 Typ : Person Name : Bob Age : 42 kommuniziert mit Encrypted : true Method : RSA Photo: Chuck “Caveman” Coker, flickr
Einfache Verwaltung strukturierter,  semi-strukturierter, unstrukturierter  Daten Photo: litlnemo, flickr
Konstante Performanz auch bei steigender Datenmenge durch indexfreie Adjazenz Photo: Google Search
Einfache Verwaltung  (rekursiv) vernetzter Daten Photo: Robbert van der Steeg, flickr
Entdecken und Empfehlen  potentiell interessanter Zusammenhänge Photo: Jeffrey Beall, flickr
Datensicherheit durch Verschlüsselung, Replikation und Versionierung Photo: squacco, flickr
Anwendungen eGovernment Social Network– zentrale Kommunikationsplattform in der Verwaltung Universal Data Access – Daten zentral verwalten, Daten aus diversen Quellen verknüpfen Recommendation– Bewertung von Personen, Projekten, Bauflächen, Wohnräumen, … Photo: Facebook World Graph
Anwendungen eGovernment Automatische Kategorisierung – um die Übereinstimmung von z.B. Jobanzeigen und Bewerbern zu erhöhen und eine branchenübergreifende Empfehlung zu ermöglichen Verkehrsplanung(GIS)– Planung von Straßen anhand der Auslastung bestehender Verkehrsnetze ... Photo: Google Maps Leipzig
Let‘s go to work @ http://localhost:8080/webshell Photo: outnow.ch
CREATE VERTEX UserProfile  ATTRIBUTES 		( String Nachname,  Integer Alter,  Set<UserProfile> Freunde 		)
INSERT INTO UserProfile  VALUES 		( 			Nachname= „Mueller“, 			Alter = 23 		)
INSERT INTO UserProfile  VALUES 		( 			Nachname= „Schmidt“,  Vorname = „Peter“, 			Alter = 42, Freunde = SETOF(Nachname=„Mueller“) 		)
FROM UserProfile SELECT *

Mais conteúdo relacionado

Semelhante a NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Whitepaper sones GraphDB (ger)
Whitepaper sones GraphDB (ger)Whitepaper sones GraphDB (ger)
Whitepaper sones GraphDB (ger)sones GmbH
 
Fachmodell-First: Einstieg in das NoSQL-Schema-Design
Fachmodell-First: Einstieg in das NoSQL-Schema-DesignFachmodell-First: Einstieg in das NoSQL-Schema-Design
Fachmodell-First: Einstieg in das NoSQL-Schema-DesignGregor Biswanger
 
sones NoSQL GraphDatenbank für Bilderportale
sones NoSQL GraphDatenbank für Bilderportalesones NoSQL GraphDatenbank für Bilderportale
sones NoSQL GraphDatenbank für Bilderportalesones GmbH
 
GraphTalk - Semantische Netze mit structr
GraphTalk - Semantische Netze mit structrGraphTalk - Semantische Netze mit structr
GraphTalk - Semantische Netze mit structrNeo4j
 
Einführung in Linked Data
Einführung in Linked DataEinführung in Linked Data
Einführung in Linked DataFelix Ostrowski
 
Ist ADO.NET EntityFramework das bessere LINQ?
Ist ADO.NET EntityFramework das bessere LINQ?Ist ADO.NET EntityFramework das bessere LINQ?
Ist ADO.NET EntityFramework das bessere LINQ?.NET User Group Dresden
 
1. intranda Goobi Tag: Vom Tool zum Trend
1. intranda Goobi Tag: Vom Tool zum Trend1. intranda Goobi Tag: Vom Tool zum Trend
1. intranda Goobi Tag: Vom Tool zum Trendintranda GmbH
 
Microsoft Access Grundkurs
Microsoft Access GrundkursMicrosoft Access Grundkurs
Microsoft Access Grundkursguest48194a
 
Microsoft Access Grundkurs
Microsoft Access GrundkursMicrosoft Access Grundkurs
Microsoft Access Grundkursborya
 
Von ESE zu EDM und darüber hinaus: Wie Europeana Zugang zu Objekten des Kultu...
Von ESE zu EDM und darüber hinaus: Wie Europeana Zugang zu Objekten des Kultu...Von ESE zu EDM und darüber hinaus: Wie Europeana Zugang zu Objekten des Kultu...
Von ESE zu EDM und darüber hinaus: Wie Europeana Zugang zu Objekten des Kultu...Digitised Manuscripts to Europeana
 
Konzeption eines dezentralen semantischen sozialen Netzwerks
Konzeption eines  dezentralen semantischen sozialen NetzwerksKonzeption eines  dezentralen semantischen sozialen Netzwerks
Konzeption eines dezentralen semantischen sozialen Netzwerksyuriyb
 
Data model mal anders
Data model mal andersData model mal anders
Data model mal andersMaxim Zaks
 
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...Karin Patenge
 
Präsentation amsl Deutscher Bibliothekartag 2014 ERM
Präsentation amsl Deutscher Bibliothekartag 2014 ERMPräsentation amsl Deutscher Bibliothekartag 2014 ERM
Präsentation amsl Deutscher Bibliothekartag 2014 ERMLydiaU
 
Projekt AMSL: Entwicklung eines Electronic Resource Management Systems für Bi...
Projekt AMSL: Entwicklung eines Electronic Resource Management Systems für Bi...Projekt AMSL: Entwicklung eines Electronic Resource Management Systems für Bi...
Projekt AMSL: Entwicklung eines Electronic Resource Management Systems für Bi...Björn Muschall
 
Back to Basics Webinar-1 Einführung in NoSQL Deutsch 2017
Back to Basics Webinar-1 Einführung in NoSQL Deutsch 2017Back to Basics Webinar-1 Einführung in NoSQL Deutsch 2017
Back to Basics Webinar-1 Einführung in NoSQL Deutsch 2017MongoDB
 
20110505 linked openeuropeanalswt2011
20110505 linked openeuropeanalswt201120110505 linked openeuropeanalswt2011
20110505 linked openeuropeanalswt2011Stefan Gradmann
 

Semelhante a NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten (20)

Whitepaper sones GraphDB (ger)
Whitepaper sones GraphDB (ger)Whitepaper sones GraphDB (ger)
Whitepaper sones GraphDB (ger)
 
sones GraphDB + Mono + Linux
sones GraphDB + Mono + Linuxsones GraphDB + Mono + Linux
sones GraphDB + Mono + Linux
 
Fachmodell-First: Einstieg in das NoSQL-Schema-Design
Fachmodell-First: Einstieg in das NoSQL-Schema-DesignFachmodell-First: Einstieg in das NoSQL-Schema-Design
Fachmodell-First: Einstieg in das NoSQL-Schema-Design
 
Wir sind aber nicht Twitter
Wir sind aber nicht TwitterWir sind aber nicht Twitter
Wir sind aber nicht Twitter
 
sones NoSQL GraphDatenbank für Bilderportale
sones NoSQL GraphDatenbank für Bilderportalesones NoSQL GraphDatenbank für Bilderportale
sones NoSQL GraphDatenbank für Bilderportale
 
GraphTalk - Semantische Netze mit structr
GraphTalk - Semantische Netze mit structrGraphTalk - Semantische Netze mit structr
GraphTalk - Semantische Netze mit structr
 
Einführung in Linked Data
Einführung in Linked DataEinführung in Linked Data
Einführung in Linked Data
 
Ist ADO.NET EntityFramework das bessere LINQ?
Ist ADO.NET EntityFramework das bessere LINQ?Ist ADO.NET EntityFramework das bessere LINQ?
Ist ADO.NET EntityFramework das bessere LINQ?
 
1. intranda Goobi Tag: Vom Tool zum Trend
1. intranda Goobi Tag: Vom Tool zum Trend1. intranda Goobi Tag: Vom Tool zum Trend
1. intranda Goobi Tag: Vom Tool zum Trend
 
Microsoft Access Grundkurs
Microsoft Access GrundkursMicrosoft Access Grundkurs
Microsoft Access Grundkurs
 
Microsoft Access Grundkurs
Microsoft Access GrundkursMicrosoft Access Grundkurs
Microsoft Access Grundkurs
 
NoSQL und CouchDB
NoSQL und CouchDBNoSQL und CouchDB
NoSQL und CouchDB
 
Von ESE zu EDM und darüber hinaus: Wie Europeana Zugang zu Objekten des Kultu...
Von ESE zu EDM und darüber hinaus: Wie Europeana Zugang zu Objekten des Kultu...Von ESE zu EDM und darüber hinaus: Wie Europeana Zugang zu Objekten des Kultu...
Von ESE zu EDM und darüber hinaus: Wie Europeana Zugang zu Objekten des Kultu...
 
Konzeption eines dezentralen semantischen sozialen Netzwerks
Konzeption eines  dezentralen semantischen sozialen NetzwerksKonzeption eines  dezentralen semantischen sozialen Netzwerks
Konzeption eines dezentralen semantischen sozialen Netzwerks
 
Data model mal anders
Data model mal andersData model mal anders
Data model mal anders
 
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
 
Präsentation amsl Deutscher Bibliothekartag 2014 ERM
Präsentation amsl Deutscher Bibliothekartag 2014 ERMPräsentation amsl Deutscher Bibliothekartag 2014 ERM
Präsentation amsl Deutscher Bibliothekartag 2014 ERM
 
Projekt AMSL: Entwicklung eines Electronic Resource Management Systems für Bi...
Projekt AMSL: Entwicklung eines Electronic Resource Management Systems für Bi...Projekt AMSL: Entwicklung eines Electronic Resource Management Systems für Bi...
Projekt AMSL: Entwicklung eines Electronic Resource Management Systems für Bi...
 
Back to Basics Webinar-1 Einführung in NoSQL Deutsch 2017
Back to Basics Webinar-1 Einführung in NoSQL Deutsch 2017Back to Basics Webinar-1 Einführung in NoSQL Deutsch 2017
Back to Basics Webinar-1 Einführung in NoSQL Deutsch 2017
 
20110505 linked openeuropeanalswt2011
20110505 linked openeuropeanalswt201120110505 linked openeuropeanalswt2011
20110505 linked openeuropeanalswt2011
 

Mais de Martin Junghanns

Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup Munich
Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup MunichMorpheus SQL and Cypher® in Apache® Spark - Big Data Meetup Munich
Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup MunichMartin Junghanns
 
Gut vernetzt: Skalierbares Graph Mining für Business Intelligence
Gut vernetzt: Skalierbares Graph Mining für Business IntelligenceGut vernetzt: Skalierbares Graph Mining für Business Intelligence
Gut vernetzt: Skalierbares Graph Mining für Business IntelligenceMartin Junghanns
 
Distributed Graph Analytics with Gradoop
Distributed Graph Analytics with GradoopDistributed Graph Analytics with Gradoop
Distributed Graph Analytics with GradoopMartin Junghanns
 
Gradoop: Scalable Graph Analytics with Apache Flink @ Flink & Neo4j Meetup Be...
Gradoop: Scalable Graph Analytics with Apache Flink @ Flink & Neo4j Meetup Be...Gradoop: Scalable Graph Analytics with Apache Flink @ Flink & Neo4j Meetup Be...
Gradoop: Scalable Graph Analytics with Apache Flink @ Flink & Neo4j Meetup Be...Martin Junghanns
 
Gradoop: Scalable Graph Analytics with Apache Flink @ FOSDEM 2016
Gradoop: Scalable Graph Analytics with Apache Flink @ FOSDEM 2016Gradoop: Scalable Graph Analytics with Apache Flink @ FOSDEM 2016
Gradoop: Scalable Graph Analytics with Apache Flink @ FOSDEM 2016Martin Junghanns
 
Meetup Big Data User Group Dresden: Gradoop - Scalable Graph Analytics with A...
Meetup Big Data User Group Dresden: Gradoop - Scalable Graph Analytics with A...Meetup Big Data User Group Dresden: Gradoop - Scalable Graph Analytics with A...
Meetup Big Data User Group Dresden: Gradoop - Scalable Graph Analytics with A...Martin Junghanns
 
Gradoop: Scalable Graph Analytics with Apache Flink @ Flink Forward 2015
Gradoop: Scalable Graph Analytics with Apache Flink @ Flink Forward 2015Gradoop: Scalable Graph Analytics with Apache Flink @ Flink Forward 2015
Gradoop: Scalable Graph Analytics with Apache Flink @ Flink Forward 2015Martin Junghanns
 

Mais de Martin Junghanns (7)

Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup Munich
Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup MunichMorpheus SQL and Cypher® in Apache® Spark - Big Data Meetup Munich
Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup Munich
 
Gut vernetzt: Skalierbares Graph Mining für Business Intelligence
Gut vernetzt: Skalierbares Graph Mining für Business IntelligenceGut vernetzt: Skalierbares Graph Mining für Business Intelligence
Gut vernetzt: Skalierbares Graph Mining für Business Intelligence
 
Distributed Graph Analytics with Gradoop
Distributed Graph Analytics with GradoopDistributed Graph Analytics with Gradoop
Distributed Graph Analytics with Gradoop
 
Gradoop: Scalable Graph Analytics with Apache Flink @ Flink & Neo4j Meetup Be...
Gradoop: Scalable Graph Analytics with Apache Flink @ Flink & Neo4j Meetup Be...Gradoop: Scalable Graph Analytics with Apache Flink @ Flink & Neo4j Meetup Be...
Gradoop: Scalable Graph Analytics with Apache Flink @ Flink & Neo4j Meetup Be...
 
Gradoop: Scalable Graph Analytics with Apache Flink @ FOSDEM 2016
Gradoop: Scalable Graph Analytics with Apache Flink @ FOSDEM 2016Gradoop: Scalable Graph Analytics with Apache Flink @ FOSDEM 2016
Gradoop: Scalable Graph Analytics with Apache Flink @ FOSDEM 2016
 
Meetup Big Data User Group Dresden: Gradoop - Scalable Graph Analytics with A...
Meetup Big Data User Group Dresden: Gradoop - Scalable Graph Analytics with A...Meetup Big Data User Group Dresden: Gradoop - Scalable Graph Analytics with A...
Meetup Big Data User Group Dresden: Gradoop - Scalable Graph Analytics with A...
 
Gradoop: Scalable Graph Analytics with Apache Flink @ Flink Forward 2015
Gradoop: Scalable Graph Analytics with Apache Flink @ Flink Forward 2015Gradoop: Scalable Graph Analytics with Apache Flink @ Flink Forward 2015
Gradoop: Scalable Graph Analytics with Apache Flink @ Flink Forward 2015
 

NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

  • 1. NoSQL Neue Ansätze zur Verwaltung unstrukturierter Daten Tilmann Söffing
  • 2. Das Relationale Datenbankmodell Tabellenorientiert Attribut Datensatz
  • 3. Das Relationale Datenbankmodell Einfache Beziehungen mittels Referenzierung
  • 4. Das Relationale Datenbankmodell Mehrfachbeziehungen über zusätzliche Tabellen
  • 5. RDBM - Probleme Flexibilität Komplexität Lokalität Konnektivität
  • 6. RDBM - Probleme Flexibilität Komplexität Lokalität Konnektivität Anzahl der Vornamen
  • 7. RDBM - Probleme Flexibilität Komplexität Lokalität Konnektivität
  • 8. RDBM - Probleme Flexibilität Komplexität Lokalität Konnektivität
  • 9. RDBM - Probleme Flexibilität Komplexität Lokalität Konnektivität
  • 10. Der Begriff: NoSQL NoSQL steht nicht für „No to SQL“ oder „Never use SQL“
  • 11. Der Begriff: NoSQL NoSQL steht für Not OnlySQL
  • 12.
  • 15.
  • 17.
  • 18.
  • 19. DOKUMENT { Dokument: Schlüssel-Wert-Paare Schemafrei: Schlüssel sind frei wählbar Paare können jederzeit hinzugefügt, geändert und gelöscht werden "empfänger":"Eddi Müller" "betrag":"1200 EUR" "kontonr":"2221115132" "blz":"830200100" }
  • 20. DOKUMENT { Dokument: Schlüssel-Wert-Paare Schemafrei: Schlüssel sind frei wählbar Paare können jederzeit hinzugefügt, geändert und gelöscht werden "empfänger":"Eddi Müller" "betrag":"1200 EUR" "kontonr":"2221115132" "blz":"830200100" }
  • 21. DOKUMENT { Dokument: Schlüssel-Wert-Paare Schemafrei: Schlüssel sind frei wählbar Paare können jederzeit hinzugefügt, geändert und gelöscht werden. "empfänger":"Eddi Müller" "betrag":"1200 EUR" "kontonr":"2221115132" "blz":"830200100"" betreff ":"Rechnung ABC" }
  • 22. DOKUMENT { Dokument: Schlüssel-Wert-Paare Schemafrei: Schlüssel sind frei wählbar Paare können jederzeit hinzugefügt, geändert und gelöscht werden. "empfänger":"Eddi Müller" "betrag":"1200 EUR" "kontonr":"2221115132" "blz":"830200100"" betreff ":"Rechnung CBA" }
  • 23. DOKUMENT { Dokument: Schlüssel-Wert-Paare Schemafrei: Schlüssel sind frei wählbar Paare können jederzeit hinzugefügt, geändert und gelöscht werden. "empfänger":"Eddi Müller" "betrag":"1200 EUR" "kontonr":"2221115132" "blz":"830200100"" betreff ":"Rechnung CBA" }
  • 24. DATENBANK Datenbank anlegen Name der Datenbank vergeben In der Datenbank Dokumente erstellen Datenbank ~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~
  • 25. http://localhost:5984/_utils/ Datenbank „testdb“ erstellen Dokument anlegen: { "empfänger":"Eddi Müller" "betrag":"1200 EUR" "kontonr":"2221115132" "blz":"830200100" }
  • 26. DATENMODELL Dokumentenorientiert Relational Graph-Modell ~ ~ ~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~ ~~~~~~~ ~~~~~~ ~ ~ ~ ~ ~ ~ ~ ~ wenig bis gar nicht vernetzt z. B. Visitenkarten teilweise vernetzt z. B. Bestellungen hoch vernetzt z. B. Verwandschaft
  • 28. ABFRAGEN Kein SQL Abfragetechnik MapReduce View: map- und reduce-Funktion Umdenken nötig, dafür skalierbar SQL SELECT * FROM …
  • 29. ABFRAGEN Kein SQL Abfragetechnik MapReduce View: map- und reduce-Funktion Umdenken nötig, dafür skalierbar 1 map reduce Ergebnis 2 3
  • 30. ABFRAGEN View Kein SQL Abfragetechnik MapReduce View: map- und reduce-Funktion Umdenken nötig, dafür skalierbar map reduce
  • 31. ABFRAGEN Kein SQL Abfragetechnik MapReduce View: map- und reduce-Funktion Umdenken nötig, dafür skalierbar t n
  • 32. REPLICATION Ziel: Zwei Datenbanken haben die gleichen Dokumente Repliziere von A nach B Ändere X in A zu X.2 Ändere X in B zu X.3 Repliziere von A nach B Lösche Konflikt X.3
  • 33. REPLICATION A B Ziel: Zwei Datenbanken haben die gleichen Dokumente Repliziere von A nach B Ändere X in A zu X.2 Ändere X in B zu X.3 Repliziere von A nach B Lösche Konflikt X.3 X.1
  • 34. REPLICATION A B Ziel: Zwei Datenbanken haben die gleichen Dokumente Repliziere von A nach B Ändere X in A zu X.2 Ändere X in B zu X.3 Repliziere von A nach B Lösche Konflikt X.3 Replikation X.1 X.1
  • 35. REPLICATION A B Ziel: Zwei Datenbanken haben die gleichen Dokumente Repliziere von A nach B Ändere X in A zu X.2 Ändere X in B zu X.3 Repliziere von A nach B Lösche Konflikt X.3 X.2 X.1
  • 36. REPLICATION A B Ziel: Zwei Datenbanken haben die gleichen Dokumente Repliziere von A nach B Ändere X in A zu X.2 Ändere X in B zu X.3 Repliziere von A nach B Lösche Konflikt X.3 X.2 X.3
  • 37. REPLICATION A B Ziel: Zwei Datenbanken haben die gleichen Dokumente Repliziere von A nach B Ändere X in A zu X.2 Ändere X in B zu X.3 Repliziere von A nach B Lösche Konflikt X.3 Replikation X.3 X.2 X.2
  • 38. REPLICATION A B Ziel: Zwei Datenbanken haben die gleichen Dokumente Repliziere von A nach B Ändere X in A zu X.2 Ändere X in B zu X.3 Repliziere von A nach B Lösche Konflikt X.3 X.2 X.2
  • 39. Anwendungsfall: Virtuelle Pinnwand Quelle: Bruce Allmächtig
  • 40.
  • 41. ? ? Schema http://url Text texttexttexttext … Skizze…
  • 43. Martin Junghanns sones GmbH R&D Eugen-Richter-Straße 44 99085 Erfurt martin@sones.de 13.05.2011 sones GraphDB
  • 44. Netzwerke Welt besteht aus Objekten,die miteinander in Verbindung stehen Politik, Wirtschaft, Wissenschaft Körper, Interaktionen Hardware, Software Familie, Freunde, Kollegen Komplexe Zusammenhänge, ständiger Wandel Umfangreiche Datenmengen Photo: Jeffrey Beall, flickr
  • 45. Graph= (Knoten,Kanten) Graphdatenbanken Knoten ID : 2 ID : 1 Kante Photo: Jeffrey Beall, flickr
  • 46. Property Graph Benutzerdefinierte Eigenschaften Knoten-Properties Kanten-Properties Knoten ID : 2 Name : Bob Alter : 23 ID : 1 Name : Alice Alter : 21 Freund_von seit : 2009/09/21 Kante Photo: Jeffrey Beall, flickr
  • 47. Property Graph Benutzerdefinierte Eigenschaften Knoten-Properties Kanten-Properties Knoten ID : 2 Name : Bob Alter : 23 ID : 1 Name : Alice Alter : 21 Freund_von seit : 2009/09/21 Kante Photo: Jeffrey Beall, flickr
  • 48. Property Graph Beziehungen durch Kantentypen ID : 2 Name : Bob Alter : 23 ID : 1 Name : Alice Alter : 21 Freund_von seit : 2009/09/21 verwandt_mit Grad: Mutter / Tochter ID : 3 Name : Eve Alter : 42 Photo: Jeffrey Beall, flickr
  • 49. 13.05.2011 Property Graph Entitäten durch Knotentypen Person Person ID : 2 Name : Bob Alter : 23 ID : 1 Name : Alice Alter : 21 Freund_von seit : 2009/09/21 wohnt_in verwandt_mit Grad: Mutter / Tochter ID : 3 Name : Eve Alter : 42 Person ID : 4 Name : Jena Land : D EW : 100K Ort Photo: Jeffrey Beall, flickr
  • 50. Property Graph ID : 23 Typ : Uni Name : TU Ilmenau ID : 12 Typ : Uni Name : BA Gera ID : 3 Typ : Person Name : Carol Age : 18 studiert an seit : 2001 kommuniziert mit studiert an Studiert an verwandt mit seit : 2005 seit : 2004 Encrypted : true Method : AES Grad : Sister ID : 0 Typ : Person Name: Alice Age : 23 ID : 1 Typ : Person Name : Bob Age : 42 kommuniziert mit Encrypted : true Method : RSA Photo: Chuck “Caveman” Coker, flickr
  • 51. Einfache Verwaltung strukturierter, semi-strukturierter, unstrukturierter Daten Photo: litlnemo, flickr
  • 52. Konstante Performanz auch bei steigender Datenmenge durch indexfreie Adjazenz Photo: Google Search
  • 53. Einfache Verwaltung (rekursiv) vernetzter Daten Photo: Robbert van der Steeg, flickr
  • 54. Entdecken und Empfehlen potentiell interessanter Zusammenhänge Photo: Jeffrey Beall, flickr
  • 55. Datensicherheit durch Verschlüsselung, Replikation und Versionierung Photo: squacco, flickr
  • 56. Anwendungen eGovernment Social Network– zentrale Kommunikationsplattform in der Verwaltung Universal Data Access – Daten zentral verwalten, Daten aus diversen Quellen verknüpfen Recommendation– Bewertung von Personen, Projekten, Bauflächen, Wohnräumen, … Photo: Facebook World Graph
  • 57. Anwendungen eGovernment Automatische Kategorisierung – um die Übereinstimmung von z.B. Jobanzeigen und Bewerbern zu erhöhen und eine branchenübergreifende Empfehlung zu ermöglichen Verkehrsplanung(GIS)– Planung von Straßen anhand der Auslastung bestehender Verkehrsnetze ... Photo: Google Maps Leipzig
  • 58. Let‘s go to work @ http://localhost:8080/webshell Photo: outnow.ch
  • 59. CREATE VERTEX UserProfile ATTRIBUTES ( String Nachname, Integer Alter, Set<UserProfile> Freunde )
  • 60. INSERT INTO UserProfile VALUES ( Nachname= „Mueller“, Alter = 23 )
  • 61. INSERT INTO UserProfile VALUES ( Nachname= „Schmidt“, Vorname = „Peter“, Alter = 42, Freunde = SETOF(Nachname=„Mueller“) )
  • 63. ALTER VERTEX UserProfile ADD ATTRIBUTES ( String Wohnort ) ALTER VERTEX UserProfile MANDATORY ( Wohnort ) FROM UserProfile SELECT *
  • 64. INSERT INTO UserProfile VALUES ( Nachname = „Schulze“, Alter = 37 )
  • 65. martin@sones.de Vielen Dank OlivoSkawronek IBYKUSAG Oliver.Skawronek@ibykus.de Erfurt Tilmann Soeffing SenovaGmbH T.Soeffing@senova.de Weimar Martin Junghanns sones GmbH R&D martin@sones.de Leipzig