Dateningenieure: Mythen vs. Realitäten
Veröffentlicht: 2018-05-10Von selbstfahrenden Autos bis hin zum automatischen Markieren in Bildern hat die Datenwissenschaft einen langen Weg zurückgelegt. Data Scientists und Analysten sind aufgrund ihres Mehrwerts zu einem festen Bestandteil jeder Organisation geworden. Aber ganz ehrlich, ein Data Scientist ist nur so gut wie die Daten, mit denen er arbeitet. Die meisten Organisationen haben ihre Daten heute in einer Vielzahl von Formaten und auf zahlreichen Plattformen gespeichert. Hier kommt ein Bedarf an Dateningenieuren!
Data Engineers sind Personen, die diese Daten für Data Scientists und Analysten nutzbar machen. Data Engineers sind für den Aufbau von Pipelines verantwortlich, die die Datenberge in ein für Data Scientists verwendbares Format umwandeln. Sie arbeiten meistens hinter den Kulissen und haben daher nicht den ganzen Glamour eines Datenwissenschaftlers / Analysten – aber wohlgemerkt, sie sind ebenso (wenn nicht sogar noch wichtiger) für das Funktionieren jeder Organisation unerlässlich.
Wenn Datenwissenschaftler Rennfahrer sind, sind Dateningenieure Rennwagenbauer. Ersteres bekommt die Aufregung, auf einer Strecke zu rasen, und den Nervenkitzel, vor einer applaudierenden Menge zu gewinnen. Letzterer hingegen hat die Freude, Motoren zu tunen und eine leistungsstarke, robuste Maschine zu schaffen. Ein Rennwagenbauer macht die Arbeit des Fahrers viel einfacher (oder schwieriger, je nach Qualität des Erbauers).
Wie können Sie auf Datenanalyse umsteigen?
In dieser Hinsicht sind Dateningenieure so ziemlich die unbesungenen Helden eines jeden Datenanalyseteams. Ohne einen soliden Dateningenieur wird sich ein Datenwissenschaftler nur am Kopf kratzen und nach Hinweisen in unformatierten Daten suchen.
Mal sehen, was die Arbeit eines Dateningenieurs alles mit sich bringt.
Nehmen wir zum besseren Verständnis an, Sie sind Data Engineer bei einem Konkurrenten von Swiggy (nennen wir es Twiggy). Sie haben eine App, die Benutzer auf jedem Gerät verwenden und auf Ihre Dienste zugreifen können. Sie bestellen Essen, die Bestellung wird an das entsprechende Restaurant weitergeleitet, das Essen wird dort abgeholt und erreicht Sie.
Um diesen Dienst synchron zu halten, benötigen Sie:
- Eine mobile App für Benutzer
- Eine mobile App für Restaurantbesitzer
- Ein robuster Server, um mehrere Anfragen gleichzeitig zu verarbeiten.
Wie Sie vielleicht schon verstanden haben, wird diese Anwendung RIESIGE Datenmengen erzeugen. Außerdem benötigen Sie einige Datenspeicher:
- Eine Datenbank, die die Details der Benutzer und Restaurants enthält.
- Server-Zugriffsprotokolle. Dazu gehören alle Anfragen, die von der App an den Server gestellt werden.
- Serverfehlerprotokolle, die alle serverseitigen Fehler enthalten.
- App-Ereignisprotokolle. Diese enthalten Informationen darüber, welche Aktionen Benutzer oder Restaurantbesitzer in der Anwendung durchgeführt haben.
- App-Fehlerprotokolle, die App-basierte Fehler enthalten.
- Kundendienstdatenbank. Diese enthält die Daten über Ihre Interaktion mit Ihren Kunden.
Nehmen wir nun an, ein Datenwissenschaftler Ihres Teams möchte das Benutzerverhalten auf Ihren Diensten analysieren und sehen, welche Aktionen mit ausgabefreudigen Benutzern korrelieren. Um ihnen bei der Erstellung zu helfen, müssen Sie alle Informationen aus den Serverzugriffsprotokollen und den App-Ereignisprotokollen kombinieren.
Sie müssen:
- Sammeln Sie regelmäßig App-Analyseprotokolle.
- Kombinieren Sie App-Analyseprotokolle mit Serverprotokolleinträgen für die relevanten Benutzer.
- Entwickeln Sie eine API, die den Ereignisverlauf jedes Benutzers zurückgibt.
Da steckt viel Arbeit drin!
Um all dies zu tun, müssen Sie eine Pipeline erstellen, die Protokolle mobiler Anwendungen und Serverprotokolle effizient in Echtzeit aufnehmen, analysieren und mit dem entsprechenden Benutzer verknüpfen kann. Außerdem müssen Sie die geparsten Protokolle in einer Datenbank speichern, damit die API sie problemlos abfragen kann. Es gibt viele Server, die Sie hinter einem Load Balancer hochfahren müssen, um die eingehenden Protokolle zu analysieren.
Die meisten Probleme, auf die Sie stoßen werden, beziehen sich auf verteilte Systeme und Zuverlässigkeit. Wenn Sie Millionen von Geräten zum Sammeln von Protokollen und dynamische Anforderungen haben (nachmittags erhalten Sie viele Protokolleinträge, aber nicht so viele um Mitternacht), müssen Sie ein System entwickeln, das die Serveranzahl automatisch nach oben und unten skalieren kann abhängig vom Verkehr.
Die wichtigsten Schritte zur Beherrschung der Datenwissenschaft
Die Vorgänge in einer generischen Data-Engineering-Pipeline durchlaufen grob die folgenden Phasen:
- Aufnahme: Sammeln der benötigten Daten.
- Verarbeitung: Verarbeitung der Daten, um das gewünschte Ergebnis zu erzielen.
- Speicherung: Speicherung des Ergebnisses zum schnelleren Abruf.
- Zugriff: Ermöglicht einem Tool den Zugriff auf die Ergebnisse der Datenpipeline.
Von einem Data Engineer werden Kenntnisse in den folgenden Bereichen erwartet.
- Datenspeicherung:
- RDBMS wie MySQL, MS SQL Server usw.
- NoSQL-Datenbanken wie HBase, MongoDB, CouchDB, Cassandra usw.
- Datensammlung:
- RESTful-APIs
- Kenntnisse in der Datenmodellierung und Expertise in SQL.
- Datentransformation:
- ETL-Tools wie Informatica, Datastage, Redpoint usw.
- Jede Skriptsprache wie Python, Ruby, Perl usw.
Schauen wir uns einige Mythen und Missverständnisse an, die sich um das Leben und die Arbeit dieser Dateningenieure drehen.
Inhaltsverzeichnis
Mythos Nr. 1: Dateningenieure extrahieren Wert aus den gesammelten Daten.
Zwischen dem Sammeln der Daten und dem Extrahieren des Wissens ist viel zu tun. Dateningenieure sind in erster Linie dafür verantwortlich, die Daten in eine für Wissenschaftler geeignete Form zur Analyse und Bearbeitung umzuwandeln. Insofern extrahieren sie keinen Wert aus den Daten, sondern präsentieren die Daten den Datenwissenschaftlern auf einer Platte, die dann einen Wert daraus entdecken.

Mythos Nr. 2: Dateningenieure müssen alle Daten makellos machen.
Sie werden die Absurdität dessen erkennen, wenn Sie den obigen Satz langsam lesen. Ein Data Engineer beschäftigt sich den ganzen Tag über mit eingehenden Datenströmen. Diese Daten müssen bereinigt und sofort bearbeitet werden, damit sie nicht veraltet sind. Mit altbacken meinen wir uneinsichtig und alt. Dateningenieure machen also nicht alle Daten makellos. Sie arbeiten mit den vorliegenden Daten in Kombination mit anderen Daten, die für das jeweilige Problem erforderlich sind. Das Bereinigen der kompletten Datensätze wird Monate dauern, und bis dahin wird es nichts nützen.
Grundlegende Grundlagen der Statistik für Data Science
Mythos Nr. 3: Dateningenieure laden die Daten auf vorgefertigte Tools und genießen die sauberen/funktionsfähigen Daten als Ausgabe.
Bitte sagen Sie es nicht laut vor einem Datentechniker. Je. Kein Datentechniker mit Selbstachtung wird eine so offensichtliche Beleidigung tolerieren. Wie jeder andere Ingenieur (Software, Mechanik, Chemie usw.) müssen Dateningenieure die ganze Zeit über nachdenken. Es gibt keinen One-Shoe-fits-all-Ansatz in der Datentechnik, und Dateningenieure müssen Algorithmen kontinuierlich an ihren Anwendungsfall anpassen. Sie müssen sich der neuesten Techniken und Methoden rund um ihre Arbeit bewusst sein, um eine perfekte Effizienz zu gewährleisten.
Mythos Nr. 4: Dateningenieure sind nur Softwareingenieure, die an Big Data arbeiten.
Softwareingenieure arbeiten an der Entwicklung von Mobil-/Web-Apps. Ihre Arbeit beinhaltet viele verschiedene Probleme und die Schwierigkeit besteht darin, die Aufgaben zu bewältigen – den Code zu denken, zu kommunizieren und zu organisieren. Data Engineers hingegen haben generell weniger Probleme, allerdings sind die einzelnen Probleme technisch deutlich schwieriger. Von der Perspektive bis zum Skillset ist für einen Data Engineer alles ganz anders als für einen Software Engineer.
Wer ist ein Data Scientist, ein Data Analyst und ein Data Engineer?
Holen Sie sich eine Data-Science-Zertifizierung von den besten Universitäten der Welt. Lernen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.
Ähnelt Data Engineering einer klassischen IT-Rolle?
„Data Engineer“ und „Software Engineer“ mögen für Personen außerhalb des Computersektors austauschbar klingen, da beide weitgehend auf Programmierkenntnissen beruhen. Aber eigentlich sind sie Experten auf verschiedenen Gebieten. Das Hauptziel von Softwareentwicklern ist es, benutzerfreundliche Websites zu erstellen. Dateningenieure erstellen Systeme zum Speichern, Konsolidieren und Abrufen von Daten, die dann von Softwareentwicklern zum Erstellen von Systemen und Anwendungen verwendet werden. Dateningenieure können auch eine kontinuierliche Integrations- und Bereitstellungspipeline (CI/CD) für alle Unternehmensdaten sowie Versionskontrollsysteme erstellen und pflegen, um die Datenqualität in der gesamten Infrastruktur sicherzustellen.
Ist eine Hochschulausbildung oder ein höherer Abschluss erforderlich, um Data Engineer zu werden?
Um als Data Engineer zu arbeiten, benötigen Sie keinen Abschluss, obwohl bestimmte Arbeitgeber Kandidaten mit mindestens einem Bachelor-Abschluss bevorzugen. Kein akademischer Kurs oder Online-Lehrplan kann Sie vollständig darauf vorbereiten, Datensysteme zu erstellen, die Daten aus einer Vielzahl von Quellen verschieben, ändern und zur Analyse speichern können. Tatsache ist, dass die meisten erfolgreichen Dateningenieure viel bei der Arbeit lernen, während sie in der realen Welt mit echten Kunden arbeiten. Aber ja, es ist wichtig, dass ein Data Engineer über gute Fähigkeiten verfügt, um mit bestimmten Tools wie Amazon Athena, Amazon Redshift, Apache Spark usw. zu arbeiten und sich mit Best Practices für das Datenmanagement vertraut zu machen.
Wie wird man ein erfolgreicher Data Engineer?
Für datengesteuerte Unternehmen ist Data Engineering von entscheidender Bedeutung, aber was genau machen Data Engineers? Hier ist der Weg zum erfolgreichen Data Engineer
1. Erlernen Sie Programmierkenntnisse: Wenn Sie ein erfolgreicher Data Engineer werden möchten, sollten Sie zunächst Ihre Programmiergrundlagen auffrischen. Python und Scala sind die am häufigsten verwendeten Technologien in der Branche.
2. Lernen Sie, wie Sie automatisieren und skripten: Das Lernen von Automatisierung ist für Data Engineers von entscheidender Bedeutung. Da an den Daten viele Aufgaben durchgeführt werden müssen, die mühsam sein können oder regelmäßig auftreten können. Einige wichtige Tools für die Automatisierung sind Shell-Scripting und Datenverarbeitung in Shell.
3. Wissen, wie Sie Ihre Datenbanken verwenden: Dies kann durch das Erlernen von SQL und Datenmodellierung erreicht werden.
4. Erfahrene Datenverarbeitungstechniken: Um Datenverarbeitungstechniken zu beherrschen, ist es wichtig zu lernen, wie Daten in Stapeln und Streams verarbeitet werden, bevor die Ergebnisse in Zieldatenbanken geladen werden.