37

Das Back to Basics – Webinar 1: Einführung in NoSQL

  • Upload
    mongodb

  • View
    885

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Das Back to Basics – Webinar 1: Einführung in NoSQL
Page 2: Das Back to Basics – Webinar 1: Einführung in NoSQL

Back to Basics 2016 : Webinar 1

Einführung in NoSQL

Benjamin LorenzSenior Solutions Architect

MongoDB Frankfurt

Page 3: Das Back to Basics – Webinar 1: Einführung in NoSQL

HERZLICH WILLKOMMEN!

Page 4: Das Back to Basics – Webinar 1: Einführung in NoSQL

4

Kursplan

Datum Uhrzeit Webinar31. Mai 2016 14:00 CEST Einführung in NoSQL 16. Juni 2016 14:00 CEST Ihre erste MongoDB-Anwendung 1. Juli 2016 14:00 CEST Schema-Design – Denken in Dokumenten 12. Juli 2016 14:00 CEST Fortschrittliche Indizierung, Text- und Geoindizes 26. Juli 2016 14:00 CEST Einführung in das Aggregation-Framework 30. August 2016 14:00 CEST Produktivsetzung einer Anwendung

Page 5: Das Back to Basics – Webinar 1: Einführung in NoSQL

5

Ablauf heute

• Warum NoSQL• Unterschiedliche Typen von NoSQL-Datenbanken• MongoDB: Detaillierte Übersicht• MongoDB Dauerhaftigkeit (durability) – Replica Sets• MongoDB Skalierbarkeit – Sharding• Fragen & Antworten

Page 6: Das Back to Basics – Webinar 1: Einführung in NoSQL

6

Relationale Datenbanken

Expressive Abfragesprache& sekundäre Indizes

Strenge Konsistenz

Enterprise-Management& Integration

Page 7: Das Back to Basics – Webinar 1: Einführung in NoSQL

7

Die Welt hat sich verändert

Daten Risiken Zeit Kosten

Page 8: Das Back to Basics – Webinar 1: Einführung in NoSQL

8

NoSQL

Skalierbarkeit& Leistung

Immer lauffähig,Globale Bereitstellung

FlexibilitätExpressive Abfragesprache& sekundäre Indizes

Strenge Konsistenz

Enterprise-Management& Integration

Page 9: Das Back to Basics – Webinar 1: Einführung in NoSQL

9

Nexus-Architektur

Skalierbarkeit& Leistung

Immer lauffähig,Globale Bereitstellung

FlexibilitätExpressive Abfragesprache& sekundäre Indizes

Strenge Konsistenz

Enterprise-Management& Integration

Page 10: Das Back to Basics – Webinar 1: Einführung in NoSQL

10

Typen von NoSQL-Datenbanken

• Key/Value-Datenbanken• Spaltenorientierte Datenbanken• Graphdatenbanken• Multi-Model-Datenbanken• Dokumentenorientierte Datenbanken

Page 11: Das Back to Basics – Webinar 1: Einführung in NoSQL

11

Key/Value-Datenbanken

• Assoziatives Array• Extrem schnelles Single-Key-Lookup• Nicht so gut geeignet für Rückwärtssuche

Key Value

12345 4567.3456787

12346 { addr1 : “The Grange”, addr2: “Dublin” }

12347 “top secret password”

12358 “Shopping basket value : 24560”

12787 12345

Page 12: Das Back to Basics – Webinar 1: Einführung in NoSQL

12

Erinnerung: Zeilenorientierte Datenbanken (RDBMS)

• Speichern Daten in Zeilen ab (traditionelles RDBMS, z.B. MySQL)• Bei Abfragen wird jedes Mal eine vollständige Zeile gelesen• Auslesen von nur ein oder zwei Spalten verschwendet Ressourcen

ID Name Gehalt Start-Datum

1 Joe D 24.000 € 1. Jun 1970

2 Peter J 28.000 € 1. Feb 1972

3 Phil G 23.000 € 1. Jan 1973

1 Joe D 24.000 € 1. Jun 1970 2 Peter J 28.000 € 1. Feb 1972 3 Phil G 23.000 € 1. Jan 1973

Page 13: Das Back to Basics – Webinar 1: Einführung in NoSQL

13

Wie funktioniert eine spaltenorientierte Datenbank?

1 2 3

ID Name Gehalt Anfangsdatum

1 Joe D 24.000 € 1. Jun 1970

2 Peter J 28.000 € 1. Feb 1972

3 Phil G 23.000 € 1. Jan 1973

Joe D Peter J Phil G 24.000 € 28.000 € 23.000 € 1. Jun 1970 1. Feb 1972 1. Jan 1973

Page 14: Das Back to Basics – Webinar 1: Einführung in NoSQL

14

Warum ist das attraktiv?

• Plattenzugriff „am Stück“ ermöglicht effizientes Lesen einer Spalte• Die Komprimierung ähnlicher Daten ist extrem effizient• Mit einem Plattenzugriff können somit mehr Daten abgerufen werden• Werden nur einzelne Spalten benötigt, müssen hierfür nicht alle

Zeilen ausgelesen werden• Aber:

– Zeilen zu aktualisieren oder zu löschen ist teuer• Besser für OLAP geeignet als für OLTP

Page 15: Das Back to Basics – Webinar 1: Einführung in NoSQL

15

Graphdatenbanken

• Speichern Graphen (Kanten und Ecken)• Beispiel: Soziale Netzwerke• Effizientes Folgen von Kanten• Optimiert für die Repräsentation von Verbindungen• Keine Graphen, dann keine Graphdatenbank verwenden!

Page 16: Das Back to Basics – Webinar 1: Einführung in NoSQL

16

Multi-Model-Datenbanken

• Kombination mehrerer Speicher-/Zugriffsmodelle• Häufig Graph + „X“• Löst Problem, mehrere Datenbanken synchron halten zu müssen• Der „letzte Schrei“ im Bereich NoSQL

Page 17: Das Back to Basics – Webinar 1: Einführung in NoSQL

17

Dokumentenorientierte Datenbanken• Keine PDF-, Word- oder HTML-Dokumente• Dokumente sind verschachtelte Strukturen, die mit Javascript Object Notation (JSON) erstellt

werden

{ name : “Benjamin Lorenz”,title : “Senior Solutions Architect”,Address : {address : “An der Welle 4”,city : “Frankfurt”,zip_code : “60322”,}expertise: [ “MongoDB”, “Python”, “Javascript” ],employee_number : 521,location : [ 53.34, -6.26 ]

}

Page 18: Das Back to Basics – Webinar 1: Einführung in NoSQL

18

Mit MongoDB werden Dokumente typisiert

{

name : “Benjamin Lorenz”,

title : “Senior Solutions Architect”,

Address : {

address : “An der Welle 4”,

city : “Frankfurt”,

zip_code : “60322”,

}

expertise: [ “MongoDB”, “Python”, “Javascript” ],

employee_number : 521,

location : [ 53.34, -6.26 ]

}

Strings

Verschachteltes Dokument

Array

Integer

Geokoordinaten

Page 19: Das Back to Basics – Webinar 1: Einführung in NoSQL

19

MongoDB versteht JSON-Dokumente

• Native JSON-Datenbank seit der ersten Version• Kann Unterstrukturen verstehen und indizieren• Speichert JSON binär als BSON • Effiziente Kodierung und Dekodierung zur Netzwerkübertragung• MongoDB kann Indizes für jedes Dokumentenfeld erstellen• ...mehr dazu im weiteren Kursverlauf

Page 20: Das Back to Basics – Webinar 1: Einführung in NoSQL

20

Warum Dokumente?• Dynamisches Schema• Wegfall des objekt-relationalen Mappings• Implizite Denormalisierung der Daten zur Leistungssteigerung

Page 21: Das Back to Basics – Webinar 1: Einführung in NoSQL

21

Warum Dokumente?• Dynamisches Schema• Wegfall des objekt-relationalen Mappings• Implizite Denormalisierung der Daten zur Leistungssteigerung

Page 22: Das Back to Basics – Webinar 1: Einführung in NoSQL

22

MongoDB bietet sämtliche Funktionen

Leistungsstarke Abfragen

• Pauls Autos finden• Alle Frankfurter Autobesitzer zwischen 1970

und 1980 finden

Geokoordinaten • Alle Autobesitzer im Umkreis von 5 km des Frankfurter Messeturms finden

Textsuche • Alle Autos finden, die laut Beschreibung mit Ledersitzen ausgestattet sind

Verdichtung • Durchschnittswert von Pauls Autosammlung berechnen

Map Reduce • Finde Muster bzgl. Farben, Ort und Zeit („gibt es in China einen Trend zu Lila?“)

Page 23: Das Back to Basics – Webinar 1: Einführung in NoSQL

23

Hohe Verfügbarkeit und Dauerhaftigkeit – Replica Sets

SekundärSekundär

Primär

Page 24: Das Back to Basics – Webinar 1: Einführung in NoSQL

24

Erzeugung eines Replica Sets

SekundärSekundär

Primär

Heartbeat

Page 25: Das Back to Basics – Webinar 1: Einführung in NoSQL

25

Ausfall eines Servers

SekundärSekundär

Primär

Kein Heartbeat

Page 26: Das Back to Basics – Webinar 1: Einführung in NoSQL

26

Wiederherstellung der Funktionalität

SekundärSekundär

HeartbeatWahl eines neuen Primär-Knotens

Page 27: Das Back to Basics – Webinar 1: Einführung in NoSQL

27

Neues Replica Set – 2 Knoten

SekundärPrimär

HeartbeatNeuer Primär-Knoten

Page 28: Das Back to Basics – Webinar 1: Einführung in NoSQL

28

Reparatur des Replica Sets

SekundärPrimär

Sekundär

Neuer Verbundund Synchronisation

Page 29: Das Back to Basics – Webinar 1: Einführung in NoSQL

29

Stabiles Replica Set

SekundärPrimär

Sekundär

Heartbeat

Page 30: Das Back to Basics – Webinar 1: Einführung in NoSQL

30

Skalierbarkeit mit Sharding

Shard 1 Shard 2 Shard N

Page 31: Das Back to Basics – Webinar 1: Einführung in NoSQL

31

Skalierbarkeit mit Sharding

• Shard-Schlüssel partitioniert Inhalt• MongoDB balanciert Datenmenge im Cluster automatisch• Shards können dem Live-System dynamisch hinzugefügt werden• Neue Ausbalancierung erfolgt im Hintergrund• Shard-Schlüssel ist unveränderbar• Shard-Schlüssel ermöglicht es, Abfragen an ein einzelnes Shard

zu richten• Abfragen ohne Shard-Schlüssel werden an alle Shards gesendet

Page 32: Das Back to Basics – Webinar 1: Einführung in NoSQL

32

Skalierbarkeit mit ShardingMongoS MongoS

Shard 1 Shard 2 Shard N

Shard-Schlüssel

Page 33: Das Back to Basics – Webinar 1: Einführung in NoSQL

33

Abfrage-Routing

• Sharded Cluster nutzen einen Router zur Verteilung der Abfragen• Daemon namens MongoS (Mongo Shard Router)• Daemon ist zustandslos• Kann so oft instanziiert werden wie nötig• Typischerweise eine Instanz pro App-Server

Page 34: Das Back to Basics – Webinar 1: Einführung in NoSQL

34

Zusammenfassung

• Warum NoSQL• Unterschiedliche Typen von NoSQL-Datenbanken• Die wichtigsten Merkmale von MongoDB• Dauerhaftigkeit in MongoDB• Skalierbarkeit in MongoDB

Page 35: Das Back to Basics – Webinar 1: Einführung in NoSQL

35

Nächstes Webinar – Ihre erste MongoDB-Anwendung

• 16. Juni 2016, 14:00 CEST• Bitte Anmeldung nicht vergessen• Entwicklung einer eigenen MongoDB-Anwendung• Datenbanken und Collections erstellen• Abfragen formulieren• Indizes erstellen• Performance verstehen• Feedback an [email protected]

Page 36: Das Back to Basics – Webinar 1: Einführung in NoSQL

Fragen und Antworten

Page 37: Das Back to Basics – Webinar 1: Einführung in NoSQL