Für viele Unternehmen sind sie elementar wichtig, für Benutzer von Smartphones, Social Media-Anwendungen, Online-Shops sowie diverser Plattformen sind sie dagegen nicht von großer Bedeutung. Die Rede ist von "Daten". Da Daten aus Unternehmenssicht wichtige Informationen, wie zum Beispiel das Kaufverhalten eines Kunden reflektieren, spielen sie heutzutage eine wichtige Rolle bei der Gewinngenerierung. Beispielsweise versuchen Unternehmen anhand von verschiedenen BI-Lösungen, diese gespeicherten Daten auszuwerten, um eine Gewinnmaximierung zu erzielen.
Laut der Digital-Universe-Studie von IDC verdoppelt sich der komplette Datenbestand alle zweieinhalb Jahre und soll im Jahre 2020 in Westeuropa auf fünf Zetabyte anwachsen. Die Studie besagt zudem, dass das Datenvolumen 2020 auf dem gesamten Globus 44 Zetabyte betragen wird.
An einigen Beispielen lässt sich der explosiv wachsende Datenbestand aufzeigen: (1) Derzeit wären acht Jahre nötig, um alle Videos in YouTube, die täglich hochgeladen werden, anzuschauen. (2) Es werden in Facebook pro Minute 2,46 Millionen Inhalte geteilt. (3) Die Summe der Datensätze ist aktuell größer als die Zahl aller Sterne im Universum.
Solch große Datenansammlungen, die aufgrund des Web 2.0 entstanden sind, brachten vor einigen Jahren das Trendwort "BIG DATA" hervor. Die Entwicklung von Big Data brachte vielen Unternehmen nicht nur profitable Informationen, sondern ließ auch deren Datenbanken und Datenbank-Management-Systeme an ihre Grenzen stoßen. Herausforderungen, wie z. B. die schnelle Verarbeitung vieler Datensätze, sind aufgrund der Komplexität und der Datenstruktur von relationalen Datenbank-Management-Systemen nicht mehr leicht zu bewältigen. Diese Herausforderungen stießen den Durchbruch der NoSQL-Datenbanken an.
Diese Bachelorarbeit befasst sich mit folgendem Thema: Implementation und Test einer kleinen Videodatenbank mit CouchDB.
Inhaltsverzeichnis
1 Einleitung
2 Einführung in die NoSQL-Datenbanken
2.1 Definition NoSQL-Datenbanken
2.2 Historischer Rückblick
2.3 Typen von NoSQL-Datenbanken
3 Apache CouchDB
3.1 Dokumentbasiert
3.2 Attachment
3.3 RESTful JSON API
3.4 Futon
4 Installation von CouchDB
4.1 Installationsanleitung
4.2 Installation von cURL
5 CRUD-Operationen
5.1 Anzeigen der Datenbanken
5.2 Anlegen einer Datenbank
5.3 Anlegen von Dokumenten
5.4 Anzeigen von Dokumenten
5.5 Update von Dokumenten
5.6 Löschen eines Dokuments
5.7 Weitere CRUD-Tests
6 Importieren der Videodatenbank
6.1 Aktuelles Datenformat
6.2 Bereinigung der Daten
6.3 Laden der Daten in die Zieldatenbank
6.4 Weitere Importtests
7 Standardabfragen
7.1 UND- sowie ODER-Operationen
7.2 Array-Abfragen
7.3 Anzeigen von Datentypen
8 MapReduce
8.1 Daten summieren
8.2 Daten zusammenzählen
8.3 Ermittelung von Durchschnitten
8.4 Stats-Funktion
9 Fazit
Zielsetzung & Themen
Die Bachelorarbeit hat zum Ziel, die praktische Anwendung und Implementierung einer Videodatenbank unter Verwendung der NoSQL-Datenbank Apache CouchDB zu demonstrieren und zu testen. Im Zentrum steht dabei die Analyse des Umgangs mit unstrukturierten Daten, die Durchführung von CRUD-Operationen mittels cURL sowie die Auswertung der Datenbestände durch MapReduce-Abfragen.
- Grundlagen und Definitionen von NoSQL-Datenbanken
- Installation und Konfiguration von Apache CouchDB und cURL
- Durchführung und Validierung von CRUD-Operationen
- Datenmigration, Bereinigung und Import von CSV- in JSON-Formate
- Datenanalyse durch MapReduce-Abfragen und statistische Funktionen
Auszug aus dem Buch
3.1 Dokumentbasiert
Alle Daten in CouchDB werden in sogenannte Dokumente abgelegt. Jedes Dokument besitzt für die Indexierung eine Dokumenten_id und eine Revisions_id. Wenn ein Dokument durch einen Befehl verändert wird, dann wird für dieses Dokument eine neue Revisions_id erzeugt. Durch die Revisions_id können Veränderungen an den Daten nachvollzogen werden. Da Dokumente keinerlei Beziehungen untereinander besitzen, bringen das Erweitern sowie Löschen von Daten keinerlei Probleme mit sich. Hieran wird der Aspekt der Schemafreiheit sichtbar.
Alle Daten, die in einem Dokument gespeichert werden, besitzen das Format ‚JSON‘. Wie die Daten im JSON-Format dargestellt werden, soll anhand eines Auszuges aus der Test-Videodatenbank darstellt werden:
{ "cass_nr":1, "aufnahme_nr":1, "cass_marke":"kodak", "cass_laenge":240, "cass_typ":"HS", "film_titel":"Ueber den Daechern von Nizza", "genre":"gauner", "schauspieler":"C. Grant", "film_laenge":120, "laenge_ings":0, }
Damit sichtbar wird, wie die JSON-Daten in einem Dokument aussehen, habe ich anhand dieser Daten ein Dokument erzeugt und für die Visualisierung ein Screenshot aus Futon erstellt (Futon-Erklärung siehe Kapitel 3.4):
Zusammenfassung der Kapitel
1 Einleitung: Einführung in die Relevanz von Datenmengen im Zeitalter von Big Data und Vorstellung des Themas der Arbeit.
2 Einführung in die NoSQL-Datenbanken: Erläuterung der Definition, des geschichtlichen Hintergrunds und der verschiedenen Typen von NoSQL-Systemen.
3 Apache CouchDB: Vorstellung des dokumentenbasierten Datenmodells, der RESTful API und des Administrations-Tools Futon.
4 Installation von CouchDB: Detaillierte Schritt-für-Schritt-Anleitung zur Einrichtung von CouchDB und der cURL-Kommandozeilenumgebung.
5 CRUD-Operationen: Praktische Erprobung und Dokumentation der Erstellungs-, Anzeige-, Update- und Löschvorgänge für Datenbanken und Dokumente.
6 Importieren der Videodatenbank: Prozessbeschreibung zur Datenbereinigung und Transformation von CSV-Daten in ein validiertes JSON-Format für den Import.
7 Standardabfragen: Anwendung von Abfragen mittels JavaScript und Funktionen in Futon, inklusive UND/ODER-Operationen sowie Array-Analysen.
8 MapReduce: Untersuchung der Aggregations- und Gruppierungsmöglichkeiten von CouchDB zur Datenanalyse.
9 Fazit: Zusammenfassende Bewertung der Flexibilität von CouchDB und der praktischen Ergebnisse der durchgeführten Implementierung.
Schlüsselwörter
CouchDB, NoSQL, Datenbank, CRUD-Operationen, JSON, Big Data, MapReduce, Datenmigration, cURL, Futon, Schemafreiheit, Datenbereinigung, Web 2.0, Datenanalyse, IT-Infrastruktur.
Häufig gestellte Fragen
Worum geht es in dieser Arbeit grundsätzlich?
Die Arbeit behandelt die praktische Implementierung und den Test einer kleinen Videodatenbank auf Basis der NoSQL-Datenbank Apache CouchDB.
Welche Themenfelder stehen im Mittelpunkt?
Zentrale Schwerpunkte sind das NoSQL-Datenmodell, die Nutzung der REST-Schnittstelle, Datenimport-Prozesse und die Datenanalyse durch MapReduce.
Was ist das primäre Ziel der Untersuchung?
Das Ziel ist die Dokumentation des gesamten Prozesses, von der Installation der Software über die Datenverwaltung bis hin zur komplexen Abfrage von Daten.
Welche wissenschaftlichen Methoden werden angewendet?
Es handelt sich um eine praxisorientierte Arbeit, die auf empirischer Erprobung, technischer Dokumentation und der Anwendung von Datenbankfunktionen basiert.
Was wird im Hauptteil der Arbeit behandelt?
Der Hauptteil gliedert sich in die Installation von CouchDB und cURL, die Durchführung von CRUD-Operationen, den Import externer Daten und die Implementierung von MapReduce-Abfragen.
Welche Begriffe charakterisieren die Arbeit am besten?
Wesentliche Begriffe sind Apache CouchDB, NoSQL, CRUD-Operationen, JSON, Datenbereinigung und MapReduce-Abfragen.
Warum spielt die Datenbereinigung beim Import eine so große Rolle?
CouchDB erfordert ein syntaktisch korrektes JSON-Format. Da Quelldaten (wie CSV) oft nicht diesem Standard entsprechen, ist eine Bereinigung essenziell, um die Validität der Datenbank zu gewährleisten.
Was unterscheidet CouchDB bei der Datenabfrage von relationalen Systemen?
Während relationale Datenbanken SQL und Tabellen nutzen, verwendet CouchDB das MapReduce-Verfahren, um Beziehungen über Dokumente hinweg durch Schlüssel-Wert-Paare abzubilden.
- Quote paper
- Taylan Basmara (Author), 2015, Implementation und Test einer kleinen Videodatenbank mit CouchDB, Munich, GRIN Verlag, https://www.grin.com/document/389033