Wer sind Dateningenieure und wie wird man einer?

Hallo wieder! Der Titel des Artikels spricht für sich. Im Vorgriff auf den Kursbeginn Dateningenieur Wir empfehlen Ihnen, zu verstehen, wer Dateningenieure sind. Der Artikel enthält viele nützliche Links. Fröhliches Lesen.

Wer sind Dateningenieure und wie wird man einer?

Eine einfache Anleitung, wie Sie die Data-Engineering-Welle auffangen und sich nicht von ihr in den Abgrund ziehen lassen.

Es scheint, als ob heutzutage jeder Data Scientist werden möchte. Aber was ist mit Data Engineering? Im Wesentlichen handelt es sich hierbei um eine Art Hybrid aus einem Datenanalysten und einem Datenwissenschaftler; Ein Dateningenieur ist in der Regel für die Verwaltung von Arbeitsabläufen, Verarbeitungspipelines und ETL-Prozessen verantwortlich. Aufgrund der Bedeutung dieser Funktionen handelt es sich derzeit um einen weiteren beliebten Fachjargon, der aktiv an Bedeutung gewinnt.

Hohe Gehälter und eine große Nachfrage sind nur ein kleiner Teil dessen, was diesen Job äußerst attraktiv macht! Wenn Sie in die Reihen der Helden aufsteigen möchten, ist es nie zu spät, mit dem Lernen zu beginnen. In diesem Beitrag habe ich alle notwendigen Informationen zusammengestellt, um Ihnen bei Ihren ersten Schritten zu helfen.

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 keinen erschaffen. Er muss einen Ingenieur bitten, dies für ihn zu tun.

–Gordon Lindsay Glegg

Daher ist die Rolle eines Dateningenieurs von großer Bedeutung.

Wie der Name schon sagt, befasst sich Data Engineering mit Daten, nämlich deren Bereitstellung, Speicherung und Verarbeitung. Dementsprechend besteht die Hauptaufgabe von Ingenieuren darin, eine zuverlässige Infrastruktur für Daten bereitzustellen. Wenn wir uns die KI-Hierarchie der Bedürfnisse ansehen, nimmt das Data Engineering die ersten 2–3 Stufen ein: Erhebung, Bewegung und Speicherung, Datenaufbereitung.

Wer sind Dateningenieure und wie wird man einer?

Was macht ein Dateningenieur?

Mit dem Aufkommen von Big Data hat sich der Verantwortungsbereich dramatisch verändert. Während diese Experten früher große SQL-Abfragen schrieben und Daten mithilfe von Tools wie Informatica ETL, Pentaho ETL und Talend destillierten, sind die Anforderungen an Dateningenieure heute gestiegen.

Die meisten Unternehmen mit offenen Stellen für die Stelle als Data Engineer haben folgende Anforderungen:

  • Ausgezeichnete Kenntnisse in SQL und Python.
  • Erfahrung mit Cloud-Plattformen, insbesondere Amazon Web Services.
  • Kenntnisse in Java/Scala wünschenswert.
  • Gute Kenntnisse von SQL- und NoSQL-Datenbanken (Datenmodellierung, Data Warehousing).

Bedenken Sie, dass dies nur das Wesentliche ist. Aus dieser Liste kann man davon ausgehen, dass Data Engineers Spezialisten 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 von Informationen, deren Verarbeitung und Speicherung zu organisieren.

Die Liste der in diesem Fall verwendeten Tools kann unterschiedlich sein, alles hängt von der Menge dieser Daten, der Geschwindigkeit ihres Empfangs und ihrer Heterogenität ab. Die meisten Unternehmen befassen sich überhaupt nicht mit Big Data, daher können Sie als zentralisiertes Repository, ein sogenanntes Data Warehouse, eine SQL-Datenbank (PostgreSQL, MySQL usw.) mit einem kleinen Satz von Skripten verwenden, in die die Daten eingespeist werden das Lager.

IT-Giganten wie Google, Amazon, Facebook oder Dropbox haben höhere Anforderungen: Kenntnisse in Python, Java oder Scala.

  • Erfahrung mit Big Data: Hadoop, Spark, Kafka.
  • Kenntnisse über Algorithmen und Datenstrukturen.
  • Verständnis der Grundlagen verteilter Systeme.
  • Erfahrungen mit Datenvisualisierungstools wie Tableau oder ElasticSearch sind von Vorteil.

Das heißt, es gibt eine deutliche Verschiebung hin zu Big Data, und zwar bei der Verarbeitung unter hoher Belastung. Diese Unternehmen haben erhöhte Anforderungen an die Fehlertoleranz ihrer Systeme.

Dateningenieure vs. Datenwissenschaftler

Wer sind Dateningenieure und wie wird man einer?
Okay, das war ein einfacher und lustiger Vergleich (nichts Persönliches), aber in Wirklichkeit ist er viel komplizierter.

Zunächst sollten Sie wissen, dass die Abgrenzung der Rollen und Fähigkeiten eines Datenwissenschaftlers und eines Dateningenieurs sehr unklar ist. Das heißt, Sie können leicht verwirrt sein, welche Fähigkeiten erforderlich sind, um ein erfolgreicher Dateningenieur zu sein. Natürlich gibt es bestimmte Fähigkeiten, die sich bei beiden Rollen überschneiden. Es gibt aber auch eine Reihe diametral entgegengesetzter Fähigkeiten.

Datenwissenschaft ist ein ernstes Geschäft, aber wir bewegen uns in Richtung einer Welt der funktionalen Datenwissenschaft, in der Praktiker ihre eigenen Analysen durchführen können. Um Datenpipelines und integrierte Datenstrukturen zu ermöglichen, benötigen Sie Dateningenieure, keine Datenwissenschaftler.

Ist ein Dateningenieur gefragter als ein Datenwissenschaftler?

- Ja, denn bevor Sie Karottenkuchen backen können, müssen Sie zunächst Karotten ernten, schälen und einlagern!

Ein Dateningenieur versteht das Programmieren besser als jeder Datenwissenschaftler, aber wenn es um Statistiken geht, ist das Gegenteil der Fall.

Aber hier liegt der Vorteil eines Dateningenieurs:

Ohne ihn/sie tendiert der Wert des Prototypmodells, das meist aus einem Stück Code von schlechter Qualität in einer Python-Datei besteht, der von einem Datenwissenschaftler erhalten wurde und irgendwie zu einem Ergebnis führt, gegen Null.

Ohne einen Dateningenieur wird dieser Code niemals zu einem Projekt und kein Geschäftsproblem kann effektiv gelöst werden. Der Dateningenieur versucht, all dies in ein Produkt umzusetzen.

Grundlegende Informationen, die ein Dateningenieur kennen sollte

Wer sind Dateningenieure und wie wird man einer?

Wenn dieser Job also das Licht in Ihnen zum Vorschein bringt und Sie begeistert sind, können Sie ihn lernen, alle notwendigen Fähigkeiten beherrschen und ein echter Rockstar im Bereich Data Engineering werden. Und ja, Sie können dies auch ohne Programmierkenntnisse oder andere technische Kenntnisse schaffen. Es ist schwierig, aber möglich!

Was sind die ersten Schritte?

Sie sollten eine allgemeine Vorstellung davon haben, was was ist.

Unter Data Engineering versteht man zunächst einmal die Informatik. Genauer gesagt müssen Sie effiziente Algorithmen und Datenstrukturen verstehen. Zweitens ist es notwendig, die Prinzipien von Datenbanken und die ihnen zugrunde liegenden Strukturen zu verstehen, da Dateningenieure mit Daten arbeiten.

Herkömmliche B-Tree-SQL-Datenbanken basieren beispielsweise auf der B-Tree-Datenstruktur sowie in modernen verteilten Repositories auf LSM-Tree und anderen Modifikationen von Hash-Tabellen.

*Diese Schritte basieren auf einem großartigen Artikel Adilya Khashtamova. Wenn Sie also Russisch können, unterstützen Sie diesen Autor und lesen Sie sein Beitrag.

1. Algorithmen und Datenstrukturen

Die Verwendung der richtigen Datenstruktur kann die Leistung eines Algorithmus erheblich verbessern. Im Idealfall sollten wir alle in unseren Schulen etwas über Datenstrukturen und Algorithmen lernen, aber das wird selten behandelt. Auf jeden Fall ist es nie zu spät, sich kennenzulernen.
Hier sind meine liebsten kostenlosen Kurse zum Erlernen von Datenstrukturen und Algorithmen:

Vergessen Sie außerdem nicht Thomas Cormans klassisches Werk über Algorithmen – Einführung in Algorithmen. Dies ist die perfekte Referenz, wenn Sie Ihr Gedächtnis auffrischen müssen.

  • Um Ihre Fähigkeiten zu verbessern, verwenden Sie Leetcode.

Sie können auch mit tollen Videos der Carnegie Mellon University auf Youtube in die Welt der Datenbanken eintauchen:

2. Lernen Sie SQL

Unser ganzes Leben besteht aus Daten. Und um diese Daten aus der Datenbank zu extrahieren, müssen Sie mit ihnen dieselbe Sprache „sprechen“.

SQL (Structured Query Language) ist die Kommunikationssprache im Datenbereich. Unabhängig davon, was jemand sagt, hat SQL gelebt, ist am Leben und wird noch sehr lange leben.

Wenn Sie schon lange in der Entwicklung tätig sind, ist Ihnen wahrscheinlich aufgefallen, dass regelmäßig Gerüchte über den bevorstehenden Tod von SQL auftauchen. Die Sprache wurde in den frühen 70er Jahren entwickelt und erfreut sich immer noch großer Beliebtheit bei Analysten, Entwicklern und einfach Enthusiasten.
Ohne SQL-Kenntnisse gibt es im Data Engineering nichts zu tun, da Sie zwangsläufig Abfragen erstellen müssen, um Daten abzurufen. Alle modernen Big Data Warehouses unterstützen SQL:

  • Amazon RedShift
  • HP Vertica
  • Oracle
  • SQL Server

... und viele andere.

Um eine große Datenschicht zu analysieren, die in verteilten Systemen wie HDFS gespeichert ist, wurden SQL-Engines erfunden: Apache Hive, Impala usw. Sehen Sie, es führt nirgendwo hin.

Wie lerne ich SQL? Machen Sie es einfach in der Praxis.

Um dies zu tun, würde ich empfehlen, sich ein hervorragendes Tutorial anzusehen, das übrigens kostenlos ist von Modusanalyse.

  1. Fortgeschrittenes SQL
  2. Daten in SQL verbinden

Das Besondere an diesen Kursen ist, dass sie über eine interaktive Umgebung verfügen, in der Sie SQL-Abfragen direkt in Ihrem Browser schreiben und ausführen können. Ressource Modernes SQL wird nicht überflüssig sein. Und Sie können dieses Wissen anwenden Leetcode-Aufgaben im Abschnitt Datenbanken.

3. Programmierung in Python und Java/Scala

Warum man die Programmiersprache Python lernen sollte, habe ich bereits im Artikel geschrieben Python vs. R. Auswahl des besten Tools für KI, ML und Data Science. Was Java und Scala betrifft, sind die meisten Tools zum Speichern und Verarbeiten 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 es Ihnen, Probleme der parallelen Datenverarbeitung effektiv zu lösen. Python kann sich leider nicht mit Geschwindigkeit und Parallelverarbeitung rühmen. Generell sind Kenntnisse mehrerer Sprachen und Programmierparadigmen gut für die Breite der Problemlösungsansätze.

Um in die Scala-Sprache einzutauchen, können Sie lesen Programmierung in Scala vom Autor der Sprache. Twitter hat auch einen guten Einführungsleitfaden veröffentlicht – Scala-Schule.

Was Python betrifft, glaube ich Fließendes Python bestes Buch für mittleres Niveau.

4. Tools für die Arbeit mit Big Data

Hier ist eine Liste der beliebtesten Tools in der Welt der Big Data:

  • Apache Funken
  • Apache Kafka
  • Apache Hadoop (HDFS, HBase, Hive)
  • Apache Kassandra

Weitere Informationen zum Aufbau großer Datenblöcke finden Sie in diesem erstaunlichen Artikel interaktive Umgebung. Die beliebtesten Tools sind Spark und Kafka. Es lohnt sich auf jeden Fall, sie zu studieren. Es ist ratsam, ihre Funktionsweise von innen heraus zu verstehen. Jay Kreps (Co-Autor von Kafka) veröffentlichte 2013 ein monumentales Werk Das Protokoll: Was jeder Softwareentwickler über Abstraktion der Echtzeit-Datenaggregation wissen sollteÜbrigens wurden die Hauptideen dieses Talmuds zur Schaffung von Apache Kafka verwendet.

5. Cloud-Plattformen

Wer sind Dateningenieure und wie wird man einer?

Kenntnisse über mindestens eine Cloud-Plattform gehören zu den Grundvoraussetzungen für Bewerber für die Stelle als Data Engineer. Arbeitgeber bevorzugen Amazon Web Services, wobei die Cloud-Plattform von Google an zweiter Stelle steht und Microsoft Azure die ersten drei Plätze vervollständigt.

Sie müssen über gute Kenntnisse in Amazon EC2, AWS Lambda, Amazon S3, DynamoDB verfügen.

6. Verteilte Systeme

Die Arbeit mit Big Data setzt das Vorhandensein von Clustern unabhängig voneinander arbeitender Computer voraus, deren Kommunikation über ein Netzwerk erfolgt. Je größer der Cluster, desto größer ist die Wahrscheinlichkeit eines Ausfalls seiner Mitgliedsknoten. Um ein großartiger Datenwissenschaftler zu werden, müssen Sie die Probleme und vorhandenen Lösungen für verteilte Systeme verstehen. Dieses Gebiet ist alt und komplex.

Andrew Tanenbaum gilt als Pionier auf diesem Gebiet. Wer keine Angst vor Theorie hat, dem empfehle ich sein Buch "Verteilte Systeme", es mag für Anfänger entmutigend erscheinen, aber es wird Ihnen wirklich dabei helfen, Ihre Fähigkeiten zu verbessern.

Ich glaube Entwerfen datenintensiver Anwendungen von Martin Kleppmann bestes Einführungsbuch. Übrigens, Martin hat ein wunderbares Blog. Seine Arbeit wird dazu beitragen, das Wissen über den Aufbau einer modernen Infrastruktur zur Speicherung und Verarbeitung großer Datenmengen zu systematisieren.
Für diejenigen, die gerne Videos schauen, gibt es einen Kurs auf Youtube Verteilte Computersysteme.

7. Datenpipelines

Wer sind Dateningenieure und wie wird man einer?

Datenpipelines sind etwas, ohne das Sie als Dateningenieur nicht leben können.

Meistens baut ein Dateningenieur eine sogenannte Datenpipeline auf, das heißt, er erstellt einen Prozess zur Übermittlung von Daten von einem Ort an einen anderen. Dabei kann es sich um benutzerdefinierte Skripts handeln, die an die API eines externen Dienstes gehen oder eine SQL-Abfrage durchführen, die Daten erweitern und sie in einem zentralen Speicher (Data Warehouse) oder einem unstrukturierten Datenspeicher (Data Lakes) ablegen.

Zusammenfassend: die grundlegende Checkliste für einen Dateningenieur

Wer sind Dateningenieure und wie wird man einer?

Zusammenfassend ist ein gutes Verständnis der folgenden Punkte erforderlich:

  • Informationssysteme;
  • Softwareentwicklung (Agile, DevOps, Designtechniken, SOA);
  • Verteilte Systeme und parallele Programmierung;
  • Datenbankgrundlagen – Planung, Design, Betrieb und Fehlerbehebung;
  • Design of Experiments – A/B-Tests, um Konzepte zu testen, Zuverlässigkeit und Systemleistung zu bestimmen und zuverlässige Wege zu entwickeln, um schnell gute Lösungen zu liefern.

Dies sind nur einige der Voraussetzungen, um Dateningenieur zu werden. Lernen und verstehen Sie daher Datensysteme, Informationssysteme, kontinuierliche Bereitstellung/Bereitstellung/Integration, Programmiersprachen und andere Informatikthemen (nicht alle Fachgebiete).

Und zum Schluss noch das letzte, aber sehr wichtige, was ich sagen möchte.

Der Weg zum Data Engineering ist nicht so einfach, wie es scheint. Er vergibt nicht, er frustriert, und darauf müssen Sie vorbereitet sein. Einige Momente auf dieser Reise könnten Sie dazu bringen, aufzugeben. Aber das ist echte Arbeit und ein Lernprozess.

Beschönigen Sie es einfach nicht von Anfang an. Der Sinn des Reisens besteht darin, so viel wie möglich zu lernen und für neue Herausforderungen bereit zu sein.
Hier ist ein tolles Bild, das diesen Punkt gut verdeutlicht:

Wer sind Dateningenieure und wie wird man einer?

Und ja, denken Sie daran, Burnout und Ruhe zu vermeiden. Das ist auch sehr wichtig. Viel Glück!

Was haltet ihr von dem Artikel, Freunde? Wir laden Sie dazu ein kostenloses Webinar, die heute um 20.00 Uhr stattfinden wird. Während des Webinars besprechen wir, wie man mit minimalen Kosten ein effektives und skalierbares Datenverarbeitungssystem für ein kleines Unternehmen oder Startup aufbaut. Als Übung machen wir uns mit den Datenverarbeitungstools von Google Cloud vertraut. Auf Wiedersehen!

Source: habr.com

Kommentar hinzufügen