Und wieder hallo! Der Titel des Artikels spricht für sich. Vor dem Start des Kurses laden wir dazu ein, herauszufinden, wer genau die Dateningenieure sind. In dem Artikel gibt es viele nützliche Links. Viel Spaß beim Lesen.

Ein einfaches Handbuch, wie man die Welle des Data Engineering erfasst und sich nicht in die Tiefe ziehen lässt.
Es entsteht der Eindruck, dass heutzutage jeder Datenwissenschaftler (Data Scientist) werden möchte. Aber wie steht es um das Data Engineering? Im Grunde genommen ist es eine Art Hybrid aus Datenanalytiker und Datenwissenschaftler; der Dateningenieur ist in der Regel für die Verwaltung von Arbeitsabläufen, Datenpipelines und ETL-Prozessen verantwortlich.Angesichts der Wichtigkeit dieser Funktionen ist es derzeit ein weiteres populäres Fachjargon, das an Fahrt gewinnt.
Ein hohes Gehalt und enorme Nachfrage sind nur ein kleiner Teil dessen, was diesen Job äußerst attraktiv macht! Wenn Sie Teil der Helden werden möchten, ist es nie zu spät, um zu lernen. In diesem Beitrag habe ich alle notwendigen Informationen zusammengestellt, um Ihnen zu helfen, Ihre ersten Schritte zu machen.
Also, fangen wir an!
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
Somit ist die Rolle eines Dateningenieurs durchaus erheblich.
Der Name legt nahe, dass Datenengineering mit Daten zu tun hat, insbesondere mit deren Lieferung, Speicherung und Verarbeitung. Daher besteht die Hauptaufgabe der Ingenieure darin, eine zuverlässige Infrastruktur für Daten bereitzustellen. Wenn wir uns die Hierarchie der Bedürfnisse von KI ansehen, belegen die Dateningenieure die ersten 2–3 Stufen: Sammlung, Bewegung und Speicherung, Datenaufbereitung.

Womit beschäftigt sich ein Dateningenieur?
Mit dem Aufkommen von Big Data haben sich die Verantwortlichkeiten drastisch verändert. Wenn diese Experten früher große SQL-Abfragen schrieben und Daten mit solchen Tools wie Informatica ETL, Pentaho ETL oder Talend übertrugen, sind die Anforderungen an Dateningenieure mittlerweile gestiegen.
Die meisten Unternehmen mit offenen Stellen für Dateningenieure stellen die folgenden Anforderungen:
- Ausgezeichnete Kenntnisse in SQL und Python.
- Erfahrung mit Cloud-Plattformen, insbesondere Amazon Web Services.
- Bevorzugt sind Kenntnisse in Java/Scala.
- Gutes Verständnis von SQL- und NoSQL-Datenbanken (Datenmodellierung, Datenspeicherung).
Halten Sie im Hinterkopf, dass dies nur das Nötigste ist. Aus dieser Liste kann man schließen, dass Dateningenieure Fachleute im Bereich der 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 von Informationen, deren Verarbeitung und Speicherung zu organisieren.
Die Liste der in diesem Fall verwendeten Werkzeuge kann unterschiedlich sein, alles hängt von der Menge dieser Daten, der Geschwindigkeit ihrer Lieferung und ihrer Heterogenität ab. Die meisten Unternehmen haben im Allgemeinen keine Berührung mit großen Daten, daher kann als zentrales Speichersystem, dem sogenannten Data Warehouse, eine SQL-Datenbank (PostgreSQL, MySQL usw.) mit einer kleinen Anzahl von Skripten verwendet werden, die Daten ins Speicher leiten.
IT-Giganten wie Google, Amazon, Facebook oder Dropbox stellen höhere Anforderungen: Kenntnisse in Python, Java oder Scala.
- Erfahrung mit großen Daten: Hadoop, Spark, Kafka.
- Kenntnis von Algorithmen und Datenstrukturen.
- Verständnis der Grundlagen verteilter Systeme.
- Erfahrung mit Datenvisualisierungswerkzeugen wie Tableau oder ElasticSearch ist ein großer Vorteil.
Das heißt, es gibt eine klare Verschiebung hin zu großen Daten, insbesondere in deren Verarbeitung unter hoher Last. Diese Unternehmen haben erhöhte Anforderungen an die Ausfallsicherheit des Systems.
Dateningenieure vs. Data Scientists

Okay, das war ein einfaches und unterhaltsames Vergleich (nichts Persönliches), aber in Wirklichkeit ist alles viel komplizierter.
Zunächst sollten Sie wissen, dass es viele Unklarheiten bei der Abgrenzung der Rollen und Fähigkeiten von Data Scientists und Dateningenieuren gibt. Das heißt, Sie könnten leicht verwirrt sein darüber, welche Fähigkeiten für einen erfolgreichen Dateningenieur erforderlich sind. Natürlich gibt es bestimmte Fähigkeiten, die auf beide Rollen zutreffen. Aber es gibt auch eine ganze Reihe von diametral entgegengesetzten Fähigkeiten.
Data Science ist ein ernstes Thema, aber wir bewegen uns hin zu einer Welt mit funktionaler Data Science, in der Praktiker in der Lage sind, ihre eigene Analyse durchzuführen. Um Datenpipelines und integrierte Datenstrukturen zu nutzen, brauchen Sie Dateningenieure, keine Wissenschaftler.
Ist ein Dateningenieur gefragter als ein Data Scientist?
— Ja, denn bevor Sie einen Karottenkuchen backen können, müssen Sie zunächst Karotten sammeln, sie schälen und aufbewahren!
Ein Dateningenieur versteht Programmierung besser als jeder Datenwissenschaftler, aber wenn es um Statistik geht, ist alles genau umgekehrt.
Aber hier ist der Vorteil eines Dateningenieurs:
Ohne ihn/sie strebt der Wert eines Prototypmodells, das meist aus einem Codefragment von minderwertiger Qualität in einer Python-Datei besteht, das von einem Datenwissenschaftler erstellt wurde und irgendwie Ergebnisse liefert, gegen Null.
Ohne den Dateningenieur wird dieser Code niemals ein Projekt, und kein Geschäftsproblem wird effizient gelöst. Der Dateningenieur versucht, all dies in ein Produkt zu verwandeln.
Grundlagen, die ein Dateningenieur wissen sollte

Wenn diese Arbeit also in Ihnen ein Licht entfacht und Sie voller Enthusiasmus sind – Sie können das lernen, alle notwendigen Fähigkeiten erwerben und ein wahrer Rockstar im Bereich der Datenentwicklung werden. Und ja, Sie können dies sogar ohne Programmierkenntnisse oder technisches Wissen erreichen. Es ist anspruchsvoll, aber möglich!
Was sind die ersten Schritte?
Sie sollten eine allgemeine Vorstellung davon haben, was was ist.
Zunächst einmal bezieht sich Data Engineering auf Informatik. Konkret sollten Sie effektive Algorithmen und Datenstrukturen verstehen. Zweitens, da Dateningenieure mit Daten arbeiten, ist es notwendig, die Funktionsweisen von Datenbanken und die zugrunde liegenden Strukturen zu verstehen.
Zum Beispiel basieren gängige B-Tree SQL-Datenbanken auf der Datenstruktur B-Tree sowie in modernen verteilten Repositories, LSM-Tree und anderen Modifikationen von Hash-Tabellen.
* Diese Schritte basieren auf einem bemerkenswerten Artikel . Wenn Sie also Russisch verstehen, unterstützen Sie diesen Autor und lesen Sie .
1. Algorithmen und Datenstrukturen
Die Verwendung der richtigen Datenstruktur kann die Leistung des Algorithmus erheblich verbessern. Idealerweise sollten wir alle in unseren Schulen Datenstrukturen und Algorithmen studieren, aber das wird selten thematisiert. Auf jeden Fall ist es nie zu spät, sich zu informieren.
Hier sind also meine Lieblingsressourcen für kostenlose Kurse zu Datenstrukturen und Algorithmen:
Außerdem vergessen Sie nicht die klassische Arbeit über die Algorithmen von Thomas Cormen – . Das ist das perfekte 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 der Datenbank abzurufen, müssen Sie mit ihnen in einer gemeinsamen Sprache „sprechen“.
SQL (Structured Query Language — Sprache für strukturierte Abfragen) ist die Kommunikationssprache im Bereich der Daten. Egal, was jemand sagt, SQL hat gelebt, lebt und wird noch lange leben.
Wenn Sie lange in der Entwicklung tätig sind, haben Sie wahrscheinlich bemerkt, dass die Gerüchte über das baldige Ende von SQL periodisch auftauchen. Die Sprache wurde in den frühen 70er Jahren entwickelt und ist bis heute bei Analysten, Entwicklern und einfach nur Enthusiasten äußerst beliebt.
Ohne SQL-Kenntnisse kann man im Datenengineering nichts anfangen, da Sie unweigerlich Abfragen zur Datenabfrage erstellen müssen. Alle modernen Data-Warehouses 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 erfunden: Apache Hive, Impala usw. Sehen Sie, es wird nirgends hingehen.
Wie lernt man SQL? Einfach machen Sie es in der Praxis.
Dafür würde ich empfehlen, sich mit einem großartigen Tutorial vertraut zu machen, das übrigens kostenlos ist, von .
Das Besondere an diesen Kursen ist die interaktive Umgebung, in der Sie SQL-Abfragen direkt im Browser schreiben und ausführen können. Die Ressource wird 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 . Was Java und Scala betrifft, die meisten Werkzeuge zum Speichern und Verarbeiten von riesigen Datenmengen sind 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 Werkzeuge funktionieren, müssen Sie die Sprachen kennen, in denen sie geschrieben sind. Der funktionale Ansatz von Scala ermöglicht es, Aufgaben der parallelen Datenverarbeitung effizient zu lösen. Python kann leider nicht mit der Geschwindigkeit und der parallelen Verarbeitung konkurrieren. Insgesamt hat das Wissen um mehrere Sprachen und Programmierparadigmen einen positiven Einfluss auf die Vielfalt der Lösungsansätze für Probleme.
Um in die Sprache Scala einzutauchen, können Sie von dem Schöpfer der Sprache lesen. Außerdem hat Twitter ein gutes Einführungs-Handbuch veröffentlicht — .
Was Python betrifft, ich halte für das beste Buch auf mittlerem Niveau.
4. Werkzeuge für Big Data
Hier ist eine Liste der beliebtesten Werkzeuge in der Welt der Big Data:
- Apache Spark
- Apache Kafka
- Apache Hadoop (HDFS, HBase, Hive)
- Apache Cassandra
Mehr Informationen über den Aufbau großer Datenblöcke finden Sie in dieser erstaunlichen . Die beliebtesten Werkzeuge sind Spark und Kafka. Es lohnt sich auf jeden Fall, sie zu lernen und vorzugsweise zu verstehen, wie sie intern funktionieren. Jay Kreps (Mitbegründer von Kafka) veröffentlichte 2013 ein monumentales Werk, , übrigens wurden die grundlegenden Ideen aus diesem Talmud zur Schaffung von Apache Kafka verwendet.
- Eine Einführung in Hadoop kann folgendes sein: .
- Das umfassendste Handbuch zu Apache Spark für mich ist — .
5. Cloud-Plattformen

Kenntnisse in mindestens einer Cloud-Plattform stehen auf der Liste der grundlegenden Anforderungen an Bewerber für die Position eines Data Engineers. Arbeitgeber bevorzugen Amazon Web Services, gefolgt von Google Cloud und Microsoft Azure als Dritten.
Sie sollten sich gut in Amazon EC2, AWS Lambda, Amazon S3, DynamoDB auskennen.
6. Verteilte Systeme
Die Arbeit mit Big Data setzt Cluster von unabhängig arbeitenden Computern voraus, die über ein Netzwerk verbunden sind. Je größer das Cluster, desto höher ist die Wahrscheinlichkeit des Ausfalls seiner Mitglieder. Um ein großartiger Experte im Bereich Daten zu werden, müssen Sie sich mit den Problemen und bestehenden Lösungen für verteilte Systeme auseinandersetzen. Dieses Feld ist alt und komplex.
Andrew Tanenbaum gilt als Pionier auf diesem Gebiet. Für diejenigen, die keine Angst vor Theorie haben, empfehle ich sein Buch , für Anfänger mag es komplex erscheinen, aber es wird Ihnen wirklich helfen, Ihre Fähigkeiten zu verfeinern.
Ich halte für das beste Einführungsbuch. Übrigens hat Martin einen großartigen . Seine Arbeit hilft dabei, das Wissen über den Aufbau moderner Infrastrukturen zur Speicherung und Verarbeitung großer Datenmengen zu systematisieren.
Für diejenigen, die gerne Videos schauen, gibt es auf Youtube einen Kurs .
7. Datenpipeline

Datenpipelines sind etwas, auf das Sie als Dateningenieur nicht verzichten können.
Der Großteil der Zeit baut ein Dateningenieur die sogenannte Datenpipeline, das heißt, er erstellt einen Prozess zur Übertragung von Daten von einem Ort zum anderen. Das können Benutzerszenarien sein, die an eine API eines externen Dienstes gesendet werden, oder SQL-Abfragen, die Daten ergänzen und in einem zentralen Speicher (Data Warehouse) oder in einem unstrukturierten Datenspeicher (Datenlake) ablegen.
Zusammenfassend: Die Hauptcheckliste eines Dateningenieurs

Zusammenfassend lässt sich sagen, dass ein gutes Verständnis der folgenden Punkte erforderlich ist:
- Informationssysteme;
- Softwareentwicklung (Agile, DevOps, Entwurfstechniken, SOA);
- Verteilte Systeme und parallele Programmierung;
- Grundlagen der Datenbanken – Planung, Entwurf, Betrieb und Fehlersuche;
- Experimente entwerfen – A/B-Tests zur Überprüfung von Konzepten, zur Bewertung der Zuverlässigkeit, der Leistung von Systemen sowie zur Entwicklung robuster Wege, um gute Lösungen schnell bereitzustellen.
Dies sind nur einige Anforderungen, um Dateningenieur zu werden, daher sollten Sie Datenmanagementsysteme, Informationssysteme, Continuous Delivery/Deployment/Integration, Programmiersprachen und andere Informatikthemen (nicht in allen Fachgebieten) studieren und verstehen.
Und schließlich möchte ich etwas Letztes, aber sehr Wichtiges sagen.
Der Weg zur Data Engineering ist nicht so einfach, wie es scheint. Er verzeiht nicht, frustriert und man muss darauf vorbereitet sein. Manche Momente auf dieser Reise könnten dazu führen, dass Sie alles aufgeben möchten. Aber es ist echte Arbeit und ein Lernprozess.
Schmücken Sie es einfach nicht von Anfang an. Der ganze Sinn der 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 Moment gut veranschaulicht:

Und ja, vergessen Sie nicht, Burnout zu vermeiden und sich auszuruhen. Das ist auch sehr wichtig. Viel Glück!
Wie gefällt Ihnen der Artikel, Freunde? Wir laden Sie ein zu , das heute um 20:00 Uhr stattfindet. Im Rahmen des Webinars werden wir besprechen, wie man ein effektives und skalierbares Datensystem für ein kleines Unternehmen oder Start-up mit minimalen Kosten aufbaut. In der Praxis werden wir die Google Cloud-Datenverarbeitungs-Tools kennenlernen. Bis später!
Quelle: habr.com
