Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Vergleich von MongoDB und Redis im Hinblick auf ihre potentielle Eignung zur Messdatenerfassung und -auswertung Seminararbeit Im Studiengang Scientific.

Ähnliche Präsentationen


Präsentation zum Thema: "Vergleich von MongoDB und Redis im Hinblick auf ihre potentielle Eignung zur Messdatenerfassung und -auswertung Seminararbeit Im Studiengang Scientific."—  Präsentation transkript:

1 Vergleich von MongoDB und Redis im Hinblick auf ihre potentielle Eignung zur Messdatenerfassung und -auswertung Seminararbeit Im Studiengang Scientific Programming

2 In der OWI Oel-Waerme-Institut GmbH werden verschiedene Versuche im Bereich Wärme- und Stromerzeugung durchgeführt Dabei werden Messwerte zur späteren Auswertung abgespeichert Vermeiden von unhandlichen Text-Protokolldateien Einfaches und effizientes Speichern von Messdaten – Inklusive Auswertung Einfache Ausdehnung des Datenbanksystems Ausfallsicherheit der Daten Abspeichern der Daten aus LabVIEW Motivation 2Till Franzke

3 1 Einleitung – Warum NoSQL? 2 Einführungen in die NoSQL-Datenbanken – Geschichte – NoSQL-Eigenschaften 3 Die dokumentenorientierte Datenbank MongoDB – Dokumentenorientierte Datenbanken – MongoDB 4 Die Key-Value-Datenbank Redis – Key-Value-Datenbanken – Redis 5 Vergleich der Datenbanken 6 Fazit und Ausblick Inhaltsverzeichnis 3Till Franzke

4 - WARUM NOSQL? 1 Einleitung 4Till Franzke

5 SQL-Datenbanken haben häufig Probleme bei schnellen und großen Leseoperationen – NoSQL-Datenbanken stellen hier eine Verbesserung dar Schemafreiheit Haben eine Schnittstelle zu C++ – Lassen sich in LabVIEW einbinden NoSQL Warum NoSQL? 5Till Franzke

6 - GESCHICHTE - NOSQL-EIGENSCHAFTEN 2 Einführung in die NoSQL-Datenbanken 6Till Franzke

7 Erste NoSQL-Datenbank wurde 1998 veröffentlicht – Verzichtet auf die Abfragesprache SQL, folgt ansonsten aber dem relationalen Modell 2009 wurde der Begriff „NoSQL“ wieder eingeführt – „Not only SQL“ – Verzichtet nicht auf Abfragesprache sondern auf relationales Modell – Nachfrage stieg, da relationale Systeme mit steigender Datenmenge an ihre Grenzen stießen Zwischen 2006 und 2009 entstanden die meisten heute bekannten NoSQL-Datenbanken Geschichte 7Till Franzke

8 Verzicht auf das relationale Model Keine Abfragesprache wie „SQL“ – Fast alle Systeme bieten eine einfache API Schemafreiheit – Keine oder schwache Strukturvorgaben – Kein Sperren oder aufwändiges Ändern von Tabellen bei Strukturänderungen – Formloses Abspeichern – Flexiblere Handhabung NoSQL-Eigenschaften 8Till Franzke

9 Skalierbarkeit – Datenbank soll fähig sein mit steigenden Anforderungen zu wachsen Vertikale Skalierung („Scale-up“): Neue Festplatten… Horizontale Skalierung („Scale-out“): Hinzufügen von Rechnerknoten… – BASE Entstanden aus „Eric Brewers“ CAP-Theorem – Vollständige Vereinbarkeit aus Konsistenz, Verfügbarkeit und Ausfalltoleranz ist nicht möglich Technisch umgesetzt mit dem MVCC Verfahren – Daten bei schreibender Änderung duplizieren – Lesende Anfrage greift auf Duplikat zu – Nach Änderung werden Daten mit Versionsnummern zusammengefügt – Daten kurzzeitig Inkonsistent Till Franzke9 NoSQL-Eigenschaften

10 Replikation – Duplizieren der Daten auf mehrere Server – Erhöht die Ausfallsicherheit und Geschwindigkeit NoSQL-Eigenschaften 10Till Franzke

11 Vier große Ausprägungen von NoSQL-Datenbanken: Dokumentenorientierte Datenbanken – Speichert sog. Dokumente ab, welche eine frei strukturierbare Zusammenstellung von Daten beinhalten – Benutzer: z.B. Apple, BBC und Cern Key-Value-Datenbanken – Speichert Daten in Form von Schlüssel-Wert-Paaren – Sehr schnelle Datenbank – Benutzer: z.B. Google und Amazon Spalten-Datenbanken – Jede Spalte speichert beliebig viele Schlüssel-Wert-Paare, welche über einen eindeutigen Spalten-Key adressiert werden – Benutzer: z.B. Facebook und Twitter Graph-Datenbanken – Beziehungen zwischen einzelnen Elementen abspeichern, z.B. Graph- oder Baumstrukturen – Für Speicherung von Beziehungen zwischen Menschen in sozialen Netzwerken NoSQL-Eigenschaften 11Till Franzke

12 - DOKUMENTENORIENTIERTE DATENBANKEN - MONGODB 3 Die dokumentenorientierte Datenbank MongoDB 12Till Franzke

13 Gehört zu den zentralen NoSQL-Systemen Speichern Daten in sog. Dokumenten ab – Eine frei strukturierbare Sammlung von Daten – Kann beliebig viele Schlüssel/Wert-Paare enthalten – Speichert auch nicht atomare Daten (z.B. Arrays) – Strukturell unabhängig Dokumententenorientierte Datenbanken 13Till Franzke

14 Open-Source-Datenbank Veröffentlicht im Februar 2009 von MongoDB Inc. Geschrieben in C++ Name leitet sich von „humongous“ (riesig) ab Entwickelt für geringe Reaktionszeiten bei großen Datenmengen Speichert Daten im Binary JSON Format (BSON) – Weiterentwicklung von JSON – Speichert Daten im binären Format – Speichert Zusatzinformationen, wie die Länge oder den Datentyp – Es wurde vor allem auf Kodier- und Dekodiergeschwindigkeit geachtet MongoDB 14Till Franzke

15 Eine Datenbank besteht aus „Collections“ – Dort werden die eigentlichen Dokumente abgespeichert Dokumente enthalten frei strukturierbare Daten Ein Dokument ist maximal 8MB groß – Für größere Daten: Erweiterung GridFS – Daten werden aufgeteilt und in separate Dokumente abgespeichert – IDs der Dokumente werden in Metadatendokument hinterlegt um Datenfragmente wieder zusammenzusetzen MongoDB 15Till Franzke

16 MongoDB besitzt eine eigene Abfragesprache – Ermöglicht umfassende Abfragen Verteilte Speichern von Daten: Replikation – Mehrfaches Abspeichern der Daten auf verschiedenen Servern Sharding – Konzept des horizontalen Skalierens – Daten werden anhand eines Shardingkeys verteilt – Einzelne Datenpakete nennt man „Chunks“ und unterschiedliche Server „Shards“ – Auf dem „Config Server“ wird hinterlegt auf welchem Shard sich die Dokumente befinden – Last wird auf mehrere Server verteilt MongoDB 16Till Franzke

17 Es existieren drei Sharding Methoden: Range-based Sharding – Ein oder mehrere Felder aus einem Dokument als Shardingkey – Dokumente mit ähnlichen Shardingkeys mit hoher Wahrscheinlichkeit auf den selben Servern Hash-based Sharding – MD5 Hash als Shardingkey – Ähnliche Inhalte mit großer Wahrscheinlichkeit nicht auf dem gleichen Server – Gleichmäßige Verteilung der Schreibvorgänge Tag-aware Sharding – Dokumente gemäß einer vom Benutzer angegebene Konfiguration auf den physikalischen Speicher verteilt – Manuelles Steuern der Datenverteilung MongoDB 17Till Franzke

18 - KEY-VALUE-DATENBANKEN - REDIS 4 Die Key-Value-Datenbank Redis 18Till Franzke

19 Entwickelt seit den 70er Jahren Gehören zu den ältesten Datenbanken der NoSQL-Familie Speichert Daten in Schlüssel-Wert-Paaren Werte lassen sich in Strings, Sets, Listen und Hashes abspeichern Einfach gehaltenes Schema, hohe Geschwindigkeit Zwei Gruppen – On-Disk-Datenbanken speichern die Daten direkt auf die Festplatte – In-Memory-Datenbanken halten ihre Daten im Speicher Key-Value-Datenbanken 19Till Franzke

20 Open-Source-Datenbank Entworfen von „Salvatore Sanfilippo“ Geschrieben in ANSI C Entwickelt für hohe Lese- und Schreibgeschwindigkeiten Keine native Skalierung Replikationsmechanismen In-Memory-Datenbank – Zu speichernde Daten werden erstmal im RAM gehalten – In bestimmten Intervallen auf Festplatte geschrieben – Daten können bei bestimmter Konfiguration direkt auf die Festplatte geschrieben werden Performanceverlust Redis 20Till Franzke

21 21 Redis Datenbankaufbau – Key/Value Paare

22 Verschiedene implementierte Datentypen – Bieten jeweils eigene Befehle Intern abgespeichert als typenlose String-/Bytearrays – Manche API‘s bieten Möglichkeit Daten in JSON/BSON Format abzuspeichern Till Franzke22 Redis

23 5 Vergleich der Datenbanken 23Till Franzke

24 Schnittstelle MongoDB Schnittstelle zu C++ Abfragesprache für einfach und komplexe Abfragen Redis Lassen sich über die Schnittstelle in LabVIEW einbinden Vergleich der Datenbanken Schnittstelle zu C++ Keine komplexen Abfragen Für jeden unterstützten Datentyp existieren eigene Kommandos 24Till Franzke

25 Datenmodell MongoDB Dokumente Befinden sich innerhalb einer Collection Daten frei von Strukturvorgaben speicherbar Verschiedene Datentypen vorhanden – Unter anderem zum Referenzieren von Daten Redis Key-Value-Paare Schlüssel (Key) kann eine frei wählbare Zeichenkette sein Wert (Value) können verschiedene Datentypen beinhalten (Strings, Sets, Listen und Hashes) Vergleich der Datenbanken 25Till Franzke

26 MongoDB Intern werden Daten im BSON- Format abgespeichert Kann durch die Schemafreiheit gut auf Änderungen in der Datenbank reagieren Mehr Gestaltungsfreiheiten – Datentypen zum Referenzieren von Dokumenten Redis Intern werden Daten als String- /Bytearray abgelegt (typenlos) Manche API bieten Ausnahmen und erlauben das Speichern als JSON bzw. BSON Format Kann durch die Schemafreiheit gut auf Änderungen in der Datenbank reagieren Zum Referenzieren müssten Einträge doppelt abgespeichert werden Till Franzke26 Vergleich der Datenbanken

27 Skalieren MongoDB Bietet horizontales Skalieren Maser/Slave-Replikation Redis Kein natives Skalieren – Feature soll in späterer Version ergänzt werden – Anwender kann „Client Sharing“ implementieren – Programmieraufwand liegt dann beim Programmierer Master/Slave-Replikation Vergleich der Datenbanken Beide Datenbanken bieten die Datenreplikation an – Hohe Ausfallsicherheit MongoDB bietet zusätzlich und mit geringerem Aufwand das Skalieren der Datenbank an 27Till Franzke

28 Beide Datenbanken haben eine hohe Performance – Wobei Redis die schnellere Datenbank ist MongoDB hat den größeren Funktionsumfang – MongoDB bietet Skalierungsverfahren und Replikationsmechanismen von Haus aus – Redis bietet nur Replikationsmechanismen, Skalierungsverfahren müssen von Anwender implementiert werden – Bei Redis geht die Schnelligkeit auf Kosten des Funktionsumfanges – MongoDB erlaubt komplexe Datenabfragen – Redis bietet keine Bausteine zum Referenzieren an und besitzt daher einen geringeren Umfang in der API Fazit 28Till Franzke

29 Programmbausteine (VIs) für LabVIEW entwickeln – Zum Abspeichern der Daten in einer Datenbank Struktur der Daten festlegen – Spätere Verwendung erleichtern Till Franzke29 Ausblick

30 Fragen Fragen? 30Till Franzke

31 Vielen Dank für Ihre Aufmerksamkeit! 31Till Franzke

32 1.Stefen EDLICH, Achim FRIEDLAND, Jens HAMPE, Benjamin BRAUER. NoSQL: Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken. Carl Hanser Verlag München, 2010 2.Shashank TIWARI. Professional NoSQL. John Wiley & Sons Inc., 2011 3.Edb-Online-Lexikon http://wikis.gm.fh-koeln.de/wiki_db/Datenbanken/Redis, zugegriffen am 19.01.2014 4.Edb-Online-Lexikon http://wikis.gm.fh-koeln.de/wiki_db/Datenbanken/MongoDB, zugegriffen am 19.01.2014 5. Edb-Online-Lexikon http://wikis.gm.fh-koeln.de/wiki_db/MongoDB/Sharding, zugegriffen am 19.01.2014 Quellen 32Till Franzke


Herunterladen ppt "Vergleich von MongoDB und Redis im Hinblick auf ihre potentielle Eignung zur Messdatenerfassung und -auswertung Seminararbeit Im Studiengang Scientific."

Ähnliche Präsentationen


Google-Anzeigen