Hallo nochmal! Der Titel des Artikels spricht über sich. Im Vorgriff auf den Beginn des Kurses
„Data Engineer“ empfehlen
wir , herauszufinden, wer die Data Engineers sind. Der Artikel enthält viele nützliche Links. Gute Lektüre.
Eine einfache Anleitung, wie Sie die Data Engineering-Welle fangen und verhindern können, dass sie Sie in den Abgrund zieht.Man hat den Eindruck, dass heutzutage jeder Data Scientist werden möchte. Aber was ist mit Data Engineering?
Im Wesentlichen ist es eine Art Hybrid aus einem Datenanalysten und einem Datenwissenschaftler. Ein Dateningenieur ist normalerweise für die Verwaltung von Workflows, die Verarbeitung von Pipelines und ETL-Prozessen verantwortlich . Aufgrund der Bedeutung dieser Funktionen ist dies derzeit eine weitere beliebte Fachsprache, die aktiv an Dynamik gewinnt.
Hohe Gehälter und eine große Nachfrage sind nur ein kleiner Teil dessen, was diesen Job äußerst attraktiv macht! 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 gesammelt, um Ihnen bei den 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 nicht erschaffen. Er muss den Ingenieur bitten, das für ihn zu tun. “
–Gordon Lindsay Glegg
Daher ist die Rolle eines Dateningenieurs von großer Bedeutung.
Aus dem Namen folgt, dass Data Engineering mit Daten verbunden ist, nämlich mit deren Lieferung, Speicherung und Verarbeitung. Dementsprechend besteht die Hauptaufgabe der Ingenieure darin, eine zuverlässige Infrastruktur für Daten bereitzustellen. Wenn wir uns die KI-Hierarchie der Bedürfnisse ansehen, umfasst das Data Engineering die ersten zwei bis drei Schritte:
Sammeln, Verschieben und Speichern, Vorbereiten von Daten .
Was macht ein Dateningenieur?Mit dem Aufkommen von Big Data hat sich der Verantwortungsbereich dramatisch verändert. Früher haben diese Experten große SQL-Abfragen geschrieben und Daten mit Tools wie Informatica ETL, Pentaho ETL und Talend überholt. Jetzt sind die Anforderungen an Dateningenieure gestiegen.
Die meisten Unternehmen mit offenen Stellen für die Position eines Dateningenieurs haben folgende Anforderungen:
- Hervorragende Kenntnisse in SQL und Python.
- Erfahrung mit Cloud-Plattformen, insbesondere Amazon Web Services.
- Kenntnisse in Java / Scala werden bevorzugt.
- Gutes Verständnis von SQL- und NoSQL-Datenbanken (Datenmodellierung, Datenspeicherung).
Denken Sie daran, dies ist nur das Notwendigste. Aus dieser Liste können wir annehmen, dass die Dateningenieure Spezialisten auf dem Gebiet der Softwareentwicklung und des Backends sind.
Wenn ein Unternehmen beispielsweise beginnt, eine große Datenmenge aus verschiedenen Quellen zu generieren, besteht Ihre Aufgabe als Dateningenieur darin, die Erfassung von Informationen, deren Verarbeitung und Speicherung zu organisieren.
Die Liste der in diesem Fall verwendeten Tools kann unterschiedlich sein. Dies hängt vom Umfang dieser Daten, der Geschwindigkeit ihres Empfangs und der Heterogenität ab. Die meisten Unternehmen stoßen überhaupt nicht auf Big Data. Daher können Sie als zentrales Repository, das sogenannte Datenrepository, eine SQL-Datenbank (PostgreSQL, MySQL usw.) mit einer kleinen Anzahl von Skripten verwenden, die Daten an das Repository weiterleiten.
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.
- Grundlegendes zu verteilten Systemen.
- Die Erfahrung mit Datenvisualisierungstools wie Tableau oder ElasticSearch ist von großem Vorteil.
Das heißt, es gibt eine deutliche Verschiebung hin zu Big Data, nämlich bei der Verarbeitung bei hohen Lasten. Diese Unternehmen haben erhöhte Anforderungen an die Systemfehlertoleranz.
Data Engineers Vs. Wissenschaftlerdaten
Nun, es war ein einfacher und lustiger Vergleich (nichts Persönliches), aber tatsächlich ist alles viel komplizierter.Zunächst sollten Sie wissen, dass die Unterscheidung zwischen den Rollen und Fähigkeiten eines Datenwissenschaftlers und eines Dateningenieurs sehr vieldeutig ist. Das heißt, Sie können sich leicht wundern, welche Fähigkeiten für einen erfolgreichen Dateningenieur erforderlich sind. Natürlich gibt es bestimmte Fähigkeiten, die beide Rollen überschneiden. Es gibt aber auch eine Reihe von diametral entgegengesetzten Fähigkeiten.
Datenwissenschaft ist eine ernste Angelegenheit, aber wir bewegen uns in Richtung einer Welt mit einer funktionalen Datenwissenschaft, in der Praktiker ihre eigenen Analysen durchführen können. Um Datenpipelines und integrierte Datenstrukturen verwenden zu können, benötigen Sie Dateningenieure, keine Wissenschaftler.
Ist ein Dateningenieur gefragter als ein Datenwissenschaftler?- Ja, denn bevor Sie Karottenkuchen machen können, müssen Sie zuerst Karotten sammeln, schälen und auffüllen!
Ein Dateningenieur kennt sich mit Programmierung besser aus als jeder Datenwissenschaftler, aber wenn es um Statistik geht, ist es genau umgekehrt.
Aber hier ist der Vorteil eines Dateningenieurs: Ohne ihn / sie tendiert der Wert des Prototypmodells, das meistens aus einem Codefragment von schrecklicher Qualität in einer Python-Datei besteht, das von einem Datenwissenschaftler empfangen wurde und irgendwie ein Ergebnis liefert, gegen Null.
Ohne einen Dateningenieur wird dieser Code niemals zu einem Projekt, und kein Geschäftsproblem wird effektiv gelöst. Ein Dateningenieur versucht, dies alles in ein Produkt umzuwandeln.
Grundlegende Informationen, die ein Dateningenieur kennen sollte
Wenn diese Arbeit Licht in Ihnen weckt und Sie begeistert sind - Sie können dies lernen, können Sie alle erforderlichen Fähigkeiten beherrschen und ein echter Rockstar auf dem Gebiet der Datenentwicklung werden. Und ja, Sie können dies auch ohne Programmierkenntnisse oder andere technische Kenntnisse tun. Es ist schwierig, aber möglich!
Was sind die ersten Schritte?Sie sollten eine allgemeine Vorstellung davon haben, was was ist.
Data Engineering bezieht sich zunächst auf die Informatik. Insbesondere müssen Sie effektive Algorithmen und Datenstrukturen verstehen. Zweitens ist, da Dateningenieure mit Daten arbeiten, ein Verständnis der Funktionsprinzipien von Datenbanken und der ihnen zugrunde liegenden Strukturen erforderlich.
Beispielsweise basieren reguläre B-Tree-SQL-Datenbanken auf der B-Tree-Datenstruktur sowie in modernen verteilten Repositorys, LSM-Tree- und anderen Hash-Tabellenänderungen.
* Diese Schritte basieren auf einem wunderbaren Artikel von Adil Khashtamov . Wenn Sie Russisch sprechen, unterstützen Sie diesen Autor und lesen Sie seinen Beitrag .1. Algorithmen und DatenstrukturenDie Verwendung der richtigen Datenstruktur kann die Leistung des Algorithmus erheblich verbessern. Idealerweise sollten wir alle Datenstrukturen und Algorithmen in unseren Schulen studieren, aber dies wird selten behandelt. Auf jeden Fall ist es nie zu spät, sich kennenzulernen.
Hier sind meine bevorzugten kostenlosen Kurse zum Erlernen von Datenstrukturen und Algorithmen:
Vergessen Sie außerdem nicht die klassische Arbeit an Thomas Cormens Algorithmen -
Einführung in Algorithmen . Dies ist die perfekte Referenz, wenn Sie Ihr Gedächtnis auffrischen müssen.
- Verwenden Sie Leetcode, um Ihre Fähigkeiten zu verbessern.
Sie können auch mit den erstaunlichen Videos der Carnegie Mellon University auf Youtube in die Welt der Datenbanken eintauchen:
2. SQL lernenUnser ganzes Leben sind Daten. Und um diese Daten aus der Datenbank zu extrahieren, müssen Sie mit ihnen in einer Sprache "sprechen".
SQL (Structured Query Language) ist eine Datenkommunikationssprache. Egal was jemand sagt, SQL hat gelebt, lebt und wird sehr lange leben.
Wenn Sie schon lange in der Entwicklung sind, haben Sie wahrscheinlich bemerkt, dass regelmäßig Gerüchte über den bevorstehenden Tod von SQL auftauchen. Die Sprache wurde in den frühen 70er Jahren entwickelt und ist immer noch sehr beliebt bei Analysten, Entwicklern und gerechten 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 Stores unterstützen SQL:
- Amazon Rotverschiebung
- 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-Mechanismen erfunden: Apache Hive, Impala usw. Sie sehen, es wird nirgendwo hingehen.
Wie lerne ich SQL? Mach es einfach in der Praxis.
Zu diesem Zweck würde ich empfehlen, ein hervorragendes Tutorial zu lesen, das übrigens frei von
Mode Analytics ist .
- SQL Medium
- Daten in SQL kombinieren
Eine Besonderheit dieser Kurse ist das Vorhandensein einer interaktiven Umgebung, in der Sie SQL-Abfragen direkt im Browser schreiben und ausführen können. Die
Modern SQL- Ressource ist nicht redundant. Und Sie können dieses Wissen in
Leetcode-Aufgaben im Abschnitt Datenbanken anwenden.
3. Programmieren in Python und Java / ScalaWarum es sich lohnt, die Programmiersprache Python zu lernen, habe ich bereits in dem Artikel
Python vs R geschrieben. Auswahl des besten Tools für AI, ML und Data Science . Für Java und Scala 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. Mit dem funktionalen Ansatz von Scala können Sie die Aufgaben der parallelen Datenverarbeitung effizient lösen. Python kann sich leider nicht mit Geschwindigkeit und paralleler Verarbeitung rühmen. Im Allgemeinen wirkt sich die Kenntnis mehrerer Sprachen und Programmierparadigmen gut auf die Breite der Lösungsansätze aus.
Um in die Scala-Sprache einzutauchen, können Sie die
Programmierung in Scala vom Autor der Sprache lesen. Twitter hat auch einen guten Einführungsleitfaden veröffentlicht -
Scala School .
Was Python betrifft, finde ich
Fluent Python das beste Mittelklasse-Buch.
4. Big Data ToolsHier ist eine Liste der beliebtesten Tools in der Big Data-Welt:
- Apache Funken
- Apache kafka
- Apache Hadoop (HDFS, HBase, Hive)
- Apache Cassandra
Weitere Informationen zum Erstellen großer Datenblöcke finden Sie in dieser erstaunlichen
interaktiven Umgebung . Die beliebtesten Tools sind Spark und Kafka. Es lohnt sich auf jeden Fall, sie zu erkunden. Es ist ratsam zu verstehen, wie sie von innen nach außen funktionieren. Jay Kreps (Co-Autor von Kafka) veröffentlichte 2013 die monumentale Arbeit
The Log: Was jeder Softwareentwickler über die Abstraktion der Echtzeit-Datenaggregation wissen sollte , wurden übrigens die Hauptideen aus diesem Talmud verwendet, um Apache Kafka zu erstellen.
5. Cloud-Plattformen
Kenntnisse über mindestens eine Cloud-Plattform stehen auf der Liste der Grundvoraussetzungen für Bewerber um die Position eines Dateningenieurs. Arbeitgeber bevorzugen Amazon Web Services, gefolgt von Googles Cloud-Plattform, und schließen die drei führenden Microsoft Azure-Unternehmen.
Sie sollten mit Amazon EC2, AWS Lambda, Amazon S3 und DynamoDB vertraut sein.
6. Verteilte SystemeDas Arbeiten mit Big Data setzt das Vorhandensein von Clustern unabhängig arbeitender Computer voraus, deren Kommunikation über das Netzwerk erfolgt. Je größer der Cluster ist, desto größer ist die Wahrscheinlichkeit eines Ausfalls seiner Mitgliedsknoten. Um ein cooler Datenexperte zu werden, müssen Sie sich mit den Problemen und vorhandenen Lösungen für verteilte Systeme befassen. Dieser Bereich ist alt und komplex.
Andrew Tanenbaum gilt als Pionier auf diesem Gebiet. Für diejenigen, die keine Angst vor der Theorie haben, empfehle ich sein Buch
Distributed Systems . Für Anfänger mag es kompliziert erscheinen, aber es hilft Ihnen wirklich, Ihre Fähigkeiten zu verbessern.
Ich finde das
Entwerfen datenintensiver Anwendungen von Martin Kleppmann das beste Einführungsbuch. Martin hat übrigens einen wunderbaren
Blog . Seine Arbeit wird dazu beitragen, das Wissen über den Aufbau einer modernen Infrastruktur zum Speichern und Verarbeiten von Big Data zu systematisieren.
Für diejenigen, die gerne Videos ansehen, gibt es einen Kurs über
verteilte Computersysteme auf Youtube.
7. Datenpipelines
Datenpipelines sind das, ohne das Sie als Dateningenieur nicht leben können.
Meistens erstellt der Dateningenieur das sogenannte Pipeline-Datum, dh er erstellt den Prozess der Datenlieferung von einem Ort zum anderen. Dies können Benutzerskripte sein, die an die externe Service-API gehen oder eine SQL-Abfrage durchführen, die Daten ergänzen und in einem zentralen Speicher (Data Warehouse) oder einem unstrukturierten Datenspeicher (Data Lake) ablegen.
Zusammenfassend: Checkliste des Hauptdateningenieurs
Zusammenfassend benötigen Sie ein gutes Verständnis für Folgendes:
- Informationssysteme;
- Softwareentwicklung (Agile, DevOps, Designtechniken, SOA);
- Verteilte Systeme und parallele Programmierung;
- Grundlagen von Datenbanken - Planung, Design, Betrieb und Fehlerbehebung;
- Entwerfen von Experimenten - A / B-Tests, um Konzepte zu beweisen, Zuverlässigkeit und Systemleistung zu bestimmen und zuverlässige Methoden zu entwickeln, um schnell gute Lösungen bereitzustellen.
Dies sind nur einige wenige Voraussetzungen, um Dateningenieur zu werden. Studieren und verstehen Sie daher Datensysteme, Informationssysteme, kontinuierliche Bereitstellung / Bereitstellung / Integration, Programmiersprachen und andere Themen in der Informatik (nicht in allen Fachbereichen).
Und schließlich 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, frustriert, und Sie müssen darauf vorbereitet sein. Einige Punkte auf dieser Reise können Sie zum Beenden auffordern. Dies ist jedoch ein echter Arbeits- und Bildungsprozess.
Verschönern Sie es einfach nicht von Anfang an. Der springende Punkt beim Reisen ist es, so viel wie möglich zu lernen und auf neue Herausforderungen vorbereitet zu sein.
Hier ist ein großartiges Bild, das mir begegnet ist und diesen Punkt gut veranschaulicht:

Und ja, denken Sie daran, Burnout und Ruhe zu vermeiden. Dies ist auch sehr wichtig. Viel Glück
Wie gefällt dir der Artikel, Freunde? Wir laden Sie zu einem
kostenlosen Webinar ein , das heute um 20.00 Uhr stattfindet. Im Rahmen des Webinars werden wir diskutieren, wie ein effektives und skalierbares Datenverarbeitungssystem für ein kleines Unternehmen oder ein Startup mit minimalen Kosten aufgebaut werden kann. In der Praxis stellen wir Ihnen die Datenverarbeitungstools von Google Cloud vor. Bis dann!