Qui sont les ingénieurs de données et comment le devenir ?

Bonjour à nouveau! Le titre de l'article parle de lui-même. En prévision du début des cours Ingénieur de données Nous vous suggérons de comprendre qui sont les ingénieurs de données. Il y a beaucoup de liens utiles dans l'article. Bonne lecture.

Qui sont les ingénieurs de données et comment le devenir ?

Un guide simple sur la façon de capter la vague de l'ingénierie des données et de ne pas la laisser vous entraîner dans l'abîme.

Il semble que tout le monde souhaite devenir Data Scientist de nos jours. Mais qu’en est-il de l’ingénierie des données ? Il s’agit essentiellement d’une sorte d’hybride entre un analyste de données et un data scientist ; Un ingénieur de 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, il s'agit actuellement d'un autre jargon professionnel populaire qui prend activement de l'ampleur.

Les salaires élevés et la 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 rassemblé 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 il ne peut pas en créer une. Il devra demander à un ingénieur de le faire à sa place. »

–Gordon Lindsay Glegg

Ainsi, le rôle d’un data Engineer est assez important.

Comme son nom l'indique, l'ingénierie des données concerne les données, à savoir leur livraison, leur stockage et leur traitement. En conséquence, la tâche principale des ingénieurs est de fournir une infrastructure de données fiable. Si l’on regarde la hiérarchie des besoins de l’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 ingénieurs de données et comment le devenir ?

Que fait un ingénieur de données ?

Avec l’avènement du Big Data, l’étendue des responsabilités a radicalement changé. Si auparavant ces experts écrivaient de grandes requêtes SQL et distillaient des données à l'aide d'outils tels qu'Informatica ETL, Pentaho ETL, Talend, les exigences en matière d'ingénieurs de données ont désormais augmenté.

La plupart des entreprises ayant des postes vacants pour le poste d'ingénieur de données ont les exigences suivantes :

  • Excellente connaissance de SQL et Python.
  • Expérience avec les plateformes cloud, en particulier Amazon Web Services.
  • Connaissance de Java/Scala préférée.
  • Bonne compréhension des bases de données SQL et NoSQL (modélisation des données, entreposage de données).

Gardez à l’esprit que ce ne sont que l’essentiel. De cette liste, on peut supposer que les ingénieurs de données sont des spécialistes dans le domaine du développement logiciel et du backend.
Par exemple, si une entreprise commence à générer une grande quantité de données provenant de diverses sources, votre tâche en tant qu'ingénieur de données est d'organiser la collecte d'informations, leur traitement et leur stockage.

La liste des outils utilisés dans ce cas peut différer, tout dépend du volume de ces données, de la rapidité de leur réception et de leur hétérogénéité. La plupart des entreprises ne traitent pas du tout le Big Data, donc en tant que référentiel centralisé, ce qu'on appelle un entrepôt de données, vous pouvez utiliser une base de données SQL (PostgreSQL, MySQL, etc.) avec un petit ensemble de scripts qui alimentent les données. l'entrepôt.

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

  • Expérience avec le big data : Hadoop, Spark, Kafka.
  • Connaissance des algorithmes et des structures de données.
  • Comprendre les bases des systèmes distribués.
  • Une expérience avec des outils de visualisation de données tels que Tableau ou ElasticSearch sera un plus.

Autrement dit, il y a une nette évolution vers le Big Data, notamment dans leur traitement sous des charges élevées. Ces entreprises ont des exigences accrues en matière de tolérance aux pannes du système.

Ingénieurs de données contre. scientifiques des données

Qui sont les ingénieurs de données et comment le devenir ?
Bon, c'était une comparaison simple et amusante (rien de personnel), mais en réalité c'est bien plus compliqué.

Tout d’abord, il faut savoir qu’il existe beaucoup d’ambiguïté dans la délimitation des rôles et des compétences d’un data scientist et d’un data Engineer. Autrement dit, vous pouvez facilement ne pas savoir quelles sont les compétences nécessaires pour devenir un ingénieur de données performant. Bien entendu, certaines compétences recoupent 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 de science des données fonctionnelles où les praticiens sont capables de réaliser leurs propres analyses. Pour activer les pipelines de données et les structures de données intégrées, vous avez besoin d'ingénieurs de données, et non de data scientists.

Un ingénieur de données est-il plus demandé qu’un data scientist ?

- Oui, car avant de pouvoir réaliser un carrot cake, il faut d'abord récolter, éplucher et stocker les carottes !

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

Mais voici l’avantage d’un data Engineer :

Sans lui, la valeur du modèle prototype, consistant le plus souvent en un morceau de code de très mauvaise qualité dans un fichier Python, obtenu auprès d'un data scientist et produisant d'une manière ou d'une autre un résultat, tend vers zéro.

Sans un data Engineer, ce code ne deviendra jamais un projet et aucun problème business ne sera résolu efficacement. L’ingénieur de données essaie de transformer tout cela en produit.

Informations de base qu'un ingénieur de données devrait connaître

Qui sont les ingénieurs de données et comment le devenir ?

Ainsi, si ce métier fait ressortir la lumière en vous et que vous êtes enthousiaste, vous pouvez l'apprendre, vous pourrez maîtriser toutes les compétences nécessaires et devenir une véritable rock star dans le domaine de l'ingénierie des données. Et oui, vous pouvez y parvenir même sans compétences en programmation ou autres connaissances techniques. C'est difficile, mais possible !

Quelles sont les premières étapes?

Vous devriez avoir une idée générale de ce qui est quoi.

Tout d’abord, le Data Engineering fait référence à l’informatique. Plus précisément, vous devez comprendre des algorithmes et des structures de données efficaces. Deuxièmement, puisque les ingénieurs de données travaillent avec des données, il est nécessaire de comprendre les principes des bases de données et les structures qui les sous-tendent.

Par exemple, les bases de données SQL B-tree conventionnelles sont basées sur la structure de données B-Tree, ainsi que, dans les référentiels distribués modernes, sur LSM-Tree et d'autres modifications des tables de hachage.

*Ces étapes sont basées sur un excellent article Adilya Khachtamova. Donc, si vous connaissez le russe, soutenez cet auteur et lisez son message.

1. Algorithmes et structures de données

L’utilisation de la bonne structure de données peut améliorer considérablement les performances d’un algorithme. Idéalement, nous devrions tous nous renseigner sur les structures de données et les algorithmes dans nos écoles, mais cela est rarement abordé. Dans tous les cas, il n’est jamais trop tard pour faire connaissance.
Voici donc mes cours gratuits préférés pour apprendre les structures de données et les algorithmes :

De plus, n'oubliez pas le travail classique de Thomas Corman sur les algorithmes - Introduction aux algorithmes. C'est la référence parfaite lorsque vous avez besoin de vous rafraîchir la mémoire.

  • Pour améliorer vos compétences, utilisez Code Leet.

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

2. Apprenez SQL

Toute notre vie est constituée de données. Et pour extraire ces données de la base de données, vous devez « parler » le même langage avec elle.

SQL (Structured Query Language) est le langage de communication dans le domaine des données. Quoi qu’on en dise, SQL a vécu, est vivant et vivra très longtemps.

Si vous êtes dans le développement depuis longtemps, vous avez probablement remarqué que des rumeurs sur la mort imminente de SQL surgissent périodiquement. Le langage a été développé au début des années 70 et est toujours très populaire parmi les analystes, les développeurs et simplement les passionnés.
Sans connaissance de SQL il n’y a rien à faire en ingénierie de données car vous devrez inévitablement créer des requêtes pour récupérer des données. Tous les entrepôts Big Data modernes prennent en charge SQL :

  • Redshift d'Amazon
  • HP Vertica
  • Oracle
  • SQL Server

... et plein d'autres.

Pour analyser une grande couche de données stockées dans des systèmes distribués tels que HDFS, des moteurs SQL ont été inventés : Apache Hive, Impala, etc. Vous voyez, cela ne mène nulle part.

Comment apprendre le SQL ? Faites-le simplement en pratique.

Pour ce faire, je vous recommande de consulter un excellent tutoriel, d'ailleurs gratuit, de Analyse de mode.

  1. SQL intermédiaire
  2. Joindre des données dans SQL

Ce qui rend ces cours spéciaux, c'est qu'ils disposent d'un environnement interactif dans lequel vous pouvez écrire et exécuter des requêtes SQL directement dans votre navigateur. Ressource SQL moderne ne sera pas superflu. Et vous pouvez appliquer ces connaissances à Tâches Leetcode dans la section Bases de données.

3. Programmation en Python et Java/Scala

Pourquoi devriez-vous apprendre le langage de programmation Python, j'ai déjà écrit dans l'article Python vs R. Choisir le meilleur outil pour l'IA, le ML et la science des données. Lorsqu'il s'agit de Java et Scala, la plupart des outils permettant de stocker et de traiter d'énormes quantités 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 Ruche (Java)

Pour comprendre le fonctionnement de ces outils, il faut connaître les langues dans lesquelles ils sont rédigés. L'approche fonctionnelle de Scala vous permet de résoudre efficacement les problèmes de traitement de données parallèle. Python, malheureusement, ne peut pas se vanter de rapidité et de traitement parallèle. En général, la connaissance de plusieurs langages et paradigmes de programmation est bonne pour l'étendue des approches de résolution de problèmes.

Pour vous plonger dans le langage Scala, vous pouvez lire Programmation en Scala de l'auteur de la langue. Twitter a également publié un bon guide d'introduction - École Scala.

Quant à Python, je crois Python courant meilleur livre de niveau intermédiaire.

4. Outils pour travailler avec 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 création de gros blocs de données dans cet étonnant environnement interactif. Les outils les plus populaires sont Spark et Kafka. Ils valent vraiment la peine d'être étudiés, il est conseillé de comprendre comment ils fonctionnent de l'intérieur. Jay Kreps (co-auteur de Kafka) a publié un ouvrage monumental en 2013 Le journal : ce que tout développeur de logiciels devrait savoir sur l'abstraction de l'agrégation de données en temps réelÀ propos, les idées principales de ce Talmud ont été utilisées pour créer Apache Kafka.

5. Plateformes cloud

Qui sont les ingénieurs de données et comment le devenir ?

La connaissance d'au moins une plateforme cloud figure sur la liste des exigences de base pour les candidats au poste d'ingénieur de données. Les employeurs préfèrent Amazon Web Services, la plateforme cloud de Google arrivant en deuxième position et Microsoft Azure complétant le trio de tête.

Vous devez avoir une bonne connaissance d'Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Systèmes distribués

Travailler avec du Big Data implique la présence de clusters d'ordinateurs fonctionnant de manière indépendante, dont la communication s'effectue via un réseau. Plus le cluster est grand, plus la probabilité de défaillance de ses nœuds membres est grande. Pour devenir un grand data scientist, vous devez comprendre les problèmes et les solutions existantes des systèmes distribués. Ce quartier 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", cela peut sembler intimidant pour les débutants, mais cela vous aidera vraiment à perfectionner vos compétences.

Je crois Conception d'applications à forte intensité de données par Martin Kleppmann meilleur livre d'introduction. Au fait, Martin a un merveilleux Blog. Son travail contribuera à systématiser les connaissances sur la construction d'une infrastructure moderne pour le stockage et le traitement du Big Data.
Pour ceux qui aiment regarder des vidéos, il y a un cours sur Youtube Systèmes informatiques distribués.

7. Pipelines de données

Qui sont les ingénieurs de données et comment le devenir ?

Les pipelines de données sont quelque chose dont vous ne pouvez pas vous passer en tant qu'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 pour transmettre les données d'un endroit à un autre. Il peut s'agir de scripts personnalisés qui accèdent à l'API d'un service externe ou effectuent une requête SQL, augmentent les données et les placent dans un magasin centralisé (entrepôt de données) ou un magasin de données non structuré (lacs de données).

Pour résumer : la liste de contrôle de base pour un ingénieur de données

Qui sont les ingénieurs de données et comment le devenir ?

Pour résumer, une bonne compréhension des éléments suivants est requise :

  • Systèmes d'information ;
  • Développement de logiciels (Agile, DevOps, Techniques de conception, SOA) ;
  • Systèmes distribués et programmation parallèle ;
  • Principes fondamentaux des bases de données : planification, conception, fonctionnement et dépannage ;
  • Conception d'expériences - Tests A/B pour prouver des concepts, déterminer la fiabilité, les performances du système et développer des chemins fiables pour fournir rapidement de bonnes solutions.

Ce ne sont là que quelques-unes des exigences pour devenir ingénieur de données, alors apprenez et comprenez les systèmes de données, les systèmes d'information, la livraison/déploiement/intégration continue, les langages de programmation et d'autres sujets informatiques (pas tous les domaines).

Et enfin, la dernière chose, mais très importante, que je veux dire.

Le chemin pour devenir Data Engineering n’est pas aussi simple qu’il y paraît. Il ne pardonne pas, il frustre, et vous devez vous y préparer. Certains moments de ce voyage peuvent vous pousser à abandonner. Mais c’est un vrai travail et un processus d’apprentissage.

Ne l’édulcorez pas dès le début. L’intérêt du voyage est d’apprendre le plus possible et d’être prêt à relever de nouveaux défis.
Voici une superbe photo que j'ai trouvée et qui illustre bien ce point :

Qui sont les ingénieurs de données et comment le devenir ?

Et oui, pensez à éviter le burn-out et à vous reposer. C'est également très important. Bonne chance!

Que pensez-vous de l'article, les amis ? Nous vous invitons à webinaire gratuit, qui aura lieu aujourd'hui à 20.00hXNUMX. Au cours du webinaire, nous discuterons de la manière de créer un système de traitement de données efficace et évolutif pour une petite entreprise ou une startup à un coût minimal. En guise de pratique, nous nous familiariserons avec les outils de traitement de données de Google Cloud. À bientôt!

Source: habr.com

Ajouter un commentaire