Welche Aufgaben hat ein Data Engineer?
Inhalt
Was ist eigentlich ein Data Engineer bzw. ein/e DateningenieurIn?
Von selbstfahrenden Autos bis hin zu Facebook, um dich in Fotos zu markieren – Data Science hat in letzter Zeit viel Aufmerksamkeit erregt. Data Scientists sind extrem begehrt, und das aus gutem Grund - ein fähiger Data Scientist kann einen unglaublichen Mehrwert für ein Unternehmen schaffen. Aber was ist mit Data Engineers bzw. DateningenieurInnen? Wer sind sie, und was machen sie?
Ein Data Scientist ist nur so gut wie die Daten, auf die er oder sie Zugriff hat. Die meisten Unternehmen speichern ihre Daten in einer Vielzahl von Formaten in Datenbanken und Textdateien. Hier kommen Data Engineers ins Spiel - sie bauen Pipelines, die diese Daten in Formate umwandeln, die Data Scientists nutzen können. Data Engineers sind genauso wichtig wie Data Scientists, aber sie sind tendenziell weniger sichtbar, weil sie weiter vom Endprodukt der Analyse entfernt sind.
Eine gute Analogie ist ein Rennwagenbauer im Vergleich zu einem Rennwagenfahrer. Der Fahrer genießt die Aufregung, über die Strecke zu rasen, und den Nervenkitzel des Sieges vor den Augen der Zuschauer. Aber der Konstrukteur hat die Freude, Motoren zu tunen, mit verschiedenen Auspuffanlagen zu experimentieren und eine leistungsstarke, robuste Maschine zu bauen. Wenn du der Typ Mensch bist, der gerne Systeme baut und optimiert, könnte Data Engineering das Richtige für dich sein.
PS: Falls du aktuell offen bist für neue Jobangebote, hilft dir unser Anonymer Marktplatz weiter. Hier erstellst du in unter 1 Minute dein Profil & lässt Unternehmen sich bei dir bewerben. Die bequemste Jobsuche der Welt!
Aufgabengebiete von Data Engineers bzw. DateningenieurInnen
Die Rolle eines Data Engineers ist so vielseitig, wie es das Projekt erfordert. Folgende Aufgabengebiete sind hier typisch:
1. Daten extrahieren: Die Informationen befinden sich irgendwo, also müssen wir sie zunächst extrahieren. In Bezug auf Unternehmensdaten kann die Quelle eine Datenbank sein, die Benutzerinteraktionen einer Website, ein internes ERP/CRM-System usw. Oder die Quelle kann ein Sensor an einer Flugzeugkarosserie sein. Oder die Daten stammen aus öffentlichen, online verfügbaren Quellen.
2. Datenspeicherung/Übergang: Der wichtigste architektonische Punkt in jeder Datenpipeline ist die Speicherung. Wir müssen die extrahierten Daten irgendwo speichern. In der Datentechnik verkörpert das Konzept eines Data Warehouse einen ultimativen Speicher für alle Daten, die für analytische Zwecke gesammelt werden.
3. Transformation: Rohdaten machen für die Endanwender möglicherweise nicht viel Sinn, weil sie in dieser Form schwer zu analysieren sind. Transformationen zielen darauf ab, die Datensätze zu bereinigen, zu strukturieren und zu formatieren, um die Daten für die Verarbeitung oder Analyse konsumierbar zu machen. In dieser Form können sie schließlich zur weiteren Verarbeitung übernommen oder von der Berichtsebene abgefragt werden.
Aus diesen Aufgabengebieten ergeben sich drei grundlegende Rollen für Data Engineers bzw. DateningenieurInnen:
General-Rolle. Ein Data Engineer, der in einem kleinen Team von Datenexperten zu finden ist, wäre für jeden Schritt des Datenflusses verantwortlich. Angefangen bei der Konfiguration von Datenquellen bis hin zur Integration von Analysetools - all diese Systeme würden von einem/r DateningenieurIn mit allgemeiner Rolle entworfen, aufgebaut und verwaltet.
Warehouse-zentriert. Historisch gesehen war der Data Engineer in seiner/ ihrer Rolle für die Verwendung von SQL-Datenbanken zum Aufbau von Datenspeichern verantwortlich. Das ist auch heute noch so, aber die Warehouses selbst sind viel vielfältiger geworden. So kann es mehrere Data Engineers geben, und einige von ihnen können sich ausschließlich auf die Architektur eines Warehouses konzentrieren. Die Warehouse-zentrierten Data Engineers können auch verschiedene Arten von Speichern (noSQL, SQL), Tools für die Arbeit mit Big Data (Hadoop, Kafka) und Integrations-Tools zur Verbindung von Quellen oder anderen Datenbanken abdecken.
Pipeline-zentrierte Data Engineers würden sich um Datenintegrations-Tools kümmern, die Quellen mit einem Data Warehouse verbinden. Diese Tools können entweder nur Informationen von einem Ort zum anderen laden oder spezifischere Aufgaben übernehmen. Sie können zum Beispiel Daten-Staging-Bereiche umfassen, in denen die Daten vor der Transformation ankommen. Die Verwaltung dieser Schicht des Ökosystems wäre der Fokus eines Pipeline-zentrierten Data Engineers.
Verantwortlichkeiten von Data Engineers bzw. DateningenieurInnen
Unabhängig von der Fokussierung auf einen bestimmten Teil eines Systems, haben DateningenieurInnen ähnliche Aufgaben. Es handelt sich meist um eine technische Position, die Kenntnisse und Fähigkeiten der Informatik, des Ingenieurwesens und der Datenbanken kombiniert.
- Daten-Architekturen entwickeln, konstruieren, testen und pflegen
- Architekturen mit Geschäftsanforderungen abgleichen
- Datenerfassung
- Datensatzprozesse entwickeln
- Programmiersprachen und-werkzeuge einsetzen
- Möglichkeiten zur Verbesserung der Zuverlässigkeit, Effizienz und Qualität von Daten identifizieren
- Recherchen für Branchen- und Geschäftsfragen durchführen
- Große Datensätze zur Lösung von Geschäftsproblemen nutzen
- Einsatz von anspruchsvollen Analyseprogrammen, maschinellem Lernen und statistischen Methoden
- Daten für prädiktive und präskriptive Modellierung vorbereiten
- „Verborgene“ Muster in Daten finden
- Daten nutzen, um Aufgaben zu entdecken, die automatisiert werden können
- Aktualisierungen für Stakeholder (z.B. Datenbankadministratoren) auf der Basis von Analysen bereitstellen
Diese Einzelaufgaben lassen sich zusammengefasst in sieben Verantwortlichkeitsbereiche gliedern:
1. Entwurf der Daten-Architektur. Im Kern beinhaltet das Data Engineering den Entwurf der Architektur einer Datenplattform.
2. Entwicklung von datenbezogenen Instrumenten/Instanzen. Da es sich bei einem Data Engineer in erster Linie um eine Entwicklerrolle handelt, verwenden diese SpezialistInnen Programmierkenntnisse, um Integrationstools, Datenbanken, Warehouses und Analysesysteme zu entwickeln, anzupassen und zu verwalten.
3. Wartung/Test der Datenpipeline. Während der Entwicklungsphase würden DateningenieurInnen die Zuverlässigkeit und Leistung der einzelnen Teile eines Systems testen. Oder sie können mit dem Testteam zusammenarbeiten.
4. Einsatz von Algorithmen für maschinelles Lernen. Modelle für maschinelles Lernen werden von DatenwissenschaftlerInnen entworfen. DateningenieurInnen sind dafür verantwortlich, diese in Produktionsumgebungen zu implementieren. Dies beinhaltet die Versorgung des Modells mit Daten, die in einem Warehouse gespeichert sind oder direkt aus Quellen stammen, die Konfiguration von Datenattributen, die Verwaltung von Rechenressourcen, die Einrichtung von Überwachungstools usw.
5. Verwalten von Daten und Metadaten. Die Daten können in einem Warehouse entweder strukturiert oder unstrukturiert gespeichert werden. Zusätzlicher Speicher kann Metadaten (explorative Daten über Daten) enthalten. Ein Data Engineer ist dafür zuständig, die gespeicherten Daten zu verwalten und sie mit Hilfe von Datenbankmanagementsystemen richtig zu strukturieren.
6. Bereitstellung von Werkzeugen für den Datenzugriff. In einigen Fällen sind solche Tools nicht erforderlich, da Data Scientists mit Hilfe von Warehouse-Typen wie Data-Lakes die Daten direkt aus dem Speicher ziehen können. Wenn ein Unternehmen jedoch Business Intelligence für Analysten und andere nicht-technische Benutzer benötigt, sind DateningenieureInnenfür die Einrichtung von Tools zum Anzeigen von Daten, Generieren von Berichten und Erstellen von Visualisierungen verantwortlich.
7. Verfolgen der Stabilität von Pipelines. Die Überwachung der Gesamtleistung und Stabilität des Systems ist wirklich wichtig, solange das Warehouse von Zeit zu Zeit bereinigt werden muss. Die automatisierten Teile einer Pipeline sollten ebenfalls überwacht und angepasst werden, da sich Daten/Modelle/Anforderungen ändern können.
Wichtige Skills von Data Engineers bzw. DateningenieurInnen
Von DateningenieurInnen wird erwartet, dass sie wissen, wie man Datenbanksysteme aufbaut und pflegt, Programmiersprachen wie SQL, Python und R fließend beherrschen, versiert darin sind, Warehousing-Lösungen zu finden und ETL-Tools (Extrahieren, Übertragen, Laden) zu verwenden sowie grundlegende maschinelle Lernverfahren und Algorithmen verstehen.
Das Skillset eines Data Engineers sollte auch aus Soft Skills bestehen, einschließlich Kommunikation und Zusammenarbeit. Data Science ist ein sehr kollaboratives Feld, und Data Engineers arbeiten mit einer Reihe von Stakeholdern zusammen, von Datenanalysten bis hin zu CTOs.
Während die Jobanforderungen für DateningenieurInnen in den verschiedenen Branchen variieren, konzentrieren sich die meisten Personalverantwortlichen also auf folgende acht Punkte:
1. Datenbanksysteme (SQL und NoSQL). SQL ist die Standardprogrammiersprache für den Aufbau und die Verwaltung relationaler Datenbanksysteme (Tabellen, die aus Zeilen und Spalten bestehen). NoSQL-Datenbanken sind nicht-tabellarisch und kommen in einer Vielzahl von Typen, abhängig von ihrem Datenmodell, wie z. B. einem Graphen oder Dokument. DateningenieureInnen müssen wissen, wie man mit Datenbankmanagementsystemen (DBMS) umgeht. DBMS ist eine Softwareanwendung, die eine Schnittstelle zu Datenbanken für die Speicherung und den Abruf von Informationen bietet.
2. Data-Warehousing-Lösungen. Data-Warehouses speichern riesige Mengen aktueller und historischer Daten für Abfragen und Analysen. Diese Daten werden aus zahlreichen Quellen portiert, z. B. aus einem CRM-System, einer Buchhaltungssoftware und einer ERP-Software. Die Daten werden dann von der Organisation für Berichte, Analysen und Data Mining verwendet. Die meisten ArbeitgeberInnen erwarten von BerufseinsteigerInnen, dass sie mit Amazon Web Services (AWS) vertraut sind, einer Cloud-Service-Plattform mit einem ganzen Ökosystem von Datenspeicher-Tools.
3. ETL-Werkzeuge. ETL (Extrahieren, Übertragen, Laden) bezieht sich darauf, wie Daten aus einer Quelle entnommen (extrahiert), in ein Format umgewandelt (transformiert) werden, das analysiert und in ein Data Warehouse gespeichert (geladen) werden kann. Dieser Prozess nutzt die Stapelverarbeitung, um den BenutzerInnen bei der Analyse von Daten zu helfen, die für ein bestimmtes Geschäftsproblem relevant sind. Der ETL zieht Daten aus verschiedenen Quellen, wendet bestimmte Regeln auf die Daten entsprechend den Geschäftsanforderungen an und lädt dann die umgewandelten Daten in eine Datenbank oder eine Business-Intelligence-Plattform, sodass sie von jedem im Unternehmen genutzt und eingesehen werden können.
4. Maschinelles Lernen. Algorithmen des maschinellen Lernens helfen DatenwissenschaftlerInnen, Vorhersagen auf der Grundlage aktueller und historischer Daten zu treffen. DateningenieurInnen benötigen nur ein Grundwissen über maschinelles Lernen, da es ihnen ermöglicht, die Bedürfnisse eines Datenwissenschaftlers besser zu verstehen (und damit auch die Bedürfnisse des Unternehmens), Modelle in die Produktion zu bringen und genauere Datenpipelines zu erstellen.
5. Daten-APIs. Eine API ist eine Schnittstelle, über die Softwareanwendungen auf Daten zugreifen können. Sie ermöglicht es zwei Anwendungen oder Maschinen, für eine bestimmte Aufgabe miteinander zu kommunizieren. Beispielsweise verwenden Webanwendungen eine API, damit das benutzerseitige Frontend mit der Backend-Funktionalität und den Daten kommunizieren kann. Wenn eine Anfrage auf einer Website gestellt wird, ermöglicht eine API der Anwendung, die Datenbank zu lesen, Informationen aus den relevanten Tabellen in der Datenbank abzurufen, die Anfrage zu verarbeiten und eine HTTP-basierte Antwort an die Webvorlage zurückzugeben, die dann im Webbrowser angezeigt wird. DateningenieurInnen erstellen APIs in Datenbanken, um Datenwissenschaftlern und Business Intelligence-Analysten die Abfrage der Daten zu ermöglichen.
6. Python, Java und Scala. Python ist die am häufigsten verwendete Programmiersprache für statistische Analysen und Modellierung. Java wird häufig in Datenarchitektur-Frameworks verwendet und die meisten ihrer APIs sind für Java konzipiert. Scala ist eine Erweiterung der Java-Sprache, die mit Java interoperabel ist, da sie auf der JVM (einer virtuellen Maschine, die es einem Computer ermöglicht, Java-Programme auszuführen) läuft.
7. Verstehen der Grundlagen von verteilten Systemen. Die Beherrschung von Hadoop ist eine der wichtigsten Fähigkeiten von DateningenieurInnen. Die Apache Hadoop Software-Bibliothek ist ein Framework, das die verteilte Verarbeitung großer Datensätze über Cluster von Computern mit einfachen Programmiermodellen ermöglicht. Es ist so konzipiert, dass es von einzelnen Servern bis hin zu Tausenden von Rechnern skaliert werden kann, wobei jeder Rechner lokale Berechnungen und Speicherplatz bietet. Apache Spark ist das am weitesten verbreitete Programmierwerkzeug in der Datenwissenschaft und ist in der Programmiersprache Scala geschrieben.
8. Kenntnisse von Algorithmen und Datenstrukturen. DateningenieurInnen konzentrieren sich meist auf die Datenfilterung und Datenoptimierung, aber ein grundlegendes Wissen über Algorithmen ist hilfreich, um das Gesamtbild der gesamten Datenfunktion des Unternehmens zu verstehen sowie Kontrollpunkte und Endziele für das jeweilige Geschäftsproblem zu definieren.
Fazit
Data Engineering ist derzeit einer der am schnellsten wachsenden Sektoren im Tech-Bereich. DateningenieurInnen genießen eine hohe Arbeitszufriedenheit, vielfältige kreative Herausforderungen und die Möglichkeit, mit sich ständig weiterentwickelnden Technologien zu arbeiten. Laut StepStone verdienen Data Engineers bzw. DateningenieurInnen in Deutschland durchschnittlich 54.900€ im Jahr. Auf juucy suchen hunderte von Unternehmen nach Top Data Engineers – lass dich über deinem Wunschgehalt abwerben 💸💸