denisismagilov - stock.adobe.com

IT-Jobs: Was macht ein Data Engineer?

Die Anforderungen an Datenspezialisten sind immens, haben sie doch mit einer Fülle an komplexen Daten zu tun. Das gilt insbesondere für Data Engineers.

Mit der wachsenden Datenmenge in Unternehmen entwickeln sich auch spezialisierte Berufsfelder und Jobbeschreibungen im Big-Data-Umfeld. So gibt es neben klassischen Datenanalysten und Data Stewards auch die Rollen der Data Scientists und Data Engineers.

Das Berufsfeld des Data Scientists erklärte uns Datenwissenschaftlerin Adriana Menegozzo bereits in einem Gespräch. Darin verwies sie unter anderem darauf, dass Data Engineers und Data-Analytics-Experten die besten Freunde der Data Scientists sind. Um das Zusammenspiel der drei Aufgabenfelder näher zu beleuchten, beschäftigen wir uns in diesem Artikel mit dem Job des Data Engineers.

Data Engineering konzentriert sich im Zusammenspiel der einzelnen Datenteams auf das Zusammentragen, Aufbereiten und Kontrollieren von Daten. Die Tätigkeit ist Grundlage für Analyseprojekte im Data-Science-Umfeld und Big-Data-Management.

Ein Data Engineer modelliert und skaliert unter anderem Datenbanken und stellt so den Data Stream innerhalb einer Organisation sicher. Für diese Aufgabe kommen relationale Datenbanken, ETL-Tools (Extract, Transform, Load), Big-Data-Technologien (zum Beispiel Apache Spark und Hadoop, Databricks sowie NoSQL-Datenbanken) sowie Cloud-Technologien (zum Beispiel von Amazon Web Services, Microsoft Azure und Google Cloud Platform) zum Einsatz.

Aufgrund der Fülle und Komplexität der Aufgaben, sollten Data Engineers ein tiefes Verständnis von mathematischen und technischen Prozessen haben. Außerdem sollten Sie Vorwissen für die Optimierung von Infrastrukturen mitbringen. Experten in diesem Bereich kommen daher häufig aus der Softwareentwicklung.

Das gilt auch für Darya Bulanova, die mehr als zehn Jahre Erfahrung in der IT-Branche als Softwareentwicklerin hat und Teamleiterin in der Softwareentwicklung war. Vor zwei Jahren wechselte sie in die Datenanalyse und arbeitet heute als Data Engineer bei der russischen Franchisekette Dodo Pizza. Im Gespräch erläutert sie ihr Verständnis von der Rolle des Data Engineers.

Was sind die genauen Aufgaben eines Data Engineers?

Darya Bulanova: Data Engineers sind für den Aufbau von Datenprodukten, Daten-Pipelines und die Architektur zum Aufbau von Datenprodukten verantwortlich. Sie sind auch verantwortlich für die Auswahl der optimalen Dateninfrastruktur, deren Überwachung und Wartung. Es gibt also viele Kompetenzen.

Einer der aktuellen Trends ist die Transformation von Datenteams, um die Verantwortung auf mehrere Gruppen aufzuteilen: Data-Core-Teams, Betriebsteams, Datenproduktteams und so weiter. In diesem Fall haben Data Engineers in den verschiedenen Teams leicht unterschiedliche Verantwortungen. Dies ist die gleiche Transformation wie in der Softwareentwicklung, um die Verantwortung zwischen mehreren Teams zu trennen. Erkennt ein Unternehmen diese Bedürfnisse nicht rechtzeitig, besteht die Gefahr, dass das Unternehmen einen Datensumpf statt eines Data Lakes aufbaut.

In welchen Bereichen ist ein Data Engineer tätig?

Bulanova: Der Data Engineer ist eine spezielle Rolle im Datenteam. Data Teams setzen sich in der Regel aus Business-Intelligence-Analysten und Data Scientists zusammen, können aber auch DataOps-Ingenieure, Machine-Learning-Ingenieure oder sogar Data Stewards umfassen. Und all diese sind dafür verantwortlich, dass Daten für ein Unternehmen funktionieren.

Welche Eigenschaften beziehungsweise Ausbildung sollte ein Data Engineer haben?

Bulanova: Die Tool-Landschaft des Data Engineers ist mittlerweile riesig und vielfältig, und das ist eine große Herausforderung. Um ein guter Data Engineer zu sein, sollten Sie tiefe Kenntnisse über bestimmte Big Data Tools haben, die in Ihrem Unternehmen verwendet werden. Bei uns sind das zum Beispiel Spark, Spark Streaming, Kafka, Delta Lake und HDFS. Sie sollten Kenntnisse über alternative Tools haben und diese anhand kritischer Eigenschaften vergleichen können, und außerdem einen Überblick über alle Tools in der Data-Engineering-Landschaft mitbringen.

Als nächstes sollten Data Engineers ein gutes Verständnis von Architekturprinzipien haben. Eine notwendige Fähigkeit ist, eine skalierbare und fehlertolerante analytische Plattform aufzubauen, die alle Aspekte der Daten umfasst. Allgemeine Architekturprinzipien sind auch hilfreich für ein klares Verständnis der Funktionsweise von SOA, Microservices, datengebundenen Kontexten, vom Grad der logischen Gruppierung, von der Rückverfolgbarkeit, der Abstammung der Daten und von gut definierten Datenmodellen.

Es ist außerdem wichtig, Erfahrung in der Softwareentwicklung zu haben. Auch hier gibt es viele Punkte, aber ich werde mich auf zwei davon konzentrieren. Erstens, Sie müssen eine Datenplattform aufbauen, was bedeutet, dass Sie in der Lage sein müssen, komplexen, leicht zu pflegenden Code zu schreiben.

Verwenden Sie robuste Software-Engineering-Techniken wie Continuous Integration und Continuous Delivery, verschiedene Tests, die Arbeit mit Umgebungen, Release-Management und so weiter. Ohne eine robuste Architektur und Dateninfrastruktur wird das Projekt unterdurchschnittlich abschneiden oder ins Leere laufen. Es ist hilfreich, Kenntnisse darüber zu haben, wie Datenbanken funktionieren, welche Strukturen verschiedene Datenbanken verwenden und aus welchen Blöcken sie bestehen. Gutes SQL und praktische Kenntnisse der Abfrageoptimierung sind also kritisch.

Ein weiterer wichtiger Aspekt der Arbeit eines Data Engineers ist ein verteiltes System zu schaffen. Dazu gehören die Prinzipien des Aufbaus von Distributed Computing, Leistungsoptimierung, Ressourcenzuweisung, Netzwerkbandbreite und wie man Datensätze partitioniert. Dies ist ein sehr komplexes Gebiet.

All das zeigt, dass Softwareentwickler einige der erforderlichen Fähigkeiten haben, aber sie müssen in die Welt von Big Data eintauchen. Nach unserer Erfahrung sieht ein Wechsel vom Senior Software Developer zum Middle Data Engineer so aus. Es gibt zwar auch die Transformation vom Data Scientist, aber der Weg ist länger als der vom Softwareentwickler, da Data Engineering ein stark ingenieurwissenschaftliches Fachgebiet ist, kein rein mathematisches.

Welche Unternehmen beschäftigen Data Engineers?

Bulanova: Ich denke, dass sich Data Engineers nur große Unternehmen leisten können, oder kleine, deren Geschäft aber direkt mit Daten zu tun haben. Der erste und verständliche Grund ist evolutionär: Wenn ein Unternehmen am Anfang seines Entwicklungsweges steht, hat es wenig Daten. Zusammen mit dem Wachstum des Unternehmens wird die Analytik alle Evolutionsstufen durchlaufen: Aufbau der Analytik auf einer OLTP-Datenbank, dann auf einer Replik, dann Übertragung der Daten in einen OLAP-Speicher.

Darya Bulanova, Dodo Pizza

„Ich denke, dass sich Data Engineers nur große Unternehmen leisten können, oder kleine, deren Geschäft aber direkt mit Daten zu tun hat.“

Darya Bulanova, Dodo Pizza

Und dann stößt man entweder an die technischen Grenzen der aufgebauten Lösung, oder das Unternehmen fordert einen qualitativen Sprung aufgrund der Daten. Und erst in diesem Moment wird das Unternehmen anfangen, Data Engineers einzustellen. Ein früheres Einstellen sieht nach Over-Engineering aus.

Und der zweite Grund, warum nur große Unternehmen einstellen, ist wirtschaftlicher Natur, was auch verständlich ist. Der Data Engineer ist ein ziemlich teurer Spezialist und die Verwendung von Big-Data-Technologie ist in der Regel teuer. Man sollte sie vermeiden, solange man auf sie verzichten kann. Bei kleinen Unternehmen, deren Geschäft direkt mit Daten zu tun hat, ist die Geschichte ein wenig anders. Sie befinden sich sofort an dem Punkt, an dem es eine Menge Daten gibt und man etwas mit ihnen machen muss, und zwar richtig und effizient. Hochwertige Data Engineers sind zentrale Figuren in solchen Teams, weil der Erfolg ihres Geschäfts davon abhängt.

Welche Tools und Programme verwendet ein Data Engineer?

Bulanova: Wie ich bereits erwähnt habe, verwenden wir persönlich Databricks, Spark, Spark Streaming, Kafka, Delta Lake und HDFS. Außerdem Grafana für die Überwachung, Github und andere gängige Engineering Tools. Die Hauptsache sind aber nicht spezifische Tools, sondern die Prinzipien und Algorithmen auf denen Big Data Tools aufbauen. Darüber hinaus sind Prinzipien und Muster allgemeiner Engineering Tools, wie Monitoring aufgebaut ist, wie moderne Versionskontrollsysteme funktionieren, sogar wie der Garbage Collector funktioniert, definitiv nützlich.

Erfahren Sie mehr über Datenverwaltung