Data Engineering

Architektur und Infrastruktur für die Datenverarbeitung

Beitrag von Dr. Matthias Lein, CTO Alexander Thamm GmbH [at]

Data Engineering steht, im Gegensatz zur Data Science, nur selten im Rampenlicht.

Als 2012 der Harvard Business Review den Data Scientisten zum „Sexiest Job of the 21st Century” erklärte, waren alle Augen auf dieses Berufsbild gerichtet. Daten waren „das neue Gold“ und die Data Scientists waren die Alchemisten, welche mit ihren Formeln diese Schätze auch heben konnten. Die Technologien, welche diese Arbeit überhaupt ermöglichen, waren damals noch so spezialisiert, dass sie nur von wenigen wirklich großen Firmen eingesetzt wurden. Oftmals mussten diese Firmen diese Werkzeuge auch gleichzeitig selbst entwickeln. Gerade um sehr große Datenmengen oder sehr schnell anfallende Daten verarbeiten zu können, konnte man nicht auf etablierte, weitverbreitete Standards zugreifen. Die Entwicklung und Anwendung dieses ganzen Ökosystems an Technologien, Werkzeugen und Plattformen ist eine der Hauptaufgaben der Data Engineers.

Da es sich um eine relativ neue Rolle handelt, muss man zuallererst das Data Engineering von der Data Science und von der Softwareentwicklung abgrenzen. Während bei der Data Science die Gewinnung eines Mehrwertes aus den vorhandenen Daten im Vordergrund steht (z.B. durch Analyse, Entscheidungshilfe, maschinelles Lernen oder künstlicher Intelligenz), kümmert sich das Data Engineering um die Datensammlung, -verarbeitung und -speicherung. Es geht darum, große Mengen von Daten aus verschiedenen Quellen zu erfassen, zu organisieren und dann bereitzustellen. Data Engineers entwickeln und pflegen die Architektur und Infrastruktur, die für die Datenverarbeitung benötigt wird. Dazu gehören Datenbanken, Datenspeicher und die Pipelines (Ladestrecken) zur Datenverarbeitung.

Gerade bei der Entwicklung der Pipelines und der darin enthaltenen Transformationslogiken kommen viele Methoden aus dem Software-Engineering, also der klassischen Programmentwicklung zum Einsatz. Trotzdem sind Data Engineers keine Programmierer, da keine Applikation, zumindest nicht im klassischen Sinne von Front-End/Back-End Engineering für einen Endanwender, gebaut wird.

Zu diesen Fähigkeiten eines Data Engineers kommt dann noch eine gehörige Portion Infrastrukturwissen aus den Bereichen Cloud- und Plattformengineering, sowie der Datenmodellierung und der Enterprise-Architektur, um das Bild des Data Engineering abzurunden.

Eine dem Data Engineer ganz ähnliche Rolle, welche schon lange existiert, ist die des DBA (Database Administrator). Auch klassische DBAs haben viele der Fähigkeiten, welche von Data Engineers eingefordert werden und können oft problemlos einen Karrierewechsel in dieses neue Feld durchführen. Allerdings ist die Welt der relationalen Datenbanken, in der DBAs schon lange arbeiten, nur eine von vielen Technologien, welche in modernen Systemen eingesetzt werden.

Wenn man sich den „Tech-Stack“ (die eingesetzten Technologien) des Data Engineering anschaut, lohnt es sich mit der Datenspeicherung zu beginnen. Zu den bereits erwähnten relationalen Datenbanken, welche für strukturierte Daten natürlich immer noch eingesetzt werden, sind nun auch noSQL Datenbanken für semi-strukturierte Daten hinzugekommen. Für gänzlich „unstrukturierte“ Daten wie z.B. Video, Bild oder Audiomaterial werden heutzutage Data Lakes eingesetzt, welche oftmals auf Object-Storage Technologien wie S3 setzen. Die vielleicht modernste Variante der Datenplattform heute, das Data Lakehouse, setzt darauf alle diese Ansätze miteinander zu verbinden. Obwohl semi-strukturierte und unstrukturierte Daten von großem Wert sind, werden für konkrete Anwendungsfälle in Analytics, maschinellem Lernen und künstlicher Intelligenz meist strukturierte Daten benötigt. Dies liegt daran, dass strukturierte Daten besser für die Verarbeitung durch Algorithmen geeignet sind.

Je nach Größe der zu verarbeitenden Daten kommen natürlich unterschiedliche Technologien zum Einsatz. Bei kleineren oder mittelgroßen Datenmengen, welche noch im Hauptspeicher eines einzelnen Rechners verarbeitet werden können (und das ist inzwischen keine ganz kleine Datenmenge mehr), werden oft Bibliotheken wie Pandas eingesetzt. Diese Technologien sind weitverbreitet und werden auch an Schulen und Universitäten für die Lehre eingesetzt. Bei etwas größeren Datenmengen beginnt das verteilte Rechnen. Hier bieten sich Bibliotheken wie Polars oder DASK an, weil sie zwar verteiltes Rechnen ermöglichen, aber den Overhead für dessen Orchestrierung gering halten. Erst bei Datenvolumen im zweistelligen Terabyte-Bereich sollte man auf echte Big-Data Lösungen wie Spark setzen, ansonsten verbringt die Pipeline mehr Zeit damit sich selbst zu verwalten als mit der eigentlichen Berechnung.

Die meisten Datenplattformen werden heutzutage in der Cloud gebaut. In Deutschland bedeutet das meistens Microsoft Azure oder AWS, obwohl auch die kleineren Anbieter immer wieder mit technisch guten Angeboten punkten können. Leider steht Preistransparenz nicht besonders hoch auf der Agenda der Anbieter und somit ist es schwierig, einzelne Produkte, welche für die Architekturen einer Datenplattform eingesetzt werden, vergleichbar nebeneinander zu stellen. Auch hier ist die Kompetenz im Data Engineering wichtig. Soll eine Entscheidung für oder gegen einen Cloud-Anbieter getroffen werden, muss eine sorgfältige Analyse verschiedener Szenarien durchgeführt werden. Hier hilft nur langjährige Erfahrung, wenn man die vielen Produkte der Anbieter zu vergleichbaren Datenplattformen kombinieren will.

Zehn Jahre nach dem Erscheinen des Artikels im Harvard Business Review fragten sich die Autoren ob sich denn etwas geändert hätte: „Is Data Scientist Still the Sexiest Job of the 21st Century?”. In ihrer Schlussfolgerung beziehen sie sich auf die vielen Änderungen, welche dieses Berufsbild durchlaufen hat.

Vor 10 Jahren standen noch Themen wie Data Analytics im Vordergrund, weil es oftmals darum ging große Datenmengen überhaupt verarbeiten und verstehen zu können. Solche Aufgaben sind heute mit Werkzeugen „von der Stange” lösbar. Selbst generative KI wie chatGPT, DALL-E oder Midjourney sind mittlerweile so ausgereift, dass selbst Laien sie ohne Probleme bedienen können.

Warum ist das so? Die Antwort kann man weiter oben im Text nachlesen. Die enormen Aufwände die notwendigen Daten zu konsolidieren und zu verarbeiten, die Modelle dann zu trainieren und auch skalierbar im Internet anbieten zu können, werden fast ausschließlich von Data Engineers geleistet. Je nach Unternehmen kommen inzwischen auf jeden Data Scientisten zwischen 4 und 10 Data Engineers. Das zeigt, dass auch in der Zukunft dieses Berufsbild nicht nur spannend bleibt, sondern mit Sicherheit noch an Prominenz gewinnen wird.

Erstmals erschienen in: TiB Ausgabe 02/2024 MÄR/APR

Hier finden Sie weitere Beiträge zum Thema "Technologien der Zukunft"