Hallo und herzlich willkommen zurück! Der Titel des Artikels spricht für sich selbst. Angesichts des bevorstehenden Kursstarts nehmen wir uns die Zeit, um zu klären, wer genau Dateningenieure sind. Der Artikel enthält zahlreiche nützliche Links. Viel Spaß beim Lesen.

Ein einfaches Handbuch, wie man die Welle des Data Engineering erfasst und nicht in ihren Strudel gezogen wird.
Es scheint, dass heutzutage jeder ein Data Scientist werden möchte. Aber wie sieht es mit Data Engineering aus? Im Grunde genommen handelt es sich um eine Art Hybrid zwischen Datenanalyst und Data Scientist; der Dateningenieur ist normalerweise verantwortlich für die Verwaltung von Workflows, Datenpipelines und ETL-Prozessen.Angesichts der Bedeutung dieser Funktionen ist dies derzeit ein weiterer beliebter Fachjargon, der schnell an Bedeutung gewinnt.
Hohe Gehälter und eine immense Nachfrage sind nur einige der Faktoren, die diesen Beruf äußerst attraktiv machen! Wenn Sie sich den Reihen der Helden anschließen möchten, ist es nie zu spät, mit dem Lernen zu beginnen. In diesem Beitrag habe ich alle notwendigen Informationen zusammengestellt, um Ihnen zu helfen, die ersten Schritte zu machen.
Also, lass uns anfangen!
Was ist Data Engineering?
Ehrlich gesagt gibt es keine bessere Erklärung als diese:
„Ein Wissenschaftler kann einen neuen Stern entdecken, aber er kann ihn nicht erschaffen. Er wird einen Ingenieur bitten müssen, dies für ihn zu tun.“
– Gordon Lindsay Glegg
Die Rolle des Dateningenieurs ist somit erheblich.
Wie der Name schon sagt, beschäftigt sich die Datenengineering mit Daten, insbesondere mit deren Lieferung, Speicherung und Verarbeitung. Folglich besteht die Hauptaufgabe der Ingenieure darin, eine zuverlässige Infrastruktur für Daten bereitzustellen. Wenn wir die Hierarchie der Bedürfnisse in der KI betrachten, nimmt das Datenengineering die ersten 2–3 Stufen ein: Daten sammeln, transferieren und speichern, Daten vorbereiten.

Was macht ein Dateningenieur?
Mit dem Aufkommen großer Datenmengen hat sich das Verantwortungsgebiet drastisch gewandelt. Während diese Experten früher umfangreiche SQL-Abfragen schrieben und Daten mithilfe von Tools wie Informatica ETL, Pentaho ETL oder Talend transferierten, sind die Anforderungen an Dateningenieure jetzt gestiegen.
Die meisten Unternehmen mit offenen Stellen für Dateningenieure stellen folgende Anforderungen:
- Ausgezeichnete Kenntnisse in SQL und Python.
- Erfahrung mit Cloud-Plattformen, insbesondere Amazon Web Services.
- Kenntnisse in Java/Scala sind von Vorteil.
- Gutes Verständnis von SQL- und NoSQL-Datenbanken (Datenmodellierung, Datenspeicherung).
Bitte beachten Sie, dass dies nur die grundlegendsten Anforderungen sind. Aus dieser Liste lässt sich schließen, dass Dateningenieure Experten im Bereich Softwareentwicklung und Backend sind.
Wenn ein Unternehmen beispielsweise beginnt, große Datenmengen aus verschiedenen Quellen zu generieren, besteht Ihre Aufgabe als Dateningenieur darin, die Sammlung, Verarbeitung und Speicherung der Informationen zu organisieren.
Die Liste der in diesem Fall verwendeten Werkzeuge kann variieren; alles hängt von der Menge dieser Daten, der Geschwindigkeit ihrer Ankunft und der Heterogenität ab. Die meisten Unternehmen haben überhaupt nicht mit Big Data zu tun, weshalb eine SQL-Datenbank (PostgreSQL, MySQL usw.) als zentrales Repository dienen kann, zusammen mit einem kleinen Satz von Skripten, die die Daten in das Repository leiten.
IT-Giganten wie Google, Amazon, Facebook oder Dropbox stellen höhere Anforderungen: Kenntnisse in Python, Java oder Scala.
- Erfahrung mit Big Data: Hadoop, Spark, Kafka.
- Kenntnisse von Algorithmen und Datenstrukturen.
- Verständnis der Grundlagen verteilter Systeme.
- Erfahrung mit Visualisierungstools wie Tableau oder ElasticSearch ist ein großer Vorteil.
Das zeigt, dass es eine klare Tendenz zu Big Data gibt, insbesondere in der Verarbeitung unter hoher Last. Diese Unternehmen haben höhere Anforderungen an die Systemausfallsicherheit.
Data Engineers vs. Data Scientists

Das war ein einfaches und unterhaltsames Vergleich (nichts Persönliches), aber in Wirklichkeit ist es viel komplexer.
Zunächst müssen Sie wissen, dass es eine erhebliche Unklarheit über die Abgrenzung der Rollen und Fähigkeiten von Data Scientists und Data Engineers gibt. Das heißt, es kann leicht zu Verwirrung kommen, welche Fähigkeiten für einen erfolgreichen Data Engineer erforderlich sind. Natürlich gibt es bestimmte Fähigkeiten, die sich auf beide Rollen überschneiden. Aber es gibt auch eine ganze Reihe diametral entgegengesetzter Fähigkeiten.
Data Science ist eine ernsthafte Angelegenheit, aber wir bewegen uns in eine Welt der funktionalen Datenwissenschaft, in der Praktiker ihre eigene Analyse durchführen können. Um Datenpipelines und integrierte Datenstrukturen zu aktivieren, benötigen Sie Dateningenieure und keine Wissenschaftler.
Ist ein Dateningenieur gefragter als ein Data Scientist?
— Ja, denn bevor Sie einen Karottenkuchen backen können, müssen Sie zuerst die Karotten sammeln, reinigen und lagern!
Ein Dateningenieur hat bessere Programmierkenntnisse als jeder Data Scientist, aber wenn es um Statistik geht, ist es ganz anders.
Aber hier ist der Vorteil eines Dateningenieurs:
ohne ihn/sie sinkt der Wert eines Prototypmodells, das meist aus einem schlecht geschriebenen Codefragment in einer Python-Datei besteht, das von einem Data Scientist stammt und irgendwie Ergebnisse liefert, gegen null.
Ohne einen Dateningenieur wird dieser Code niemals zu einem Projekt, und kein Geschäftsproblem wird effektiv gelöst. Ein Dateningenieur versucht, all dies in ein Produkt zu verwandeln.
Wichtige Informationen, die ein Dateningenieur wissen sollte

Wenn diese Arbeit in Ihnen Begeisterung weckt und Sie motiviert sind – Sie können das lernen und alle notwendigen Fähigkeiten erwerben, um ein echter Rockstar im Bereich Data Engineering zu werden. Und ja, das ist auch ohne Programmierkenntnisse oder andere technische Kenntnisse möglich. Es ist herausfordernd, aber machbar!
Was sind die ersten Schritte?
Sie sollten ein allgemeines Verständnis dafür haben, was es gibt.
Zunächst einmal bezieht sich Data Engineering auf Informatik. Im Wesentlichen sollten Sie effektive Algorithmen und Datenstrukturen verstehen. Zweitens, da Dateningenieure mit Daten arbeiten, ist ein Verständnis der Funktionsweise von Datenbanken und der zugrunde liegenden Strukturen erforderlich.
Zum Beispiel basieren gängige B-Baum-SQL-Datenbanken auf der Datenstruktur B-Baum sowie in modernen verteilten Repositories auf LSM-Baum und anderen Modifikationen von Hash-Tabellen.
* Diese Schritte basieren auf einem hervorragenden Artikel . Wenn Sie also die russische Sprache beherrschen, unterstützen Sie diesen Autor und lesen Sie .
1. Algorithmen und Datenstrukturen
Die Verwendung der richtigen Datenstruktur kann die Leistung eines Algorithmus erheblich verbessern. Idealerweise sollten wir alle in der Schule Datenstrukturen und Algorithmen lernen, aber das wird selten behandelt. So oder so, es ist nie zu spät, sich damit vertraut zu machen.
Hier sind also meine Lieblings-Websites mit kostenlosen Kursen zum Lernen von Datenstrukturen und Algorithmen:
Und vergessen Sie nicht das klassische Werk über Algorithmen von Thomas Cormen — . Es ist das ideale Nachschlagewerk, wenn Sie Ihr Gedächtnis auffrischen müssen.
- Um Ihre Fähigkeiten zu verbessern, nutzen Sie .
Sie können auch in die Welt der Datenbanken eintauchen mit den großartigen Videos der Carnegie Mellon University auf Youtube:
- .
- .
2. SQL lernen
Unser ganzes Leben besteht aus Daten. Und um diese Daten aus einer Datenbank zu extrahieren, müssen Sie "mit ihnen sprechen" – und zwar in einer gemeinsamen Sprache.
SQL (Structured Query Language – Strukturierte Abfragesprache) ist die Sprache der Datenkommunikation. Egal, was gesagt wird, SQL hat gelebt, lebt und wird noch lange weiterleben.
Wenn Sie längere Zeit in der Entwicklung tätig waren, haben Sie wahrscheinlich bemerkt, dass regelmäßig Gerüchte über das bevorstehende Verschwinden von SQL auftauchen. Die Sprache wurde Anfang der 70er Jahre entwickelt und erfreut sich nach wie vor großer Beliebtheit bei Analysten, Entwicklern und einfach Interessierten.
Ohne SQL-Kenntnisse gibt es in der Datenengineering-Welt nichts zu suchen, denn Sie müssen unvermeidlich Abfragen zur Datenextraktion erstellen. Alle modernen Big-Data-Speicher unterstützen SQL:
- Amazon Redshift
- HP Vertica
- Oracle
- SQL Server
… und viele andere.
Um große Datenmengen, die in verteilten Systemen wie HDFS gespeichert sind, zu analysieren, wurden SQL-Mechanismen wie Apache Hive, Impala usw. erfunden. Sehen Sie, es hat nicht vor, irgendwohin zu gehen.
Wie lernt man SQL? Ganz einfach: Praktizieren, praktizieren, praktizieren.
Ich empfehle Ihnen, sich mit einem hervorragenden Tutorial vertraut zu machen, das übrigens kostenlos ist, von .
Ein herausragendes Merkmal dieser Kurse ist die interaktive Umgebung, in der Sie SQL-Abfragen direkt im Browser schreiben und ausführen können. Die Ressource wird Ihnen nicht schaden. Und Sie können dieses Wissen in im Bereich Datenbanken anwenden.
3. Programmierung in Python und Java/Scala
Warum es sich lohnt, die Programmiersprache Python zu lernen, habe ich bereits in dem Artikel geschrieben. Was Java und Scala betrifft, so sind die meisten Tools zur Speicherung und Verarbeitung großer Datenmengen in diesen Sprachen geschrieben. Zum Beispiel:
- Apache Kafka (Scala)
- Hadoop, HDFS (Java)
- Apache Spark (Scala)
- Apache Cassandra (Java)
- HBase (Java)
- Apache Hive (Java)
Um zu verstehen, wie diese Tools funktionieren, müssen Sie die Sprachen kennen, in denen sie geschrieben sind. Der funktionale Ansatz von Scala ermöglicht eine effiziente Lösung von Aufgaben der parallelen Datenverarbeitung. Python kann leider nicht mit Geschwindigkeit und paralleler Verarbeitung konkurrieren. Insgesamt wirkt sich das Wissen über mehrere Programmiersprachen und -paradigmen positiv auf die Vielfalt der Problemlösungsansätze aus.
Um in die Sprache Scala einzutauchen, können Sie lesen vom Autor des Sprachleitfadens. Zudem hat Twitter ein gutes Einführungshandbuch veröffentlicht — .
Was Python betrifft, halte ich für das beste Buch auf mittlerem Niveau.
4. Werkzeuge für die Arbeit mit großen Datenmengen
Hier ist eine Liste der beliebtesten Werkzeuge in der Welt der Big Data:
- Apache Spark
- Apache Kafka
- Apache Hadoop (HDFS, HBase, Hive)
- Apache Cassandra
Weitere Informationen zum Bau großer Datenblöcke finden Sie in dieser erstaunlichen . Die beliebtesten Werkzeuge sind Spark und Kafka. Sie sind auf jeden Fall eine nähere Betrachtung wert, idealerweise sollten Sie verstehen, wie sie intern funktionieren. Jay Kreps (Mitautor von Kafka) veröffentlichte 2013 eine monumentale Arbeit , übrigens wurden die grundlegenden Ideen aus diesem Talmud verwendet, um Apache Kafka zu erstellen.
- Eine Einführung in Hadoop könnte sein .
- Das umfassendste Handbuch zu Apache Spark für mich ist .
5. Cloud-Plattformen

Das Wissen über mindestens eine Cloud-Plattform gehört zu den grundlegenden Anforderungen für Bewerber auf die Position eines Data Engineers. Arbeitgeber bevorzugen Amazon Web Services, gefolgt von der Google Cloud-Plattform, während Microsoft Azure den dritten Platz belegt.
Sie sollten sich gut mit Amazon EC2, AWS Lambda, Amazon S3 und DynamoDB auskennen.
6. Verteilte Systeme
Die Arbeit mit großen Datenmengen erfordert Cluster aus unabhängig arbeitenden Computern, die über ein Netzwerk verbunden sind. Je größer das Cluster, desto höher ist die Wahrscheinlichkeit eines Ausfalls seiner Knoten. Um ein echter Experte im Datenbereich zu werden, müssen Sie die Herausforderungen und bestehenden Lösungen für verteilte Systeme verstehen. Dieses Gebiet ist alt und komplex.
Andrew Tanenbaum gilt als Pionier auf diesem Gebiet. Für diejenigen, die sich nicht vor Theorien scheuen, empfehle ich sein Buch , es mag für Anfänger komplex erscheinen, aber es wird Ihnen wirklich helfen, Ihre Fähigkeiten zu verfeinern.
Ich denke, Das ist das beste Einführungsbuch. Übrigens hat Martin einen großartigen . Seine Arbeit wird Ihnen helfen, das Wissen über den Aufbau moderner Infrastruktur zur Speicherung und Verarbeitung großer Datenmengen zu systematisieren.
Für diejenigen, die lieber Videos ansehen, gibt es auf YouTube einen Kurs .
7. Daten-Pipelines

Daten-Pipelines sind unerlässlich für jeden Dateningenieur.
Die meiste Zeit erstellt ein Dateningenieur sogenannte Daten-Pipelines, das heißt, er entwickelt Prozesse zur Übertragung von Daten von einem Ort zum anderen. Dazu können Benutzerszenarien gehören, die an die API eines externen Dienstes senden oder SQL-Abfragen durchführen, Daten anreichern und sie in einem zentralen Speicher (Data Warehouse) oder in einem Speichersystem für unstrukturierte Daten (Data Lakes) ablegen.
Zusammenfassend: Die grundlegende Checkliste für Dateningenieure

Zusammenfassend lässt sich sagen, dass ein fundiertes Verständnis der folgenden Themen erforderlich ist:
- Informationssysteme;
- Softwareentwicklung (Agile, DevOps, Designtechniken, SOA);
- Verteilte Systeme und parallele Programmierung;
- Grundlagen von Datenbanken – Planung, Entwurf, Betrieb und Fehlersuche;
- Experimentdesign – A/B-Tests zur Validierung von Konzepten, zur Messung der Zuverlässigkeit und Leistung von Systemen sowie zur Entwicklung robuster Wege für die schnelle Bereitstellung effektiver Lösungen.
Dies sind nur einige Anforderungen, um Dateningenieur zu werden. Daher sollten Sie sich mit Datenmanagementsystemen, Informationssystemen, kontinuierlicher Lieferung/Bereitstellung/Integration, Programmiersprachen und anderen Informatikthemen auseinandersetzen (nicht in allen Fachbereichen).
Und schließlich, das Letzte, aber sehr Wichtige, das ich sagen möchte.
Der Weg zum Data Engineering ist nicht so einfach, wie er scheint. Er ist gnadenlos, frustrierend und Sie müssen darauf vorbereitet sein. Manchmal könnte es Sie dazu bringen, alles hinzuschmeißen. Aber es ist ein echter Arbeits- und Lernprozess.
Schmücken Sie das Ganze einfach nicht von Anfang an. Der Sinn dieser Reise liegt darin, so viel wie möglich zu lernen und bereit für neue Herausforderungen zu sein.
Hier ist ein großartiges Bild, auf das ich gestoßen bin, das diesen Punkt gut veranschaulicht:

Und ja, vergessen Sie nicht, Burnout zu vermeiden und sich auszuruhen. Das ist ebenfalls sehr wichtig. Viel Erfolg!
Wie fanden Sie den Artikel, Freunde? Wir laden Sie ein zu , das heute um 20:00 Uhr stattfindet. Während des Webinars werden wir erörtern, wie man ein effektives und skalierbares Datensystem für kleine Unternehmen oder Startups mit minimalen Kosten aufbaut. Als praktische Übung werden wir die Datenverarbeitungstools von Google Cloud kennenlernen. Bis bald!
Quelle: habr.com
