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

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Datenbankdesign mit ACCESS.
Hash-Tabellen und -Funktionen Hash-Tabellen in Java
Eine dynamische Menge, die diese Operationen unterstützt,
Datenbanken Einführung.
Indizierung von Graphen durch häufige Subgraphen (2)
Objekt – Relationales – Modell Tomasz Makowski IN
Dr. Brigitte Mathiak Kapitel 9 Physische Datenorganisation (ganz kurz)
Dieter Oppermann und Lena Sazonova, Nutzertagung 2003
Kapitel 4 Datenstrukturen
Datenbankzugriff im WWW (Kommerzielle Systeme)
Das Entity-Relationship-Modell
Lightweight Directory Access Protocol
Sortierverfahren Richard Göbel.
Effizienz: Indexstrukturen
Colibi Bibliothekssystem der Computerlinguistik. Einführung Motivation Was braucht Colibi? Software Datenbankdesign.
DOM (Document Object Model)
AGXIS – Ein Konzept für eine generische Schnittstellenbeschreibung Dr.-Ing. Ulrich Hussels, RISA GmbH 07. Juni 2005 Workshop Umweltdatenbanken 2005.
XINDICE The Apache XML Project Name: Jacqueline Langhorst
SQL als Abfragesprache
Datenbankdesign und Normalisierung
Datenbankentwurf mit Hilfe des ER-Modells entwickeln
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Access 2000 Datenbanken.
Datenbanken Einführung Merkmale dateiorientierte Datenverwaltung
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
Datenbankentwurfsprozess
Smartphones im Kanzleinetz Vergleich der technischen Umsetzung COLLEGA - TAG Freitag, 27. November 2009.
Einführung und Überblick
Raid 0.
Bewertung von Cloud-Anbietern aus Sicht eines Start-ups
Lommy® SAFE Individuelles Überwachen von Fahrzeugen und Gütern.
Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.
Die Grundterminologie
Einführung in die Programmierung
Erstellen einer Webseitenstatistik mithilfe eines OLAP-Servers
Erstellen einer Webseitenstatistik mithilfe eines OLAP-Servers
Was macht eigentlich dieses ExsoForm? Ein Beispiel für eine Dokumentendefinition in Screenshots.
Access 2000 Willkommen im Access-Kurs Oliver Mochmann.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Reasoner Semantische Interoperabilität
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Sesame Florian Mayrhuber
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Allgemeines zu Datenbanken
(D.h. „Hallo MausFans!“ auf Japanisch).
Replikation und Synchronisation
Von Isabelle Spörl und Simon Schausberger
Normalisierungsprozess
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
ArcView als SDE - Client SDE Client inklusive! ArcViewGIS: ArcView GIS: Michael Jacobi ESRI GmbH ESRI EUROPEAN USER CONFERENCE.
SS 2014 – IBB4B Datenmanagement Do 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
LVM - Logical Volume Management unter Linux
DaimlerChrysler Workshop Architektur HyperbolicModeler  Notes Client  Notes native Java Klassen  Mehr Informationen über Design  Zugriff auf Dokumente.
SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R Vorlesung #1 Datenmanagement.
SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
© 2012 TravelTainment Einführung in NoSql-Datenbanken und der Vergleich zu relationalen Datenbanken Alexey Sibirtsev.
© 2015 TravelTainment NoSQL – Eine Alternative zu relationalen Datenbanken Dominik Schmitz.
Rechen- und Kommunikationszentrum (RZ) Strukturierte Datensammlung in verteilten Systemen für den DHCP-Service Tim Becker Seminararbeit / /
Oracle Text bei sehr großen Datenmengen Referent Martin Augst Senior Project / Account Manager Semantec GmbH Benzstr.
, Jens Rettig1 Einsatz von Versionsverwaltungstools im ORACLE – Umfeld Dipl.-Inform. Jens Rettig
Key-Value Paare (KVP) - Metadaten für Kanäle speichern und nach MDF4 exportieren PM (V1.0)
© 2012 TravelTainment Einführung in NoSQL-Datenbanken und deren Klassifizierung Von Patrick Becker.
XML-Erweiterungen in ORDBMS Seminar: DBMS für spezielle Anwendungen Florian Brieler.
Von Wietlisbach, Lenzin und Winter
Präsentation von Darleen und Michèle
Von Wietlisbach, Lenzin und Winter
 Präsentation transkript:

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

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

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

- WARUM NOSQL? 1 Einleitung 4Till Franzke

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Redis Datenbankaufbau – Key/Value Paare

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

5 Vergleich der Datenbanken 23Till Franzke

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

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

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

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

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

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

Fragen Fragen? 30Till Franzke

Vielen Dank für Ihre Aufmerksamkeit! 31Till Franzke

1.Stefen EDLICH, Achim FRIEDLAND, Jens HAMPE, Benjamin BRAUER. NoSQL: Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken. Carl Hanser Verlag München, Shashank TIWARI. Professional NoSQL. John Wiley & Sons Inc., Edb-Online-Lexikon zugegriffen am Edb-Online-Lexikon zugegriffen am Edb-Online-Lexikon zugegriffen am Quellen 32Till Franzke