Qui sont les data engineers, et comment devenir l'un d'eux ?

Bonjour encore ! Le titre de l'article parle de lui-mĂȘme. En prĂ©vision du lancement du cours «IngĂ©nieur en donnĂ©es» , nous vous proposons de comprendre qui sont rĂ©ellement les ingĂ©nieurs en donnĂ©es. L'article contient de nombreux liens utiles. Bonne lecture.

Qui sont les data engineers, et comment devenir l'un d'eux ?

Un guide simple sur la façon de surfer sur la vague du Data Engineering sans se laisser entraßner dans le courant.

On a l'impression qu'aujourd'hui tout le monde veut devenir data scientist. Mais qu'en est-il de l'engineering des données ? En gros, c'est une sorte d'hybride entre un analyste de données et un data scientist ; l'ingénieur en données est généralement responsable de la gestion des flux de travail, des pipelines de traitement et des processus ETL.En raison de l'importance de ces fonctions, c'est actuellement un jargon professionnel populaire qui prend de l'ampleur.

Un salaire Ă©levĂ© et une demande Ă©norme ne sont qu'une petite partie de ce qui rend ce travail extrĂȘmement attractif ! Si vous souhaitez rejoindre les rangs des hĂ©ros, il n'est jamais trop tard pour commencer Ă  apprendre. Dans cet article, j'ai compilĂ© toutes les informations nĂ©cessaires pour vous aider Ă  faire vos premiers pas.

Alors, commençons !

Qu'est-ce que l'ingénierie des données ?

HonnĂȘtement, il n'y a pas de meilleure explication que celle-ci :

«Un scientifique peut découvrir une nouvelle étoile, mais ne peut pas la créer. Il devra demander à un ingénieur de le faire pour lui.»

–Gordon Lindsay Glegg

Ainsi, le rÎle de l'ingénieur en données est assez important.

Comme son nom l'indique, l'ingénierie des données concerne les données, notamment leur livraison, leur stockage et leur traitement. Par conséquent, la principale tùche des ingénieurs est de garantir une infrastructure fiable pour les données. Si nous regardons la hiérarchie des besoins en IA, l'ingénierie des données occupe les 2 à 3 premiÚres étapes : collecte, déplacement et stockage, préparation des données.

Qui sont les data engineers, et comment devenir l'un d'eux ?

Que fait un ingénieur en données ?

Avec l'Ă©mergence des grandes donnĂ©es, le domaine de responsabilitĂ© a considĂ©rablement Ă©voluĂ©. Autrefois, ces experts Ă©crivaient de grandes requĂȘtes SQL et transfĂ©raient des donnĂ©es Ă  l'aide d'outils tels qu'Informatica ETL, Pentaho ETL, Talend, mais dĂ©sormais les exigences pour les ingĂ©nieurs en donnĂ©es ont augmentĂ©.

La plupart des entreprises qui recrutent des ingénieurs en données exigent les éléments suivants :

  • Excellente maĂźtrise de SQL et Python.
  • ExpĂ©rience avec les plateformes cloud, notamment Amazon Web Services.
  • Connaissance de Java/Scala souhaitable.
  • Une bonne comprĂ©hension des bases de donnĂ©es SQL et NoSQL (modĂ©lisation des donnĂ©es, stockage des donnĂ©es).

Gardez à l'esprit que ce n'est que le strict nécessaire. De cette liste, on peut supposer que les ingénieurs de données sont des spécialistes en développement logiciel et en backend.
Par exemple, si une entreprise commence à générer de gros volumes de données à partir de différentes sources, votre tùche en tant qu'ingénieur de données consiste à organiser la collecte d'informations, leur traitement et leur stockage.

La liste des outils utilisĂ©s dans ce cas peut varier, tout dĂ©pend du volume de ces donnĂ©es, de la rapiditĂ© avec laquelle elles sont collectĂ©es et de leur hĂ©tĂ©rogĂ©nĂ©itĂ©. La plupart des entreprises ne rencontrent pas de grandes quantitĂ©s de donnĂ©es, c'est pourquoi une base de donnĂ©es SQL (PostgreSQL, MySQL, etc.) avec un petit ensemble de scripts pour diriger les donnĂ©es vers le stockage peut ĂȘtre utilisĂ©e comme un entrepĂŽt de donnĂ©es centralisĂ©.

Les géants de l'IT, tels que Google, Amazon, Facebook ou Dropbox, ont des exigences plus élevées : connaissance de Python, Java ou Scala.

  • ExpĂ©rience avec de grandes donnĂ©es : Hadoop, Spark, Kafka.
  • Connaissance des algorithmes et des structures de donnĂ©es.
  • ComprĂ©hension des bases des systĂšmes distribuĂ©s.
  • Une expĂ©rience avec des outils de visualisation des donnĂ©es, tels que Tableau ou ElasticSearch, sera un grand plus.

Il y a donc un certain glissement évident vers les grandes données, en particulier dans leur traitement sous des charges élevées. Ces entreprises ont des exigences accrues en matiÚre de résilience des systÚmes.

Ingénieurs de données Vs. data scientists

Qui sont les data engineers, et comment devenir l'un d'eux ?
D'accord, c'était une comparaison simple et drÎle (rien de personnel), mais en réalité, tout est beaucoup plus complexe.

Tout d'abord, vous devez savoir qu'il existe une certaine ambiguĂŻtĂ© dans la distinction entre les rĂŽles et les compĂ©tences des data scientists et des ingĂ©nieurs de donnĂ©es. Cela signifie que vous pouvez facilement ĂȘtre confus quant aux compĂ©tences nĂ©cessaires pour ĂȘtre un ingĂ©nieur de donnĂ©es rĂ©ussi. Bien sĂ»r, certaines compĂ©tences se chevauchent entre les deux rĂŽles. Mais il existe Ă©galement un certain nombre de compĂ©tences diamĂ©tralement opposĂ©es.

La science des donnĂ©es est une affaire sĂ©rieuse, mais nous nous dirigeons vers un monde avec une science des donnĂ©es fonctionnelle, oĂč les praticiens sont capables de faire leur propre analyse. Pour engager des pipelines de donnĂ©es et des structures de donnĂ©es intĂ©grĂ©es, vous avez besoin d'ingĂ©nieurs de donnĂ©es, et non de scientifiques.

Est-ce qu'un ingénieur de données est plus demandé qu'un data scientist ?

— Oui, parce qu'avant de pouvoir prĂ©parer un gĂąteau aux carottes, vous devez d'abord rĂ©colter, nettoyer et stocker des carottes !

L'ingénieur de données comprend mieux la programmation que n'importe quel data scientist, mais quand il s'agit de statistiques, c'est tout le contraire.

Mais voici l'avantage de l'ingénieur de données :

sans lui/elle, la valeur du modÚle prototype, souvent composé d'un extrait de code de mauvaise qualité dans un fichier Python, obtenu d'un data scientist et qui, d'une maniÚre ou d'une autre, produit un résultat, tend vers zéro.

Sans l'ingénieur de données, ce code ne deviendra jamais un projet, et aucun problÚme commercial ne sera résolu efficacement. L'ingénieur de données s'efforce de transformer tout cela en produit.

Les connaissances de base qu'un ingénieur de données doit avoir

Qui sont les data engineers, et comment devenir l'un d'eux ?

Ainsi, si ce travail Ă©veille en vous une passion et que vous ĂȘtes plein d'enthousiasme — vous ĂȘtes capable d'apprendre cela, vous pouvez acquĂ©rir toutes les compĂ©tences nĂ©cessaires et devenir une vĂ©ritable rock star dans le domaine du dĂ©veloppement de donnĂ©es. Et oui, vous pouvez le faire mĂȘme sans compĂ©tences en programmation ou autres connaissances techniques. C'est difficile, mais possible !

Quelles sont les premiÚres étapes ?

Vous devez avoir une compréhension générale de ce qui est quoi.

Tout d'abord, l'ingĂ©nierie des donnĂ©es concerne l'informatique. Plus prĂ©cisĂ©ment — vous devez comprendre les algorithmes efficaces et les structures de donnĂ©es. DeuxiĂšmement, puisque les ingĂ©nieurs de donnĂ©es travaillent avec des donnĂ©es, il est nĂ©cessaire de comprendre les principes de fonctionnement des bases de donnĂ©es et des structures qui les sous-tendent.

Par exemple, les bases de données SQL utilisant des B-arbres sont basées sur la structure de données B-Tree, ainsi que, dans les dépÎts distribués modernes, LSM-Tree et d'autres modifications de tables de hachage.

* Ces étapes sont basées sur un article remarquable d'Adil Hashtamov. Alors, si vous parlez russe, soutenez cet auteur et lisez son post.

1. Algorithmes et structures de données

Utiliser la bonne structure de données peut considérablement améliorer la performance d'un algorithme. Idéalement, nous devrions tous étudier les structures de données et les algorithmes à l'école, mais cela est rarement abordé. Quoi qu'il en soit, il n'est jamais trop tard pour s'informer.
Voici donc mes cours gratuits préférés pour apprendre les structures de données et les algorithmes :

N'oubliez pas non plus l'Ɠuvre classique sur les algorithmes de Thomas Cormen — Introduction aux algorithmes. C'est le guide parfait quand vous avez besoin de rafraĂźchir votre mĂ©moire.

  • Pour amĂ©liorer vos compĂ©tences, utilisez Leetcode.

Vous pouvez également plonger dans le monde des bases de données avec les superbes vidéos de l'Université Carnegie Mellon sur Youtube :

2. Apprendre SQL

Toute notre vie est faite de données. Et pour extraire ces données d'une base, vous devez « parler » avec elles dans un langage commun.

SQL (Structured Query Language — Langage de requĂȘte structurĂ©) est le langage de communication dans le domaine des donnĂ©es. Peu importe ce que quelqu'un dit, SQL a vĂ©cu, vit et continuera de vivre encore trĂšs longtemps.

Si vous ĂȘtes longtemps restĂ© dans le dĂ©veloppement, vous avez probablement remarquĂ© que des rumeurs sur la mort imminente de SQL apparaissent de temps en temps. Le langage a Ă©tĂ© dĂ©veloppĂ© au dĂ©but des annĂ©es 70 et continue d’ĂȘtre trĂšs populaire parmi les analystes, dĂ©veloppeurs et juste passionnĂ©s.
Sans connaissance de SQL dans l'ingĂ©nierie des donnĂ©es, il n'y a rien Ă  faire, car vous devrez inĂ©vitablement crĂ©er des requĂȘtes pour extraire des donnĂ©es. Tous les entrepĂŽts modernes de grandes donnĂ©es prennent en charge SQL :

  • Amazon Redshift
  • HP Vertica
  • Oracle
  • SQL Server


 et de nombreux autres.

Pour analyser de vastes ensembles de données stockées dans des systÚmes distribués comme HDFS, des mécanismes SQL ont été inventés : Apache Hive, Impala, etc. Vous voyez, il n'a pas l'intention de disparaßtre.

Comment apprendre SQL ? Il suffit de le pratiquer.

Pour cela, je vous recommande de consulter un excellent manuel, qui, soit dit en passant, est gratuit, de Mode Analytics.

  1. Niveau intermédiaire SQL
  2. Fusion de données en SQL

La caractĂ©ristique distinctive de ces cours est la prĂ©sence d'un environnement interactif oĂč vous pouvez Ă©crire et exĂ©cuter des requĂȘtes SQL directement dans votre navigateur. La ressource SQL moderne ne sera pas superflue. Et vous pouvez appliquer ces connaissances dans les exercices Leetcode dans la section Bases de donnĂ©es.

3. Programmation en Python et Java/Scala

Pourquoi apprendre le langage de programmation Python, j'en ai dĂ©jĂ  parlĂ© dans l'article Python vs R. Choisir le meilleur outil pour l'IA, le ML et la data science. En ce qui concerne Java et Scala, la plupart des outils pour stocker et traiter d’immenses volumes de donnĂ©es sont Ă©crits dans ces langages. Par exemple :

  • Apache Kafka (Scala)
  • Hadoop, HDFS (Java)
  • Apache Spark (Scala)
  • Apache Cassandra (Java)
  • HBase (Java)
  • Apache Hive (Java)

Pour comprendre comment ces outils fonctionnent, vous devez connaßtre les langages dans lesquels ils sont écrits. L'approche fonctionnelle de Scala permet de résoudre efficacement des problÚmes de traitement parallÚle des données. Python, malheureusement, ne peut pas se vanter de sa rapidité et de son traitement parallÚle. En général, connaßtre plusieurs langages et paradigmes de programmation améliore la diversité des approches de résolution des problÚmes.

Pour plonger dans le langage Scala, vous pouvez lire Programmation en Scala de l'auteur du langage. De plus, Twitter a publiĂ© un bon guide d'introduction — Scala School.

En ce qui concerne Python, je pense que Fluent Python est le meilleur livre de niveau intermédiaire.

4. Outils pour le Big Data

Voici une liste des outils les plus populaires dans le monde du Big Data :

  • Apache Spark
  • Apache Kafka
  • Apache Hadoop (HDFS, HBase, Hive)
  • Apache Cassandra

Vous pouvez trouver plus d'informations sur la construction de grands ensembles de donnĂ©es dans cet incroyable environnement interactif. Les outils les plus populaires sont Spark et Kafka. Ils valent vraiment la peine d'ĂȘtre Ă©tudiĂ©s, idĂ©alement pour comprendre comment ils fonctionnent de l'intĂ©rieur. Jay Kreps (co-auteur de Kafka) a publiĂ© en 2013 un travail monumental The Log : ce que chaque dĂ©veloppeur de logiciels doit savoir sur l'abstraction de la fusion de donnĂ©es en temps rĂ©el, d'ailleurs, les idĂ©es principales de ce talmud ont Ă©tĂ© utilisĂ©es pour crĂ©er Apache Kafka.

5. Plateformes Cloud

Qui sont les data engineers, et comment devenir l'un d'eux ?

ConnaĂźtre au moins une plateforme cloud est l'un des critĂšres de base exigĂ©s par les employeurs pour les candidats au poste d'ingĂ©nieur en donnĂ©es. Les employeurs privilĂ©gient Amazon Web Services, la plateforme cloud de Google arrive en deuxiĂšme position, et Microsoft Azure complĂšte le trio de tĂȘte.

Vous devez bien maĂźtriser Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. SystÚmes distribués

Travailler avec de grandes quantitĂ©s de donnĂ©es implique d'avoir des clusters de calculateurs fonctionnant indĂ©pendamment, dont la communication s'effectue par rĂ©seau. Plus le cluster est grand, plus la probabilitĂ© de panne de ses nƓuds est Ă©levĂ©e. Pour devenir un expert en donnĂ©es, vous devez approfondir les problĂšmes et les solutions existantes pour les systĂšmes distribuĂ©s. Ce domaine est ancien et complexe.

Andrew Tanenbaum est considéré comme un pionnier dans ce domaine. Pour ceux qui n'ont pas peur de la théorie, je recommande son livre «SystÚmes distribués», il peut sembler complexe pour les débutants, mais cela vous aidera vraiment à perfectionner vos compétences.

Je pense que «Conception d'applications intensives en donnĂ©es» de Martin Kleppmann est le meilleur livre d'introduction. À propos, Martin a un excellent blog. Son travail aidera Ă  systĂ©matiser vos connaissances sur la construction de l'infrastructure moderne pour le stockage et le traitement des Big Data.
Pour ceux qui aiment regarder des vidéos, il existe un cours sur Youtube SystÚmes informatiques distribués.

7. Pipelines de données

Qui sont les data engineers, et comment devenir l'un d'eux ?

Les pipelines de données sont essentiels pour un ingénieur de données.

La plupart du temps, un ingĂ©nieur de donnĂ©es construit ce qu'on appelle un pipeline de donnĂ©es, c'est-Ă -dire qu'il crĂ©e un processus de livraison de donnĂ©es d'un endroit Ă  un autre. Cela peut inclure des scĂ©narios d'utilisateur qui interagissent avec l'API d'un service externe ou effectuent des requĂȘtes SQL, enrichissant les donnĂ©es et les plaçant dans un entrepĂŽt centralisĂ© (entrepĂŽt de donnĂ©es) ou un stockage de donnĂ©es non structurĂ©es (lacs de donnĂ©es).

En résumé : la liste de contrÎle principale d'un ingénieur de données

Qui sont les data engineers, et comment devenir l'un d'eux ?

RĂ©sumĂ© — il est nĂ©cessaire d'avoir une bonne comprĂ©hension des Ă©lĂ©ments suivants :

  • SystĂšmes d'information ;
  • DĂ©veloppement logiciel (Agile, DevOps, Techniques de conception, SOA) ;
  • SystĂšmes distribuĂ©s et programmation parallĂšle ;
  • Fondamentaux des bases de donnĂ©es — planification, conception, exploitation et dĂ©pannages ;
  • Conception d'expĂ©riences — tests A/B pour prouver des concepts, Ă©valuer la fiabilitĂ©, la performance des systĂšmes, ainsi que pour dĂ©velopper des voies fiables pour fournir des solutions de maniĂšre opĂ©rationnelle.

Ce ne sont là que quelques exigences pour devenir ingénieur de données, alors étudiez et familiarisez-vous avec les systÚmes de données, les systÚmes d'information, la livraison continue/déploiement/intégration, les langages de programmation et d'autres sujets en informatique (pas dans tous les domaines de spécialité).

Et enfin, la derniĂšre chose mais non des moindres que je tiens Ă  dire.

Le parcours pour devenir Data Engineer n'est pas aussi simple qu'il y paraĂźt. Il ne fait pas de cadeaux, il est frustrant, et vous devez ĂȘtre prĂȘt Ă  cela. Certains moments de ce voyage peuvent vous pousser Ă  tout abandonner. Mais c'est un vĂ©ritable travail et un processus d'apprentissage.

Ne commencez pas par embellir la rĂ©alitĂ©. Tout l'intĂ©rĂȘt de ce voyage est d'apprendre le plus possible et d'ĂȘtre prĂȘt Ă  relever de nouveaux dĂ©fis.
Voici une excellente image que j'ai rencontrée, qui illustre bien ce point :

Qui sont les data engineers, et comment devenir l'un d'eux ?

Et oui, n'oubliez pas d'éviter le burn-out et de prendre du temps pour vous reposer. C'est également trÚs important. Bonne chance !

Qu'avez-vous pensĂ© de l'article, les amis ? Nous vous invitons Ă  webinaire gratuit, qui aura lieu aujourd'hui Ă  20h00. Au cours du webinaire, nous discuterons de la façon de construire un systĂšme de traitement des donnĂ©es efficace et Ă©volutif pour une petite entreprise ou une start-up avec un minimum de coĂ»ts. En pratique, nous nous familiariserons avec les outils de traitement des donnĂ©es de Google Cloud. À bientĂŽt !

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster