In der ersten Vorlesung von Big Data Technologien besprechen wir einleitend die kommenden Themen fürs Semester und beginnen mit dem Einstieg zu NoSQL.
| Anfang | BigData-SoSe16-1-Intro – Seite 1 |
|---|---|
| Ende | BigData-SoSe16-2-NoSQL – Seite 13 |
Einleitung
Wofür wird Big Data grundlegend benötigt?
- Sensorik
- Analyse
Welche Charakteristika hat Big Data?
- Es lässt sich nicht ausschließlich an Datenvolumen, wie GB oder TB, festmachen
- Begrifflichkeit ist von Volume, Velocity, Variety und Veracity (Four V’s) geprägt
- Je nach Anwendungsfall stehen unterschiedliche Faktoren im Vordergrund
- Veracity ist der neueste Faktor davon und zieht den Wahrheitsgehalt der Informationen hinzu
- Das fünfte V entspricht dem Wert der Information bzw. den Mehrwerten, die daraus geschöpft werden
- Die Begrifflichkeit Open Source sollte allerdings nicht Bestandteil einer Definition sein
Was hat es mit dem Hype zu Big Data auf sich?
- Dies bezieht sich auf den Hype Cycle von Gartner
- Während der Hype Cycle bereits die produktive Nutzung von Big Data Technologien andeutet, steht das Thema noch in den Kinderschuhen
- Tatsächlich kristallisieren sich erst noch Systeme aus den entstandenen Feldern heraus, welche stark diversifiziert sind und keine einheitlichen Standards besitzen
- Der Reifegrad dieser Lösungen muss daher noch wachsen
- Eine Trend von Big Data sind In-Memory Systeme, die alle Informationen im schnellen Arbeitsspeicher halten, um super-performante Auswertungen für transaktionales Prozessing und OLAP zu ermöglichen (Voraussetzung hierfür ist günstiger RAM und die Verfügbarkeit guter Kompressionstechniken)
Welchen Einfluss hat die Skalierbarkeit?
- Scale up (Vertikale Skalierung): Ein großes monolithisches System (Teuer, spezialisierte Hardware und inflexible Skalierung), das durch neue Bauteile erweitert wird
- Scale out (Horizontale Skalierung): Ein Cluster aus vielen kleinen Systemen (Günstig, standardisierte Hardware, leicht zu erweitern und parallelisierbare Prozesse), das durch Hinzufügen von Nodes erweitert wird
- Ein vertikales System (scale out) ist optimal geeignet für das Hinzufügen und Entfernen von Nodes, da es Teil des Konzeptes ist
- Verteilte Datenbanken (scale out) haben immer mit Systemausfällen und Konsistenzproblemen zu kämpfen
- Big Data sollte für einen maximalen Nutzen auch nur dann eingesetzt werden, wenn man es wirklich braucht bzw. geeignete Daten besitzt
- Eine absolute Aussage bezüglich einer Scaling-Grenze kann nicht ohne weiteres getroffen werden

Warum wurden Cluster nicht schon früher genutzt?
- Hohe Wartungskosten, da Ausfälle mit steigender Anzahl ebenso steigen und wechselseitig wirken
- Das Datenvolumen war zu hoch und konnte nicht entsprechend zeitnah und zuverlässig transportiert werden
- Verfahren zur Lokalisierung sowie Verteilung und Indexierung mussten noch entwickelt werden
- Die Konsistenz der Daten konnte nur unter hohen Nachteilen gewährleistet werden
- Transaktionskosten durch verteilte Transaktionen haben neue Protokolle benötigt (vgl. Abbildung 2)

Praktikum
Was gibt es fürs Praktikum zu beachten?
- Randthemen wie Erhebung, Analyse und sauberes Arbeiten sollen ebenfalls geschult werden
- Der Praktikumsbericht muss eine Woche später abgeben werden
NoSQL
Was ist NoSQL?
- Es steht für Not only SQL
- Damit sind alle nicht-relationalen Datenbankarchitekturen, wie hierarchische oder objektorientierte Datenbanken, gemeint
- Bei relationalen Datenbanken wird viel Vorplanung benötigt, dafür ist die Entwicklung und der Betrieb von Anwendungen einfach
- Ändert man jedoch die Datenbankstruktur oder Merkmale von Attributen, so sind Änderungen aufwendig
- NoSQL bietet Schemaflexibilität, d. h. es ist unerheblich, was in den Values steht
- Diese Systeme fungieren daher mehr wie strukturierte Datenspeicher
- Erste Trends zeigen jedoch, dass der Wunsch nach Schemata auch für diese Datenbanken gegeben ist
Welche Kategorien von NoSQL-Datenbanksystemen gibt es?
- Key-Value
- Document
- Column Family
Welche Nachteile haben NoSQL-Datenbanksysteme?
- Es gibt noch keine standardisierten Programmierschnittstellen und Sprachen
Was sind Key-Value Datenbanksysteme?
- Stammen aus dem Caching-Bereich ab (vergleichbar zu Hash-Maps)
- Die Daten werden in der Anwendung und nicht in der Datenbank ausgewertet
- Das Ziel sind minimale Zugriffszeiten für unterschiedlichste Daten (Warenkorb von Amazon oder Speicherstände in Videospielen)
- Sie eignen sich für Datenbanken bei denen viele verschiedene Schemata vorkommen (Value kann ein beliebiger Datentyp sein)
- Sekundäre Indexe sind eher nicht anzutreffen

Was sind Document Store Datenbanksysteme?
- Bestehen ebenfalls aus Key-Value-Paaren
- Die Daten sind semistrukturiert und hierarchisch schachtelbar in der Datenbank enthalten
- Die eigentliche Datenstruktur ist innerhalb der Values enthalten, daher der Name
- Die Attributbezeichnungen werden in der Regel durch IDs ersetzt, um Platz zu sparen
- Es gibt keine festen Schemata, was flexibel ist, aber hohe Anforderungen an die Anwendungen stellt (einmal mit und einmal ohne Vornamen)
- Sekundärindexe sind möglich, aber bei abweichenden Bezeichnungen (Preis/Price) nur schwer anzuwenden
- Korrektur: CouchDB beherrscht nun doch ad-hoc Queries
Was sind Column Family Datenbanksysteme?
- Daten werden spaltenweise gespeichert
- Dies ist einfacher beim Aggregieren von gleichen Daten (weniger Lesezugriffe auf Spalten, die nicht benötigt werden, notwendig)
- Daten müssen nicht angefasst werden, um neuen Value einzuführen (vgl. Seiten 8 bis 11)