Data Science und AI - Michael Oettinger - E-Book

Data Science und AI E-Book

Michael Oettinger

0,0

Beschreibung

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.Nach 4 Jahren seit Erscheinen der zweiten Auflage wurde die dritte Auflage notwendig, da sich Data-Science als Thema und vor allem die dazugehörende Softwaretechnologie weiterentwickelt.Spätestens mit der Veröffentlichung von ChatGPT ist das Thema künstliche Intelligenz in aller Munde und eine Einordnung von Data- Science, Machine Learning und Artificial Intelligence scheint dringend notwendig.Das Buch enthält neben einer Übersicht über Theorie und Praxis der Daten-Analyse nun auch Code-Beispiele in Python bzw. SQL und Cheat-Sheets zu ChatGPT und GenAI Tools.

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)

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 und AI

Eine praxisorientierte Einführung im Umfeld von Machine Learning, künstlicher Intelligenz und Big Data

3. erweiterte Auflage

© 2024 Michael Oettinger

Druck und Distribution im Auftrag des Autors:

tredition GmbH, Heinz-Beusen-Stieg 5, 22926 Ahrensburg, Germany

Das Werk, einschließlich seiner Teile, ist urheberrechtlich geschützt. Für die Inhalte ist der Autor verantwortlich. Jede Verwertung ist ohne seine Zustimmung unzulässig. Die Publikation und Verbreitung erfolgen im Auftrag des Autors, zu erreichen unter: Michael Oettinger, Römerschanzenstr. 1, 82110 Germering, Germany.

Inhalt

Cover

Titelblatt

Urheberrechte

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. Datenanalyse

3.1 Programmiersprachen

3.1.1 Python

3.1.2 R

3.1.3 SQL

3.2 Data-Science-Plattformen

3.2.1 SAS Institute

3.2.2 IBM

3.2.3 MathWorks – Matlab

3.2.4 TIPCO – Statistica

3.2.5 Dataiku

3.2.6 Databricks

3.2.7 Anaconda

3.2.8 KNIME

3.2.9 RapidMiner

3.2.10 DataRobot

3.3 Machine Learning-Bibliotheken

3.3.1 TensorFlow

3.3.2 H2O.ai

3.3.3 Spark ML

3.3.4 PySpark

3.3.5 MXNet

3.3.6 Weitere Deep-Learning-Frameworks

3.4 Cloud-Angebote

3.4.1 Amazon Web Services AWS

3.4.2 Microsoft – Azure

3.4.3 Google

3.5 Entscheidungshilfe für die Softwareauswahl

4. Verfahren der Datenanalyse

4.1 Künstliche Intelligenz

4.1.1 Abgrenzung künstlicher Intelligenz

4.1.2 ChatGPT und LLMs

4.1.3 Weitere GenAI-Anwendungen

4.2 Weitere Begriffe im Rahmen der Datenanalyse

4.3 Datentypen und Skalentypen

4.4 Einordnung der Verfahren

4.5 Analyseverfahren – Machine Learning-Algorithmen

4.5.1 Diskriminanzanalyse

4.5.2 Support Vector Machine – SVM

4.5.3 Nächste-Nachbar-Klassifikation - k-Nearest Neighbor

4.5.4 Bayes-Klassifikation

4.5.5 Entscheidungsbäume

4.5.6 Ensemble-Methoden

4.5.7 Neuronale Netze

4.5.8 Regression

4.5.9 Zeitreihenanalyse

4.5.10 Kollaboratives Filtern

4.5.11 Clustering

4.5.12 Assoziationsanalyse

4.5.13 Faktorenanalyse

4.5.14 Hauptkomponentenanalyse PCA

4.5.15 Local Outlier Factor

4.5.16 Genetische Algorithmen

4.5.17 Weitere Verfahren

4.6 Auswahl des richtigen Verfahrens

5. Vorgehensmodell für ML-Projekte

5.1 Vorgehensweise – Methode

5.2 Modell-Management

5.3 Deployment

5.4 Cheat-Sheet SQL, Python und PySpark

5.5 Cheat-Sheet Machine Learning im Python-Notebook

6. Anwendungsfälle – Use-Cases

6.1 Use Cases nach Branchen

6.1.1 Automobilindustrie

6.1.2 Energieversorgung

6.1.3 Pharmaindustrie und Biotechnologie

6.1.4 Telekommunikation

6.1.5 Handel

6.1.6 Banken - Finanzdienstleistungen

6.1.7 Öffentlicher Sektor

6.2 Beschreibung einzelner Use Cases

6.2.1 Marketing Analytics - Campaign Management

6.2.2 Vorausschauende Wartung - Predictive Maintenance

6.2.3 Prognose der Stromproduktion

6.2.4 Präventive Medizin

6.2.5 Kundenabwanderung - Customer Churn

6.2.6 Verkaufsprognose

6.2.7 Warenkorbanalyse

6.2.8 Empfehlungen - Recommendation Engine

6.2.9 Betrugserkennung - Fraud Detection

6.2.10 Kreditrisiko-Bewertung

6.2.11 Geldwäscheerkennung - Anti Money Laundering

6.2.12 Crime Prevention - Verbrechensbekämpfung

6.2.13 Optimierung von Betriebsprüfungen

6.2.14 Absatzprognose zur Zolloptimierung

6.2.15 Social Media Monitoring - Sentiment Analysis

6.2.16 Analyse von Streaming-Daten

6.2.17 Bilderkennung - Arbeitssicherheit

6.2.18 Künstliche Intelligenz für die Malware-Erkennung

6.2.19 Autonomes Fahren

6.2.20 Datenanalyse bei einer Pandemie

6.3 Use Cases für genAI

7. Abschluss

8. Informationsquellen

Autor

Literaturverzeichnis

Stichwortverzeichnis

Data Science und AI

Cover

Titelblatt

Urheberrechte

1Einleitung

Stichwortverzeichnis

Data Science und AI

Cover

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

1 Einleitung

Ich habe im Jahr 2017 die erste Auflage dieses Buches geschrieben, weil ich meinen Job im Softwarevertrieb für ein kleineres US-Softwareunternehmen gekündigt hatte und mich als Data-Scientist selbstständig machen wollte. Ich hatte keine Referenzen und Kunden und dachte mir, dass man einem Autor eines Fachbuches die Kompetenz für das Fachgebiet unterstellen kann und ich so den Eintritt in die Welt der Freelancer und vor allem in meine ersten Projekte finden kann.

Spoiler: Es hat funktioniert und ich arbeite seit nunmehr sieben Jahren in unterschiedlichen Projekten für unterschiedliche Kunden (übrigens bei Vollauslastung und vor allem bei ‘Vollzufriedenheit‘).

Nach drei Jahren war es Zeit für ein Update, sodass im Jahr 2020 eine zweite aktualisierte Auflage des Buches veröffentlicht wurde.

Die Gründe für die Erstellung der hier vorliegenden dritten Auflage sind:

• Data-Science und vor allem die dazugehörende Softwaretechnologie haben sich weiterentwickelt.

• Spätestens mit der Veröffentlichung von ChatGPT ist das Thema künstliche Intelligenz in aller Munde und eine Einordnung von Data-Science, Machine Learning und Artificial Intelligence scheint dringend notwendig.

• Mit der Projekterfahrung der letzten sechs Jahre würde ich das Buch heute anders gestalten. Die Grundstruktur und der Aufbau passen, aber an vielen Stellen würde ich heute deutlichere Aussagen machen. Weniger Abwägen und wissenschaftliches Erarbeiten und mehr deutliche, pragmatische Empfehlungen geben.

Also habe ich mich hingesetzt und das Buch aufgefrischt. Wenn man so will, ist es nun polemischer geworden, da ich in allen Kapiteln ‘meinungsstarke‘ und deutliche Kommentare eingefügt habe. Aber es ist auch pragmatischer, da es nun Code-Beispiele in Python bzw. SQL enthält und einige Cheat-Sheets angefügt wurden.

Bedanken möchte ich mich an dieser Stelle bei allen Kunden und Kollegen, die mir das Vertrauen geschenkt und mir so ermöglicht haben, als Data Scientist zu arbeiten. Außerdem möchte ich mich bei meiner Frau und meiner Tochter bedanken. Ohne meine Familie wäre zwar dieses Buch wahrscheinlich einen oder zwei Monate früher fertig geworden, aber mein Leben wäre sinnloser gewesen.

Gliederung des Buches

Das Buch ist folgendermaßen gegliedert:

Nach der 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 enthält Erläuterungen zu den ‘Datentöpfen‘ aus einer technischen Perspektive. Wo und wie werden die Daten bereitgestellt, die als Quelle für die Datenanalyse herangezogen werden? Konkret werden die am weitesten verbreiteten Arten von Datenbanken vorgestellt:

• Flatfiles,

• ODBC-Datenbanken,

• Data-Warehouse,

• NoSQL-Datenbanken,

• Hadoop- und Spark-Plattformen sowie

• Cloud-Speicher.

In Kapitel 3 wird auf die Werkzeuge – d. h. die Softwarelösungen – eingegangen, mit denen die Daten analysiert werden. Dabei wird zwischen den wichtigsten Sprachen (SQL, Python, R), den Data-Science-Plattformen und den Machine Learning-Librarys unterschieden. Zu 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 ihre Möglichkeiten und Grenzen aufgebaut werden kann.

Kapitel 5 ist der Praxis gewidmet, indem erläutert wird, wie Analytics-Projekte in Unternehmen oder Forschungseinrichtungen durchgeführt werden. Die bewährten Vorgehensmodelle werden vorgestellt. Außerdem wird auf das Thema Modellmanagement 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 wird.

In Kapitel 6 werden Use-Cases – d. h. 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 werden diskutiert.

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’, dass es Relationen – also Verbindungen – zwischen den Tabellen gibt. Diese werden eingeführt, um eine redundante Speicherung der gleichen Daten zu vermeiden. Damit wird 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: Architektur eines Data Warehouses (Müller & Lenz, 2013, S. 19)

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

• SAP

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.5) 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:1

• 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 MasterKnoten, 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 DataMining-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: Apache Tez ist ein allgemeines Datenfluss-Programmier-Framework. Die ursprünglich von Hortonworks entwickelte Anwendung unterstützt Directed Acyclic Graph (DAG). Tez baut auf YARN auf und wird auch durch YARN gesteuert. Tez kann jeden MapReduce-Job ohne Modifikationen ausführen. MapReduce-Jobs können in einen Tez-Job überführt werden, was die Leistung steigert.

• ZooKeeper: ZooKeeper ist ein performantes System zur Koordination und Konfiguration verteilter Systeme.

Aus der Aufzählung und kurzen Beschreibung der Hadoop-Komponenten wird deutlich, dass es sich bei Hadoop nicht um ein einfaches Datenmanagement-Tool handelt. Es ist vielmehr ein komplexes und sich dynamisch veränderndes Sammelsurium an Projekten und Softwareprodukten, die der Idee der verteilten Datenhaltung von Big Data folgen.

Die unterschiedlichen Hadoop-Komponenten können von der Homepage der Apache Foundation kostenlos heruntergeladen werden. Unternehmen greifen aber bei Hadoop auf die Dienstleistungen kommerzieller Hadoop-Distributoren zurück. Diese bieten vorgefertigte Pakete mit z. T. zusätzlichen Komponenten an. In der Regel fallen keine Lizenzkosten an, es wird aber eine Subscription-Fee verlangt, also eine Mietgebühr für die Wartung, Pflege und den Support der Software. Wichtige Anbieter sind:

• Cloudera (Fusioniert mit Hortonworks im Q1 2019)

• MapR

• IBM

• Pivotal

Daneben haben die Cloud-Anbieter eigene Hadoop-Angebote:

• Amazon Web Services EMW

• Microsoft Azures HDInsight

Cloudera hat mit der Data-Platform ein Angebot, das über die Distribution der Apache Hadoop/Spark-Komponenten hinausgeht (Data-Hub) und diese mit weiteren Komponenten zu einer integrierten Datenplattform bündelt. Die Installation kann on-premises, in der Cloud oder hybrid erfolgen.

Abbildung 2: Cloudera-Data-Platform

Im vorangegangenen Abschnitt zum Thema Data-Lake wurde schon auf die Herausforderung eingegangen: Für die exponentiell wachsende Datenmenge an strukturierten und unstrukturierten Daten soll eine integrierte technische Plattform bereitgestellt werden. Sowohl strukturierte (HBase) als auch weniger strukturierte Daten (HDFS, Cassandra) können mit extremer Skalierbarkeit in einem gemeinsamen Framework verwaltet und bereitgestellt werden. Daher ist Hadoop die ideale technische Plattform, um eine integrierte Datenstrategie des Unternehmens umzusetzen.

Das Thema hat in den letzten Jahren einen Hype erfahren, wobei einige bereits das Ende klassischer Data-Warehouse-Produkte vorhersagten. Die Gründe zu diskutieren, warum das schnelle Ende klassischer Data-Warehouse-Systeme nicht bevorsteht, würde den Rahmen dieses Buches überschreiten. Etwas vereinfacht kann das Thema aber wie folgt zusammengefasst werden:

• Aufgrund der Komplexität und Dynamik der Hadoop-Projekte ist eine Hadoop-Installation alles andere als kostenlos. Auch wenn keine Lizenzkosten anfallen, sind z. B. Wartung, Hardware, Personal und Schulung mit hohem Aufwand verbunden.

•