Data Science - Michael Oettinger - E-Book

Data Science E-Book

Michael Oettinger

0,0

Beschreibung

Das Thema Data-Science wird häufig diskutiert. Seit der ersten Auflage dieses Buches im Jahr 2017 hat sich an diesem Trend wenig verändert. Data-Scientisten (m/w/d) erfahren eine steigende Nachfrage auf dem Job-Markt, da immer mehr Unternehmen ihre Analytics-Abteilungen auf- bzw. ausbauen und hierfür entsprechende Mitarbeiter suchen. Hier stellt sich die Frage, worin eigentlich der Tätigkeitsbereich eines Data-Scientisten besteht. Das Aufgabenfeld ist nicht eindeutig definiert und reicht über künstliche Intelligenz, Machine-Learning, Data-Mining, Python-Programmierung bis zu Big Data. Im vorliegenden Buch soll eine praxisorientierte Einführung und ein aktueller Überblick darüber gegeben werden, was Data-Science und der Beruf Data-Scientist umfassen.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 170

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Michael Oettinger

Data Science

Eine praxisorientierte Einführung im Umfeld von Machine Learning, künstlicher Intelligenz und Big Data - 2., erweiterte Auflage

© 2020 Michael Oettinger

Verlag & Druck: tredition GmbH, Halenreie 40-44, 22359 Hamburg

978-3-347-06950-3 (Paperback)

978-3-347-06951-0 (Hardcover)

978-3-347-06952-7 (e-Book)

Das Werk, einschließlich seiner Teile, ist urheberrechtlich geschützt. Jede Verwertung ist ohne Zustimmung des Verlages und des Autors unzulässig. Dies gilt insbesondere für die elektronische oder sonstige Vervielfältigung, Übersetzung, Verbreitung und öffentliche Zugänglichmachung.

Inhalt

1 Einleitung

2 Daten bereitstellen

2.1 Flatfiles

2.2 Relationale Datenbanksysteme

2.3 Data-Warehouse

2.4 NoSQL

2.5 Hadoop/Spark

2.6 Cloud-Computing

3 Daten analysieren

3.1 Programmiersprachen

3.2 Data-Science-Plattformen

3.3 Machine-Learning-Bibliotheken

3.4 Cloud-Angebote

3.5 Entscheidungshilfe für die Softwareauswahl

4 Verfahren der Datenanalyse

4.1 Begriffe

4.2 Datentypen und Skalentypen

4.3 Einordnung der Verfahren

4.4 Analyseverfahren – Machine-Learning-Algorithmen

4.5 Auswahl des richtigen Verfahrens

5 Vorgehensmodell für ML-Projekte

5.1 Vorgehensweise – Methode

5.2 Modell-Management

5.3 Deployment

6 Anwendungsfälle – Use-Cases

6.1 Use Cases nach Branchen

6.2 Beschreibung einzelner Use Cases

7 Abschluss

8 Informationsquellen

Autor

Literaturverzeichnis

Stichwortverzeichnis

1 Einleitung

Das Thema Data-Science wird häufig diskutiert. Seit der ersten Auflage dieses Buches im Jahr 2017 hat sich an diesem Trend wenig verändert.

Data-Scientisten (m/w/d) erfahren eine steigende Nachfrage auf dem Job-Markt, da immer mehr Unternehmen ihre Analytics-Abteilungen auf- bzw. ausbauen und hierfür entsprechende Mitarbeiter suchen. Hier stellt sich die Frage, worin eigentlich der Tätigkeitsbereich eines Data-Scientisten besteht.

Das Aufgabenfeld ist nicht eindeutig definiert und reicht über künstliche Intelligenz, Machine-Learning, Data-Mining, Python-Programmierung und Big Data.

Das Thema wird auch außerhalb der Unternehmen zunehmend wahrgenommen und diskutiert. Oft ist der Diskurs geprägt von einer Mischung aus Unwissenheit, Ignoranz und Ängsten, vor allem, was künstliche Intelligenz angeht.

Das Spektrum der Meinungen reicht dabei von Weltuntergang bis Weltrettung. Viele warnen vor den Gefahren, die sich aus der unkontrollierten Nutzung von Daten und den Möglichkeiten der künstlichen Intelligenz ergeben. Unternehmen wie Google und Facebook sind Datenkraken, die ihre unvorstellbar großen Datenschätze mit intelligenten Verfahren auswerten, um damit unser Verhalten in ihrem Sinne beeinflussen und letztendlich auch über unser Leben bestimmen zu können. Autos fahren zukünftig autonom und intelligente Roboter werden unsere Sprache verstehen, selbständig intelligente Entscheidungen treffen und uns die Arbeitsplätze wegnehmen.

Auf der anderen Seite werden unvorstellbare Wunderszenarien mit „rosa Farben“ an die Wand gemalt. Durch die Analyse von Daten können zukünftig künstliche Ärzte Krankheiten ausrotten, Verkehrsflüsse werden ohne Stau organisiert und der intelligente Kühlschrank wird sich automatisch selbst füllen, da er genau weiß, was wir benötigen.

Die Wahrheit liegt irgendwo in der Mitte, wobei es nicht wirklich die Mitte ist. Denn einerseits werden die Möglichkeiten und Fähigkeiten der eingesetzten Verfahren – meist aus Unwissenheit – völlig überschätzt. Ein künstliches neuronales Netz ist nichts Weiteres als ein relativ einfaches mathematisches Verfahren, das noch meilenweit von den Fähigkeiten eines echten neuronalen Netzwerkes mit dem Namen Gehirn entfernt ist. Deep Learning mit dem Computer ist dem Lernen eines Zweijährigen in vielen Aspekten so unterlegen, dass der Begriff Lernen eigentlich irreführend ist. In anderen Aspekten ist der Computer aber mit seinen Fähigkeiten dem Menschen weit überlegen. Viele der Potenziale, die sich daraus ergeben, sind noch ungenutzt.

Mit diesem Buch soll das Themengebiet – praxisorientiert – auf den Boden der Realität geholt werden. Es geht um Data-Science. Dabei handelt es sich zwar auch um eine Wissenschaft, aber vor allem um betriebliche Praxis. Es geht um den Aufgabenbereich eines Data-Scientisten. Spätestens, als das Harvard Business Review im Oktober 2012 Data-Science als „The Sexiest Job of the 21st Century“ ausrief, stieg das Interesse an dem Aufgabenfeld stark an.1 Der Job eines Data-Scientisten ist es, aus großen Datenmengen Informationen zu generieren und Handlungsempfehlungen abzuleiten, die das Unternehmen befähigen, effizienter zu arbeiten. Dazu werden technische Hilfsmittel (Datenbanken, Analysesoftware) und theoretische Verfahren (Machine-Learning, Data-Mining, statistische Verfahren etc.) eingesetzt.

Ein Data-Scientist kann mit riesigen Datenmengen umgehen und einen möglichst großen Nutzen daraus ziehen. Das bedeutet, dass eine Mischung aus

• aktuellem, technischen/IT-Wissen,

• fundierten Kenntnissen der mathematisch-statistischen Verfahren,

• Domänenwissen über das fachliche Umfeld des Arbeitgebers/Auftraggebers

• und kommunikativen Fähigkeiten

vorhanden sein muss. Es handelt sich um ein modernes Einhorn: ein Data-Geek mit Managementqualitäten.

Im vorliegenden Buch soll ein aktueller Überblick darüber gegeben werden, was die Wissenschaft Data-Science und der Beruf Data-Scientist umfassen. Es soll ein Beitrag geleistet werden, der die Diskussion versachlicht und dazu anregt, das große Potenzial maschinellen Lernens vermehrt in der unternehmerischen Praxis zu nutzen. Es entsteht der Eindruck, dass viele Aktivitäten in Unternehmen noch zu stark auf Randgebiete beschränkt sind (es geht z. B. um die Bereitstellung der Technik oder um Diskussionen, was gewollt und was erlaubt ist), während die tatsächlichen „Erkenntnisgewinnungsprojekte“ viel zu kurz kommen.

Es lässt sich die Frage stellen, ob es nicht fahrlässig ist, wenn Unternehmen und Organisationen bewährte Verfahren und Technologien nicht einsetzen. Beispielhaft auf das Gesundheitswesen angewendet, sieht die Problematik wie folgt aus:

Ist es unterlassene Hilfeleistung mit Todesfolge, wenn Gesundheitsdaten nicht analysiert werden? Das ist zugegebenermaßen eine sehr provokante These. Aber im Kern geht es darum, dass es zahlreiche Beispiele gibt, in denen nachgewiesenermaßen durch die Analyse von Gesundheitsdaten Kosten gespart, Krankheitsbehandlungen optimiert und letztendlich Todesfälle verhindert werden können (siehe Abschnitt 6.2.4).

Es ist eben bequemer, sich auf die Schwierigkeiten der Datenbeschaffung, die restriktiven Datenschutzregelungen oder auf technische Engpässe zu berufen. Häufig ist auch – insbesondere bei Führungskräften – ein Kokettieren mit der eigenen Ignoranz bezüglich Mathematik, Statistik und Technik erkennbar. Aber es gibt keinen Grund, nicht zu handeln: Die Daten sind vorhanden; die mathematischen und statistischen Verfahren sind vorhanden; die Technik, auch um riesige Datenmengen bzw. Big Data auszuwerten, ist vorhanden.

Letztendlich ist es ein Imperativ, alles daranzusetzen, Erkenntnisse aus den vorhandenen Daten zu gewinnen. Alles andere bedeutet eine Verschwendung des Geldes der Mitglieder unseres Gesundheitssystems und im extremen Fall eben auch unterlassene Hilfeleistung mit Todesfolge.

Es lassen sich ähnlich provokante Fragen in allen Branchen finden. Ist es Verschwendung des Geldes der Eigentümer, wenn ein Chiphersteller nicht alles daran setzt, seinen Produktionsprozess durch Datenanalyse zu optimieren und den Ausschuss zu vermindern? Warum verschwendet eine Supermarktkette Lebensmittel, weil sie den Bedarf nicht nach Regeln der Data-Science prognostiziert hatte (siehe Abschnitt 6.2.6)? Warum bleibt ein Zug stehen und verursacht hohe Kosten beim Bahnunternehmen und bei den Kunden, nur weil ein Teil kaputtgeht, das vorausschauend schon hätte ausgewechselt werden können (siehe Abschnitt 6.2.2)?

Es lassen sich, wie bereits erwähnt, in jeder Branche Hunderte vergleichbare Situationen finden, in denen mit datenanalysierenden Verfahren Verbesserungen realisiert werden können. Die Optimierungen in den einzelnen Projekten sind oft nicht umfassend und aufwändig, sondern liegen eher im unspektakulären Prozentbereich. Es reicht aber in der Regel aus, dass sich das einzelne Projekt rechnet (eine um ein Prozent erhöhte Responserate auf eine Mailingaktion kann eine Verdopplung des Gewinnes bedeuten). Hochgerechnet auf das ganze Unternehmen oder sogar auf Volkswirtschaften handelt es sich um Millionen- bzw. Milliardenbeträge – und manchmal eben auch um Tausende von Menschenleben.

Diese Effekte können oft über unkritische Projekte erreicht werden. Die Kritik an datenanalysierenden Aktivitäten, die Persönlichkeitsrechte verletzen, das Leben von Menschen manipulieren etc. ist berechtigt und notwendig. Aber es gibt genügend Bereiche, die unkritisch sind, und es gibt keinen Grund, Aktivitäten in diesen Gebieten nicht anzugehen.

Zweite Auflage

In den drei Jahren seit der ersten Auflage dieses Buches haben sich insbesondere im Bereich der Softwarelösungen einige Änderungen ergeben. Bestehende Angebote haben sich weiterentwickelt, neue Lösungen kamen hinzu und wurden optimiert und manche Angebote haben an Beliebtheit verloren. Der Trend zur Cloud hat ebenso Auswirkungen auf die Anforderungen an Data-Scientisten. Dementsprechend wurden die diesbezüglichen Kapitel in der zweiten Auflage aktualisiert. Im Kapitel zum Verfahren wurden die Bereiche Ensemble-Verfahren, Entscheidungsbäume und neuronale Netze überarbeitet und ergänzt, um deren hoher Bedeutung gerecht zu werden.

Ein Abschnitt zum Thema Deployment von Modellen wurde hinzugefügt, da die Umsetzung von Machine-Learning-Modellen in produktiven Softwareanwendungen in der betrieblichen Praxis eines der bedeutenden Themen darstellt. Zum Beispiel kann ein Credit-Scoring-Modell erst durch den Realtime-Einsatz in einem Webshop einen echten Mehrwert schaffen. Wie es ein Python-Modell aus dem Jupyter-Notebook des Data-Scientisten in die Webanwendung des Unternehmens schafft, ist dabei die zentrale Frage.

Bei den Anwendungsbeispielen wurden die Themen autonomes Fahren und – aus gegebenem Anlass – Machine-Learning in einer Pandemie ergänzt.

Bedanken möchte ich mich bei meiner Familie für die geistig moralische Unterstützung bei der Erstellung des Buches, bei meinen Kunden und Kollegen für den fachlichen Input durch Diskussionen und konkrete Fragestellungen und bei Torsten Haase von Mercedes Benz für die kritische Durchsicht des Manuskriptes.

Gliederung des Buches

Das Buch ist folgendermaßen gegliedert:

Nach einer Einführung in Kapitel 1 orientiert sich die Gliederung des Buches am Prozess der Datenanalyse. Von der Datenquelle geht es über die verwendeten Werkzeuge und die eingesetzten Verfahren bis hin zum konkreten Vorgehen und Beispielen in der Praxis.

Kapitel 2 beschäftigt sich mit den „Datentöpfen“ unter einer technischen Brille. Wo und wie werden die Daten bereitgestellt, die als Quelle für die Datenanalyse herangezogen werden? Konkret werden die wichtigsten Arten von Datenbanken vorgestellt:

• Flatfiles

• ODBC-Datenbanken

• Data-Warehouse

• NoSQL-Datenbanken

• Hadoop

• Cloud-Speicher

In Kapitel 3 wird auf die Werkzeuge – also die Softwarelösungen – eingegangen, mit denen die Daten analysiert werden. Dabei wird zwischen den wichtigsten Sprachen (SQL, R, Python), den Data-Science-Plattformen und den Machine Learning Libraries unterschieden. Unter diesen Softwareanwendungen gibt es sowohl Open-Source- als auch kommerzielle Angebote.

In Kapitel 4 wird auf die gebräuchlichsten Analyseverfahren eingegangen. Dabei handelt es sich um Verfahren aus den Bereichen Statistik, Mathematik, Machine Learning, künstliche Intelligenz und Computer Science. Es wird versucht, die Verfahren zu strukturieren und im Einzelnen so darzustellen, dass ein Grundverständnis für die Möglichkeiten und Grenzen des Verfahrens aufgebaut werden kann.

Kapitel 5 wendet sich der Praxis zu und erläutert, wie Analytics-Projekte in Unternehmen oder Forschungseinrichtungen durchgeführt werden. Die bewährten Vorgehensmodelle werden vorgestellt. Außerdem wird auf das Thema Modell-Management eingegangen. Dies ist vor allem dann wichtig, wenn in größeren Teams zusammengearbeitet wird und über die Zeit eine Vielzahl von Analysemodellen erstellt, getestet, angepasst und wieder verworfen werden.

In Kapitel 6 werden Use Cases – also Anwendungsfälle – für die besprochenen Verfahren und Techniken vorgestellt. Dabei geht es nicht nur um konkrete Einzelfälle, sondern auch um den Versuch, ein Bild über mögliche Einsatzszenarien zu geben. Die Use Cases werden vorgestellt und die Besonderheiten ausgewählter Branchen diskutiert.

1 Vgl. Harvard Business Review

2 Daten bereitstellen

Data-Science bezeichnet den Prozess, durch die Analyse von Daten mit geeigneten Verfahren Erkenntnisse zu gewinnen. Die erste Frage, die sich stellt, ist diejenige nach der Quelle der Daten. Woher kommen die zu analysierenden Daten und wo und wie werden sie bereitgestellt? Im Folgenden wird auf diese Datenquellen näher eingegangen. Konkret handelt es sich dabei um:

• Flatfiles

• Relationale Datenbanken

• Data-Warehouses

• NoSQL-Datenbanken

• Hadoop

• Cloud-Datenbanken

2.1 Flatfiles

Die einfachste Form der Datenbereitstellung sind Flatfiles, also Tabellen und strukturierte Textdateien, die man aus operativen Systemen wie z. B. ERP-Systemen exportiert oder über Befragungen gewonnen hat. Die Dateien werden in unterschiedlichen Formaten zur Verfügung gestellt. Die gebräuchlichsten sind:

• csv

• xls

• xml

• produktspezifische Formate (SPSS, SAS, Stata, ARFF, DBase …)

Bei dieser Form der Datenanalyse handelt es sich meist nicht um „Big Data“ (auch wenn die Größe der Files grundsätzlich nahezu unbegrenzt sein kann), aber dennoch spielen Flatfiles nach wie vor eine wichtige Rolle in Data-Science-Projekten. Es muss z.B. kein Zugang zur Datenbank eines Produktivsystems eingerichtet werden, was meist einen höheren Aufwand im Bereich Berechtigungen und Netzwerkzugang bedeutet. Stattdessen werden die Daten aus dem Quellsystem exportiert und dann in das Analysesystem eingelesen, wo die eigentliche Analyse bzw. Modellierung stattfindet. Liegt eine sehr hohe Anzahl an Flatfiles vor, bietet es sich an, den Prozess des Einlesens und Zusammenfassen der Daten z. B. durch ein Programm in Python zu automatisieren.

2.2 Relationale Datenbanksysteme

Relationale Datenbanksysteme dienen der Datenverwaltung und beruhen auf einem tabellenbasierten, relationalen Datenbankmodell. Sie werden auch als RDBMS (Relational Database Management System) bezeichnet. Zum Abfragen und Manipulieren der Daten wird überwiegend die Datenbanksprache SQL (Structured Query Language) eingesetzt.

Relationale Datenbanken folgen einem grundsätzlichen Schema. Daten werden in Tabellen gespeichert, wobei die Spalten die Variablen darstellen und die Zeilen die einzelnen Datensätze. Datenbanken werden dadurch „relational“, wenn es Relationen – also Verbindungen – zwischen den Tabellen gibt. Diese werden eingeführt, um eine redundante Speicherung der gleichen Daten zu vermeiden. Damit werden Speicherplatz gespart und inkonsistente Datenhaltung vermieden. Beispielsweise werden bei einer Datenbank für Kunden nicht für jeden einzelnen Kunden die Unternehmensdaten angegeben, sondern die Kategorie Unternehmen wird als eigenständige Tabelle ausgelagert und über eine Relation den einzelnen Kunden zugeordnet. Ändert sich etwas an der Adresse des Unternehmens, muss dies nur an einer Stelle geändert werden – durch die Relation wird den einzelnen Kunden automatisch das entsprechende Unternehmen zugeordnet.

Trotz neuerer Entwicklung (siehe den folgenden Abschnitt) stellen relationale Datenbanken nach wie vor die große Mehrzahl der Datenspeicher in Unternehmen dar und sind zentraler Bestandteil der meisten operativen Anwendungen (ERP, CRM, HCM, SCM, Fachsysteme …).

Die wichtigsten Anbieter sind:

• Oracle (Marktführer nach Umsatz)

• Microsoft SQL Server (Marktführer in bestimmten Märkten und auf bestimmten Plattformen)

• MySQL (Open Source, von Oracle erworben, höchste Anzahl an Implementierungen)

• PostgreSQL (Open Source)

• IBM DB2

• SAP Adaptive Server / SQL Anywhere / SAP MaxDB

• Amazon RDS (Cloud-Angebot für RDBS)

2.3 Data-Warehouse

Ein Data-Warehouse (DW oder DWH) ist eine zentrale Sammlung von Daten, die sich aus verschiedenen Quellen speist und vor allem für den Zweck der Analyse und der betriebswirtschaftlichen Entscheidungshilfe dauerhaft gespeichert wird.

Meistens wird ein Data-Warehouse aus zwei Gründen aufgebaut:

• Es soll eine Integration von Daten aus verteilten und unterschiedlich strukturierten Datenbeständen erfolgen. Im Data-Warehouse können die Daten konsistent gesichtet und datenquellenübergreifend ausgewertet werden. Die zeitaufwendigen und technisch anspruchsvollen Aufgaben der Datenextraktion und -integration aus verschiedenen Systemen erfolgt damit (im Ideal) einmalig und an zentraler Stelle. Die Daten stehen dann für Analysen und Reporting für die Fachabteilungen „konsumbereit“ zur Verfügung.

• Durch eine Trennung der (oft „sensiblen“) Daten in den operativen Systemen von den für das Reporting genutzten Daten im Data-Warehouse soll sichergestellt werden, dass durch die Datenabfragen für Analysen und Reporting keine operativen Systeme „gestört“ werden. Niemand möchte, dass der Azubi in der Vertriebsabteilung durch eine Abfrage der kompletten, weltweiten Produktverkäufe, nach Wochen und Postleitzahl gegliedert, das Buchhaltungssystem für eine halbe Stunde lahmlegt.

Abbildung 1: Quelle: https://www.pmone.com/blog/wiki/data-warehouse/

Technisch gesehen sind Data-Warehouse-Systeme eine Sammlung von Softwarekomponenten, die die Umsetzung des Data-Warehouse-Konzeptes ermöglichen. Sie bestehen aus:

• ETL-Komponenten, die den ETL-Prozess (also die Extraktion, Transformation und das Loading der Daten) unterstützen,

• dem Core-Data-Warehouse, also einer Sammlung von gemanagten Datenbanksystemen, die auf Parallelisierung und Performance für das Handling riesiger Datenmengen optimiert sind,

• den „vorbereiteten“ Aggregationen (Star-Schemas), die Auswertungen beschleunigen.

• einem User Interface, das die Verwaltung und die Auswertung der Datenbestände ermöglicht.

Die wichtigsten Anbieter von Data-Warehouse-Systemen sind:

• Oracle

• Teradata

• Microsoft

• IBM

Data Lake

In letzter Zeit wird immer häufiger der Begriff „Data Lake“ verwendet. Es handelt sich dabei um ein Konzept, das als eine Erweiterung des Data-Warehouse-Gedankens gesehen werden kann, der dann aber technisch mit Hadoop- oder NoSQL-Mitteln umgesetzt wird (siehe die folgenden zwei Abschnitte).

Im Unterschied zum Data-Warehouse, wo die Daten aus verschiedenen Quellen bezogen und dann so aufbereitet werden, dass sie vergleichbar sind und damit aggregiert werden können (ETL-Prozess), werden beim Data Lake die Daten erst einmal im ursprünglichen Format und unbearbeitet gesammelt. Eine Bearbeitung bzw. Transformation der Daten erfolgt dann erst bei Bedarf vor der eigentlichen Analyse (ELT-Prozess). Diese Vorgehensweise eignet sich also vor allem für

• eher unstrukturierte Daten, z. B. aus sozialen Medien, Blogbeiträgen, Bild- und Videodateien,

• strukturiertere XML- bzw. HTML-Daten,

• oder für Sensor-Daten.

Damit sind wir nun wirklich im Bereich Big Data angekommen. Die große Herausforderung ist es an dieser Stelle, diesen erstmal unbearbeiteten „Datensee“ tatsächlich für Analysen und damit einhergehend für den Erkenntnisgewinn zu nutzen. Ein Datentümpel, der ständig mit unnützen Datenmengen ergänzt wird und wächst und wächst, ist wertlos.

Die klassischen Analyseverfahren (siehe Abschnitt 4.4) sind für strukturierte Daten konzipiert. Eine Analyse der unstrukturierten Daten setzt also voraus, dass diese in irgendeiner Form strukturiert werden, um sie im Anschluss mit den vorhandenen Verfahren analysieren zu können. Nur durch eine integrierte Datenstrategie, die die strukturierten und unstrukturierten Daten miteinbezieht, können die Schätze des Big Data tatsächlich gehoben werden.

2.4 NoSQL

Unter dem Begriff NoSQL werden unterschiedliche Arten von Datenverwaltungssystemen zusammengefasst. Ganz wichtig vorneweg: NoSQL steht nicht für „no SQL“, also „kein SQL“! Das „No“ bedeutet vielmehr „not only“. NoSQL ist also keine Anti-SQL-Bewegung, sondern soll eine Alternative bzw. Bereicherung zur SQL-Welt darstellen.

Den unterschiedlichen Ausprägungen von NoSQL-Datenbanken ist gemeinsam, dass sie für Anwendungsfälle geschaffen wurden, in denen die verfügbaren SQL-basierten Datenbanken an ihre Grenzen stießen und daher nicht oder nur mit sehr großem Aufwand einsetzbar waren.

Die Architektur vieler NoSQL-Datenbanken setzt auf den Einsatz einer großen Anzahl kostengünstiger Rechnersysteme zur Datenspeicherung, wobei die meisten Knoten gleichrangig sind. Eine Skalierung erfolgt dann einfach durch Hinzufügen weiterer Knoten.

NoSQL-Datenbanken unterscheiden sich hinsichtlich der Art der „Verschlüsselung“. Es gibt „Key-Value-Stores“ oder komplexere, dokumentenorientierte Ansätze, die zusätzlich zu Dokumenten noch Verknüpfungen zwischen Dokumenten bieten.

NoSQL-Datenbanken werden vor allem dann eingesetzt, wenn SQL-Datenbanken an ihre Grenzen stoßen. In NoSQL-Systemen lassen sich z. B. wesentlich größere Mengen an Daten performant ablegen und aufrufen. Bei komplexen Abfrageanforderungen, etwa im Bereich unstrukturierter Daten wie Video-, Audio- oder Bilddateien, erlauben einige NoSQL-Datenbanken baumförmige Strukturen der Metadaten ohne ein fest definiertes Datenschema und deren flexible Abfrage. Bei Daten mit schwankendem Typ und Inhalt eignen sich NoSQL-Datenbanken besser, weil sich die Daten nicht länger in das „SQL-Korsett“ von Tabellen und Relationen pressen lassen müssen.

Man muss sich aber bewusst darüber sein, dass die Verfahren, mit denen aus Daten Erkenntnisse für eine Prognose gewonnen werden, auf strukturierte Daten angewiesen sind. Das bedeutet nicht, dass das „SQL-Korsett“ für die Rohdaten eingehalten werden muss, aber die Aufbereitung vor der Analyse erfordert eine Strukturierung. Bei der Verwendung von NoSQL-Datenbanken müssen daher die ja immer vorhandenen Strukturen der Datenhaltung beachtet und die entsprechende Aufbereitungsschritte angewendet werden.

Wichtige Anbieter von NoSQL-Datenbanken sind:2

• MongoDB

• Cassandra

• Redis

• HBase

• Couchbase

• NoSQL-Angebote der Cloudanbieter wie AWS und MS Azure

2.5 Hadoop/Spark

Apache Hadoop ist ein Software-Framework, mit dessen Hilfe rechenintensive Prozesse mit großen Datenmengen auf Server-Clustern bearbeitet werden können. Anwendungen können mit der Unterstützung Hadoops komplexe Aufgaben auf Tausende von Rechnerknoten verteilen und Datenvolumina im Petabyte-Bereich verarbeiten. Es basiert ursprünglich auf dem MapReduce-Algorithmus und Grundideen des Google-Dateisystems. Hadoop wird von der Apache Software Foundation – einer Gemeinschaft von Entwicklern, die Open-Source-Softwareprodukte entwickeln – als Top-Level-Projekt vorangetrieben.

Hadoop besteht aus vier Kernmodulen und weiteren Komponenten, die zum Hadoop Ecosystem gerechnet werden.

Die vier Kernmodule sind:

• Hadoop Common: Hilfswerkzeug, das die Hadoop-Komponenten verwaltet bzw. unterstützt.

• Hadoop Distributed File System (HDFS): HDFS ist ein hochverfügbares Dateisystem zur Speicherung sehr großer Datenmengen auf den Dateisystemen mehrerer Rechner (Knoten). Dateien werden in Datenblöcke mit fester Länge zerlegt und redundant auf die teilnehmenden Knoten verteilt. Dabei gibt es Master- und Slave-Knoten. Ein Master-Knoten, der sogenannte NameNode, bearbeitet eingehende Datenanfragen, organisiert die Ablage von Dateien in den Slave-Knoten und speichert anfallende Metadaten. HDFS unterstützt dabei Dateisysteme mit mehreren 100 Millionen Dateien.

• Hadoop YARN: Eine Softwarelösung, die die Verwaltung der Ressourcen (also das Job-Scheduling) eines Clusters übernimmt.

• Hadoop MapReduce: Ein auf YARN basierendes System, das paralleles Prozessieren großer Datenmengen realisiert. Hadoop beinhaltet den MapReduce-Algorithmus, dieser gilt aber zunehmend als veraltet und wird durch graphenbasierte Verfahren (Spark, Tez) ersetzt.

Insbesondere Spark hat mittlerweile die größere Verbreitung im Hadoop-Umfeld und hat MapReduce als Prozess-Engine abgelöst.

Im Rahmen von Apache werden weitere Projekte als zum Hadoop Ecosystem zugehörig gezählt:

• Ambari: Ambari ist eine Managementplattform, die die Verwaltung (Provisionierung, Management, Monitoring) der Hadoop-Cluster vereinfachen soll. Unterstützt werden: HDFS, Hadoop MapReduce, Hive, HCatalog, HBase, ZooKeeper, Oozie, Pig and Sqoop.

• Avro: Avro ist ein System zur Serialisierung von Daten.

• Cassandra: Cassandra ist ein skalierbares NoSQL-Datenbanksystem für Hadoop-Cluster.

• Chukwa: Chukwa ermöglicht die Datensammlung und Echtzeitüberwachung sehr großer verteilter Systeme.

• HBase: HBase ist eine skalierbare Datenbank zur Verwaltung großer Datenmengen innerhalb eines Hadoop-Clusters. Die HBase-Datenbank basiert auf Googles BigTable. Diese Datenstruktur ist für Daten geeignet, die selten verändert, dafür aber häufig ergänzt werden. Mit HBase lassen sich Milliarden von Zeilen verteilt und effizient verwalten.

• Hive: Hive ist eine Data-Warehouse-Infrastrukturkomponente, die Hadoop-Cluster um Data-Warehouse-Funktionalitäten erweitert. Mit HiveQL wird eine SQL-Sprache zur Abfrage und Verwaltung der Datenbanken bereitgestellt.

• Mahout: Mahout ist eine skalierbare Machine-Learning- und Data-Mining-Library, die aber nicht mehr weiterentwickelt wird.

• Pig: Pig ist einerseits eine Hochsprache für Datenfluss-Programmierung, andererseits ein Framework, das die Parallelisierung der Rechenvorgänge unterstützt.

• Spark: Spark ist eine performante In-Memory-Batch-Prozess-Engine für Hadoop-Daten. Spark unterstützt ETL-, Machine-Learning-, Streaming- und Graphenprozesse.

• Tez