Werkzeuge des Data Science

Data Science Tools

Ziel einer Data to Value Strategie ist es, Kosten zu reduzieren, neue Märkte zu erschließen, bessere Entscheidungen zu treffen oder Kunden zu binden. Mit konventionellen, analytischen Verfahren haben die meisten Firmen bereits den größten Teil der Optimierungsmöglichkeiten ausgeschöpft. Daher bedarf es neuer Analysemethoden, die bisher ignorierte Datenquellen mit einbeziehen.

Manche Führungskräfte sind sich zu Beginn nicht bewusst, dass die Umsetzung einer Data to Value Strategie einen hohen Aufwand verursacht und mit hohen Kosten einhergeht. Die Erfolge stellen sich meist nur langsam ein. Man geht davon aus, dass 80 Prozent der Data Science-Aufwände in die Aufbereitung der Daten fließen und nur 20 Prozent in die Analyse der Daten.

Die Umsetzung einer Data Science-Initiative beinhaltet fast immer die Realisierung einer Datenplattform, die verschiedenste Datenquellen integriert und von den operativen IT-Systemen abgekoppelt ist. Es kommen dabei verschiedene Data Science-Werkzeuge zum Einsatz, die wir den vier Schichten einer Datenplattform zuordnen.

Data Science Werkzeuge

Systems Engineering

Systems Engineering beinhaltet das Basis-System für eine Datenplattform. In dieser Schicht geht es um die Server-Hardware und die Betriebssysteme der Datenplattform. In großen Firmen werden Cluster im Rechenzentrum bereitgestellt, um die benötigte Geschwindigkeit bei der Verarbeitung der großen Datenmengen zu ermöglichen. Durch die Nutzung von Cloud-Anbietern (z.B. Amazon Web Services oder Microsoft Azure), erspart man sich das Hardware-Management, da der Cloud-Anbieter die Hardware virtualisiert und sich um das Funktionieren der Hardware und des Netzwerks kümmert. In der Cloud unterscheidet man das Dienste-Angebot nach folgenden Gruppierungen:

  • Infrastructure as a Service (IaaS)
    Hier werden virtualisierte Hardware-Ressourcen gemietet. Der Kunde wählt das Betriebssystem selbst aus und administriert es auch selbst.
  • Platform as a Service (PaaS)
    Bei Platform as a Service wird zusätzlich zur Hardware auch das Betriebssystem gestellt. Der Cloud-Anbieter kümmert sich hier um die Sicherheitsupdates.
  • Software as a Service (SaaS)
    Hier mieten sie eine Softwareanwendung. Das Betriebssystem und die Hardware sind für sie als Kunden nicht mehr relevant und können sich ändern.
  • Function as a Service (FaaS)
    Function as a Service (FaaS) ist ein serverloses Cloud Computing Angebot. Der Cloud-Anbieter stellt dem Anwender einzelne Funktionen bereit, als Kunden zahlen sie nur die Rechenzeit, bei Stillstand fallen keine Kosten an.

Üblicherweise entwickelt ein System-Architekt das Konzept für das Basis-System der Datenplattform.

Data Platform

Als zweite Schicht oberhalb des Systems Engineering folgt die Data Platform. Hier geht es um die Softwarekomponenten, die benötigt werden, um Daten verteilt zu speichern. Große Datenmengen müssen verteilt verarbeitet werden, um geringe Antwortzeiten zu erhalten. Hier kommen z.B. verteilte Dateisysteme für unstrukturierte Daten, relationale Datenbanken für strukturierte Daten und NoSQL-Datenbanken (z.B. MongoDB, Apache Cassandra) für semistrukturierte Daten zum Einsatz.

Auf größeren Datenplattformen wird häufig Apache Hadoop eingesetzt. Apache Hadoop ist ein in Java geschriebenes Framework für skalierbare, verteilt arbeitende Software. Es ermöglicht es, intensive Rechenprozesse mit großen Datenmengen auf Computerclustern durchzuführen. HDFS (Hadoop Distributed File System) ist ein Bestandteil von Apache Hadoop, es handelt sich bei HDFS um ein hochverfügbares Dateisystem zur Speicherung sehr großer Datenmengen auf den Dateisystemen mehrerer Rechner.

Ein weiterer Bestandteil von Hadoop ist YARN (Yet Another Ressource Negotiator). YARN ermöglicht es, die Ressourcen eines Clusters dynamisch zu verwalten. Hadoop unterstützt MapReduce, ein von Google eingeführtes Programmiermodell für nebenläufige Berechnungen über große Datenmengen auf Computer-Clustern. Apache Hadoop unterstützt zusätzlich die Kompression von Dateien zur optimalen Speicher- und Ressourcen-Unterstützung sowie die Verwendung unterschiedlicher Dateiformate.

Mit der Erweiterung Apache HBase kann eine skalierbare, einfache Datenbank zur Verwaltung sehr großer Datenmengen innerhalb eines Hadoop-Clusters genutzt werden. Mit Apache Hive wird Hadoop um Data-Warehouse-Funktionalitäten erweitert.

Die Praxis hat gezeigt, dass Big-Data-Projekte nicht mit einem einzigen Tool realisiert werden können. Es ist stets ein Zusammenspiel verschiedener Werkzeuge nötig. Der Aufbau einer Datenplattform ist für die meisten Unternehmen technologisches Neuland und erfordert kompetente Software-Architekten, die auf Basis der Anforderungen festlegen, wie die Architektur der Datenplattform zu gestalten ist.

Data Engineering

Oberhalb der Data Platform befindet sich die Schicht des Data Engineerings. Hier geht es darum, wie Daten für analytische Zwecke aufbereitet werden. Hier kann als Alternative zur sequentiellen Stapelverarbeitung das Verarbeitungskonzept Streaming genutzt werden, bei dem ein kontinuierlicher Fluss von Datensätzen verarbeitet wird.

Mit Apache Kafka steht eine verteilte Streaming-Plattform zur Verfügung. Apache Kafka dient der Verarbeitung von Datenströmen. Kafka ist dazu entwickelt, Datenströme zu speichern und zu verarbeiten, und stellt Schnittstellen zum Laden und Exportieren von Datenströmen zu Drittsystemen bereit. Apache Kafka arbeitet als Messaging-System zwischen dem Sender und dem Empfänger von Daten. Im Gegensatz zu einer reinen Nachrichten-Queue arbeitet Apache Kafka fehlertolerant und ist extrem skalierbar. Das System ist durch ein verteiltes Transaktions-Log in der Lage, Daten zu speichern und mit hoher Verfügbarkeit bereitzustellen. Direkt beim Eintreffen der Daten lassen sich diese in hoher Geschwindigkeit verarbeiten. Daten sind so in Echtzeit nutzbar.

Zusätzlich eingesetzt wird häufig Apache Spark, das “wie ein iPhone” eine Vielzahl an Diensten über eine einheitliche Schnittstelle, in diesem Fall eine Programmierschnittstelle (API), bereitstellt. Apache Spark ist eine Analysemaschine für die Verarbeitung großer Datenmengen mit integrierten Modulen für Streaming, SQL, Machine Learning und Graphenverarbeitung. Die Programmierschnittstelle kann von verschiedenen Programmiersprachen verwendet werden. Neben Java wird auch die Programmiersprache Python unterstützt.

Der Datenspeicher der Datenplattform wird als Data Lake bezeichnet. Manchmal werden weitere Tools eingesetzt, die die Datenvorbereitung (Data Wrangling) zu Analysezwecken erleichtern und dazu über die Schnittstelle auf die Datenplattform zugreifen. Ein Datenkatalog beschreibt die Meta-Daten der verfügbaren Daten und erleichtert die Identifikation der für Analysen benötigten Daten.

Data Science

Die Data Science Schicht setzt auf den Ergebnissen des Data Engineerings auf. Hier erfolgt nun die Analyse der Daten. Hier kommen zum einen Programmiersprachen wie Python und R zum Einsatz, die sich besonders gut für die Anwendung statistischer Methoden und das maschinelle Lernen (Machine Learning) eignen. Auf statistische Methoden und das Thema Machine Learning wird auf separaten Seiten dieser Homepage eingegangen.

Spezielle Statistik- und Datenanalyse-Software (z.B. SAS, SPSS) kann die statistische Analyse unterstützen. Zur grafischen Aufbereitung und der interaktiven Analyse werden auch Werkzeuge (wie z.B. Microsoft PowerBI oder Tableau) genutzt, mit denen sich Business-Dashboards erstellen lassen.