Datenmanagement

Damit Daten analysiert werden können, müssen sie eine ihrem Verwendungszweck entsprechende Qualität besitzen. Der Aufgabe, diese Qualität herzustellen und zu erhalten, widmet sich das Datenmanagement.

Die Wahl der richtigen Infrastruktur, um Erkenntnisse aus Big Data zu gewinnen, ist der wichtigste Faktor für das Datenmanagement. Die Vielzahl der Daten (strukturiert, unstrukturiert und halbstrukturiert) erschwert die Auswahl und den Einsatz des am besten geeigneten Tools. Die Variety, Verocity, Veracity und Volume (4 V`s) von Big Data müssen bei der Auswahl der Datenanalyse-Software berücksichtigt werden.

Wir stellen die aktuellen Herausforderungen des Themenschwerpunkts,  sowie die wichtigsten Systeme zur Verarbeitung und Institutionen & Plattformen vor. Unsere Zusammenstellung weiterführender Informationen soll einen tieferen Einstieg in das Thema erleichtern.

© Smart Data Forum

Open-Source-Instrumente für Verteilte Systeme

Datenverarbeitung durch Systeme wie Apache Flink, Spark, Hadoop u.a. hat die Visualisierung und Detektion von Abweichungen oder Fehlern von großen Datenmengen zum Ziel. Es bestehen zwei Möglichkeiten, um große Datenmengen zu analysieren – in Batch und Stream. Datenanalyse in Batch bedeutet, dass alle Daten auf einmal verarbeitet werden. Durch Stream-Prozesse werden Daten in Echtzeit verarbeitet, sodass sofort Entscheidungen getroffen werden können.

Batch-Verarbeitung bedeutet, dass große Datenmengen in Stapeln oder „Batches“ analysiert werden. Die Informationen werden über einen längeren Zeitraum gesammelt und später zusammen verarbeitet. Das heißt, die Batch-Datenverarbeitung dauert länger (in der Regel Sekunden) als die Datenstromverarbeitung, die normalerweise in Echtzeit erfolgt. Sie kann auch offline verwendet werden. Die Batch-Verarbeitung ist z.B. für die Erstellung von Lohn- und Gehaltsabrechnungen oder Kontoauszügen sinnvoll.

  • Apache Spark – Open-Source-Framework für Batch- und Datenstromverarbeitung auf Hadoop, Kubernetes, Apache Mesos und in der Cloud. Das Framework kann auf verschiedene Datenquellen zugreifen. Es wird hauptsächlich zur Verarbeitung großer Datensätze verwendet. Das Framework bietet vor allem die Möglichkeit, iterative Algorithmen effizient auszuführen und komplexere Transformationspipelines zu definieren. Die Anwendungen können in Python, Scala, Java, R und SQL geschrieben werden.
  • Apache Flink– Ein Open-Source-System für statusbehaftete Berechnungen, das begrenzte und unbegrenzte Datenmengen verarbeitet. Das Framework bietet die Möglichkeit, iterative Algorithmen effizient auszuführen und komplexere Transformationspipelines zu definieren. Es kann mit Hadoop YARN, Kubernetes und Apache Mesos oder eigenständig ausgeführt werden. Es führt Berechnungen in jedem beliebigen Maßstab durch.
  • Apache SystemML – Ein Open-Source-Workspace für Maschinelles Lernen mit Einsatz von Big Data. Es läuft überwiegend auf Apache Spark und ist in der Lage, die Daten zeilenweise zu skalieren. Anschließend entscheidet das System, ob der Code auf einem Spark- oder Hadoop-Cluster oder auf dem Treiber ausgeführt wird. Es funktioniert mit Python und R.
  • Apache Hadoop – Ein Open-Source-System zur Verarbeitung großer Datenmengen basierend auf einfachen Algorithmen. Durch eine große Skalierbarkeit kann es auf mehreren Computern ausgeführt werden, um somit zusätzliche Rechen- und Speicherkapazitäten bereitzustellen. Das Framework basiert auf einer Modulbibliothek: Common, Distributed File System, YARN und MapReduce.

Herausforderungen

  • End-to-End-Management-Machine-Learning-Pipelines – Da sie in einer verteilten Umgebung laufen, sind sie schwer zu implementieren, vor allem weil die Produktionspipelines eine Reihe von voneinander abhängigen Verarbeitungsebenen enthalten. Bei der Aktualisierung einer der Verarbeitungsstufen ist es problematisch zu erkennen, welcher Datensatz neu berechnet und welcher wiederverwendet werden kann. Beim Entwickeln und Trainieren von ML Modellen geht es vor allem um die effiziente Suche von Hyperparametern. Hier werden aktuell noch viele Berechnungen mehrfach ausgeführt.
  • Deklarative Spezifikation von Analysealgorithmen bietet die Möglichkeit, systemspezifische Details (e.g Caching von RDDs, Vermeidung von GroupBys in Spark) wegzuabstrahieren und über den gesamten Datenfluss hinweg zu optimieren. Um dies zu erreichen, erfolgt die erwähnte Zerlegung in parallele Datenflussfragmente.

Die Systeme für die Datenstromverarbeitung helfen dem Anwender, in Echtzeit nützliche Erkenntnisse aus Daten zu gewinnen. Damit dies funktioniert, müssen die Daten ab dem Zeitpunkt der Generierung direkt in das Analysesystem einfließen. Die Datenstromverarbeitung kann z.B. bei der Betrugserkennung, der Protokollüberwachung oder der Analyse des Kundenverhaltens effizient eingesetzt werden. Sie funktioniert nur online.

  • Apache Flink – Ein Open-Source-System für statusbehaftete Berechnungen, welches begrenzte und unbegrenzte Datenmengen verarbeitet. Es kann mit Hadoop YARN, Kubernetes und Apache Mesos oder eigenständig ausgeführt werden. Es führt Berechnungen in jedem beliebigen Maßstab durch.
  • Apache Spark Streaming – Ein Open-Source-Framework, mit dem skalierbare fehlertolerante Streaming-Funktionalitäten erstellt werden können. Da das System auf Spark ausgeführt wird, kann der Benutzer den Algorithmus für die Stapelverarbeitung wiederverwenden und Streams mit Verlaufsdaten zusammenführen. Die Anwendung kann in Python, Scala und Java geschrieben werden.
  • Apache Kafka – Eine Open-Source-Streaming-Plattform, die Daten in Echtzeit verarbeitet. Datenströme werden permanent und mit hoher Fehlertoleranz gesammelt und gespeichert, wobei jeder Datensatz einen Zeitstempel, einen Schlüssel und einen Wert enthält. Kafka läuft als Cluster auf einem oder mehreren Servern.
  • Apache Storm – Ein Open-Source-Rechensystem, das in Echtzeit arbeitet. Das Framework ist hauptsächlich für die Verarbeitung von unbegrenzten Datenströmen in einer skalierbaren, fehlertoleranten Weise ausgelegt. Es ist sinnvoll für maschinelles Lernen, Echtzeit-Analysen und kontinuierliche Berechnungen. Storm läuft auf jeder Programmiersprache.
  • Apache Beam – Ein Open-Source-System, das ein einheitliches Programmiermodell sowohl für Streaming als auch für Stapelverarbeitung verwendet. Es kann Pipelines in vielen Laufzeitumgebungen ausführen. Die Anwendung kann in Python, Java und Go geschrieben werden.

Herausforderungen

  • Lower-level / higher-level APIs – Aufgrund der komplizierten APIs sind Streaming-Systeme komplexer als Batch-Systeme. Häufig erfordern die APIs Benutzereingriffe, um Anwendungen für physische Operationen zu spezifizieren.
  • Integration in End-to-End-Streaming-Anwendungen – Die meisten Streaming-Workloads werden im Rahmen einer größeren Anwendung ausgeführt. Um sie zu integrieren, sind wichtige Benutzereingriffe erforderlich, die ebenfalls zeitaufwändig sind.
Institutionen & Plattformen (Auswahl)