Der Einstieg ins Data Engineering kann angesichts der vielen verschiedenen Tools und Technologien, die auf dem Markt verfügbar sind, überwältigend sein.
Häufig werden Fragen gestellt wie: „Soll ich zuerst Databricks oder Snowflake lernen? Sollte ich mich auf Airflow oder Hadoop konzentrieren?“
In diesem Blog führe ich Sie von der Grundstufe bis zur fortgeschrittenen Stufe aller Ressourcen und Fähigkeiten, die Sie benötigen, um ein Dateningenieur zu werden.
Ich habe die Fähigkeiten in 3 verschiedene unterteilt:
- Für Personen, die völlig neu in diesem Bereich sind und ihre Karriere von anderen Bereichen in die Datentechnik verlagern wollen.
- Für Personen, die einige Grundlagen kennen und wissen möchten, wie sie vorankommen können.
- Für Personen, die bereits über einige Erfahrung verfügen und sich beruflich weiterentwickeln möchten.
Abschnitt 1- Unbekanntes erforschen
Möchten Sie sich beruflich auf Data Engineering verlegen, fühlen sich aber von der Anzahl der verfügbaren Tools und Technologien überfordert? Sie sind nicht allein. Viele Menschen befinden sich in der gleichen Situation, egal ob sie in einem nichttechnischen Beruf arbeiten, Student oder Berufsanfänger sind oder in einem anderen technischen Beruf tätig sind und sich verändern möchten.
Wenn Sie in eine dieser Kategorien fallen, müssen Sie als Erstes Ihre Informatikgrundlagen beherrschen.
Wenn Sie völlig neu in diesem Bereich sind, müssen Sie die grundlegenden Konzepte und die Terminologie der Informatik verstehen, bevor Sie sich mit Data Engineering beschäftigen.
Eine großartige Ressource hierfür ist die auf YouTube verfügbare Serie von Harvard’s CS50.
Wenn Sie sich diese Videoreihe ansehen, erhalten Sie ein grundlegendes Verständnis der Informatik, ohne dass Sie einen Abschluss brauchen oder Monate damit verbringen müssen, die Grundlagen zu lernen.
Sobald Sie die Grundlagen der Informatik beherrschen, können Sie zum nächsten Schritt übergehen: dem Erlernen der für Data Engineering erforderlichen Fähigkeiten.
Es gibt drei grundlegende Fähigkeiten, die von Dateningenieuren verlangt werden:
- Programmiersprachen: Als Dateningenieur werden Sie viele Umwandlungsaufträge schreiben, Skripte bereitstellen, sie validieren und testen, und dafür müssen Sie eine Programmiersprache beherrschen. Die drei beliebtesten Sprachen sind Java, Scala und Python. Wenn Sie Anfänger sind, ist Python eine gute Wahl, da es leicht zu erlernen und zu verstehen ist.
- SQL: Die strukturierte Abfragesprache ist der König der Datenindustrie. Egal, ob Sie als Datenanalytiker, Dateningenieur oder Datenwissenschaftler arbeiten, Sie werden häufig mit SQL arbeiten. SQL ist die Art und Weise, wie Sie mit einer relationalen Datenbank kommunizieren, und es ist wichtig, dass Sie wissen, wie Sie damit Daten auswählen, einfügen, aktualisieren und löschen können.
- Linux-Befehle: Die meisten datentechnischen Aufgaben werden auf Remote-Rechnern oder Cloud-Plattformen ausgeführt, und diese Rechner laufen in der Regel unter Linux-Betriebssystemen. Es ist wichtig, dass Sie wissen, wie Sie mit diesen Rechnern arbeiten und die grundlegenden Linux-Befehle verstehen.
Abschnitt 2: Aufbau einer soliden Grundlage
In dieser Phase sollte Ihr Ziel darin bestehen, die für die Datentechnik erforderlichen Mindestfähigkeiten zu erlernen und zu erfahren, wie Sie Ihre Karriere als Datentechniker starten können.
Sie müssen keine Zeit damit verbringen, alle auf dem Markt erhältlichen Fähigkeiten oder Tools zu erlernen; Sie müssen sich nur auf die sehr gefragten und wichtigen Fähigkeiten konzentrieren, die in dieser Phase für Data Engineering erforderlich sind.
In dieser Phase konzentrieren wir uns auf den Aufbau einer soliden Grundlage für Data Engineering.
Die erste grundlegende Fähigkeit, auf die Sie sich konzentrieren müssen, ist das Verständnis von Data Warehouses.
Dies besteht aus zwei Teilen:
- Lernen über die Grundlagen von Data Warehouses
- Kenntnisse über Tools wie Snowflake oder BigQuery.
Zu den Data-Warehouse-Grundlagen gehören im Allgemeinen das Verständnis von OLTP, Dimensionstabellen, Extrahieren, Transformieren, Laden und Datenmodellierung, wie z. B. das Verständnis von Fakten- und Dimensionstabellen.
Wenn Sie lieber aus einem Buch lernen möchten, können Sie „The Data Warehouse Toolkit“ von Ralph Kimball lesen.
Dies ist eines der besten Bücher, die über Data Warehouses geschrieben wurden.
Sobald Sie die Grundlagen von Data Warehouses gelernt haben, können Sie das Gelernte auf ein bestimmtes Tool anwenden.
Es gibt viele verschiedene Data Warehouses auf dem Markt, wie z. B. Snowflake, BigQuery und Redshift.
Ich empfehle, Snowflake zu erlernen, da die Nachfrage nach diesem Tool von Tag zu Tag steigt.
Zusätzlich zum Verständnis der Datenspeicherung müssen Sie auch die Datenverarbeitungs-Frameworks verstehen.
Es gibt zwei Hauptframeworks:
- Batch-Verarbeitung: Verarbeitung von Daten in Stapeln, z. B. Verarbeitung der Daten des letzten Monats ein- oder zweimal am Tag.
- Verarbeitung in Echtzeit: Verarbeitung von Daten in Echtzeit, sobald sie eingehen.
Für die Stapelverarbeitung verwenden die meisten Unternehmen Apache Spark. Dabei handelt es sich um ein Open-Source-Framework für die Datenverarbeitung.
Sie können mit dem Erlernen der Apache Spark-Grundlagen beginnen und dann ein Tool erlernen, das die Apache Spark-Umgebung unterstützt, wie z. B. Databricks, AWS EMR, GCP Data Proc oder jedes andere Tool, das Sie auf dem Markt finden.
Mein Vorschlag ist, mit Spark auf Databrick zu üben und PySpark (Python) als Sprache zu verwenden.
Für die Echtzeitverarbeitung gibt es Frameworks und Tools wie Apache Kafka, Apache Flink und Apache Storm. Sie können sich eines aussuchen und es kennenlernen.
Die Art und Weise, wie wir lernen, besteht darin, dass wir verschiedene Probleme in kleinere Teile zerlegen.
Zuerst konzentrieren wir uns auf das Erlernen von Grundlagen und dann lernen wir ein auf dem Markt sehr gefragtes Tool, auf das Sie Ihr Grundlagenwissen anwenden können.
Die dritte Fähigkeit, die Sie als Dateningenieur beherrschen müssen, ist das Lernen über Cloud-Plattformen.
Es stehen drei Hauptoptionen zur Auswahl:
- Microsoft Azure
- Amazon Webdienste (AWS)
- Google Cloud-Plattform (GCP)
Ich habe meine Karriere mit AWS begonnen, aber Sie können jede beliebige Cloud-Plattform wählen, denn wenn Sie erst einmal eine erlernt haben, wird es einfacher sein, die anderen zu beherrschen. Die grundlegenden Konzepte der Cloud-Plattformen sind ähnlich, mit nur leichten Unterschieden in der Benutzeroberfläche, den Kosten und anderen Faktoren.
In der Datentechnik müssen Sie Datenpipelines erstellen, um Ihre Daten zu verarbeiten. Datenpipelines, auch ETL-Pipelines genannt, werden verwendet, um Daten aus einer relationalen Datenbank zu extrahieren, Transformationen und Geschäftslogik anzuwenden und die Daten dann in einen Zielspeicher zu laden. Um diese Vorgänge zu verwalten, müssen Sie sich mit Workflow-Management-Tools vertraut machen.
Eine beliebte Wahl ist Apache Airflow.
Airflow ist ein Open-Source-Workflow-Management-Tool, mit dem Sie Datenpipelines erstellen, planen und überwachen können. Es ist in der Branche weit verbreitet und hat eine große Benutzergemeinschaft. Wenn Sie Airflow erlernen, können Sie Datenpipelines erstellen und den ETL-Prozess automatisieren, was Ihre Arbeit als Data Engineer erheblich erleichtert.
Abschnitt 3: Modern Data Stack und fortgeschrittene Fähigkeiten
Als Data Engineer gibt es so viele verschiedene Tools und Ansätze auf dem Markt.
Es ist wichtig, auf dem Laufenden zu bleiben und sich mit allen vertraut zu machen. Darüber hinaus müssen Sie lernen, wie Sie die gesamte Dateninfrastruktur entwerfen, wie Sie das System verwalten und skalieren und wie Sie fortgeschrittene Fähigkeiten beherrschen.
In diesem Abschnitt werden wir uns auf das Erlernen fortgeschrittener Fähigkeiten konzentrieren, die für Data Engineering erforderlich sind.
Als Erstes empfehle ich, sich mit dem Modern Data Stack (MDS) zu beschäftigen.
Es gibt eine Liste von Tools, über die Sie mehr erfahren und deren Hauptanwendungsfälle verstehen können.
Ein Tool, das ich sehr empfehle, ist DBT (Data Build Tool), da es von vielen Unternehmen eingesetzt wird und auf dem Markt an Popularität gewinnt.
Es ist jedoch wichtig, sich nicht an zu viele Tools zu binden, sondern nur den Hauptanwendungsfall eines jeden Tools zu verstehen.
Ein weiterer wichtiger Aspekt ist das Verständnis von Sicherheit, Netzwerken, Bereitstellung und anderen verwandten Themen.
Sie können auch etwas über Docker oder Kubernetes lernen, die beim Einsatz von Datenpipelines in der Produktion nützlich sind.
Ich empfehle die Lektüre der Bücher:
- Entwurf datenintensiver Anwendungen
— Fundamentals of Data Engineering
Darüber hinaus können Sie durch die Lektüre von Kundenfallstudien zu Plattformen wie AWS und GCP ein besseres Verständnis für die Verwendung dieser Tools in realen Szenarien erlangen.
Ich habe ein ausführliches Video zu diesem Thema mit einem kompletten Dokument über Kurse und Projekte erstellt:
Erfahren Sie hier mehr über Lösungen im Bereich Data Engineering oder besuchen Sie eines unserer kostenlosen Webinare.