Ingénieurs de données : mythes contre réalités
Publié: 2018-05-10Des voitures autonomes au marquage automatique des images, la science des données a parcouru un long chemin. Les scientifiques et les analystes de données font désormais partie intégrante de toute organisation en raison de la valeur qu'ils ajoutent. Mais, en toute honnêteté, un data scientist est aussi bon que les données avec lesquelles il travaille. Aujourd'hui, la plupart des organisations ont leurs données stockées dans une variété de formats et sur de nombreuses plateformes. Voici un besoin d'ingénieurs de données!

Les ingénieurs de données sont des personnes qui rendent ces données exploitables pour les data scientists et les analystes. Les ingénieurs de données sont chargés de créer des pipelines qui transforment les tas de données en un format utilisable par les data scientists. Ils travaillent principalement dans les coulisses et sont donc dépourvus de tout le glamour d'un data scientist/analyste - mais attention, ils sont tout aussi (sinon plus) essentiels au fonctionnement de toute organisation.
Si les scientifiques des données sont des pilotes de voitures de course, les ingénieurs des données sont des constructeurs de voitures de course. Le premier a l'excitation d'accélérer le long d'une piste et le frisson de gagner devant une foule qui applaudit. Ce dernier, en revanche, obtient la joie de régler les moteurs et de créer une machine puissante et robuste. Un constructeur de voitures de course rend le travail du pilote beaucoup plus facile (ou plus difficile, selon la qualité du constructeur).
Comment pouvez-vous passer à l'analyse de données ?
À cet égard, les ingénieurs de données sont à peu près les héros méconnus de toute équipe d'analyse de données. Sans un ingénieur de données du son, un scientifique des données ne fera que se gratter la tête à la recherche d'indices dans des données non formatées.
Voyons en quoi consiste le travail d'un ingénieur de données.
Pour une meilleure compréhension, supposons que vous êtes un ingénieur de données chez un concurrent de Swiggy (nommons-le Twiggy). Vous disposez d'une application que les utilisateurs peuvent utiliser sur n'importe quel appareil et accéder à vos services. Ils commandent de la nourriture, la commande est redirigée vers le restaurant approprié, la nourriture est récupérée à partir de là et elle vous parvient.
Pour garder ce service synchronisé, vous aurez besoin de :
- Une application mobile pour les utilisateurs
- Une application mobile pour les restaurateurs
- Un serveur robuste pour gérer plusieurs requêtes à la fois.
Comme vous l'avez peut-être compris maintenant, cette application générera d'ÉNORMES quantités de données. De plus, vous aurez besoin de certains magasins de données :
- Une base de données qui contient les détails des utilisateurs et des restaurants.
- Journaux d'accès au serveur. Ceux-ci incluront toute demande faite au serveur depuis l'application.
- Journaux d'erreurs du serveur contenant toutes les erreurs côté serveur.
- Journaux des événements de l'application. Ceux-ci contiendront des informations sur les actions que les utilisateurs ou les propriétaires de restaurant ont effectuées dans l'application.
- Journaux d'erreurs d'application contenant des erreurs basées sur l'application.
- Base de données du service client. Celui-ci contiendra les données relatives à votre interaction avec vos clients.
Supposons maintenant qu'un scientifique des données de votre équipe souhaite analyser le comportement des utilisateurs sur vos services et voir quelles actions sont en corrélation avec les utilisateurs qui dépensent beaucoup. Pour les aider à créer cela, vous devrez combiner toutes les informations des journaux d'accès au serveur et des journaux d'événements de l'application.
Vous devrez :
- Rassemblez régulièrement les journaux d'analyse des applications.
- Combinez les journaux d'analyse des applications avec les entrées du journal du serveur pour les utilisateurs concernés.
- Développez une API qui renvoie l'historique des événements de n'importe quel utilisateur.
C'est beaucoup de travail là !
Pour faire tout cela, vous devrez créer un pipeline capable d'ingérer efficacement les journaux d'applications mobiles et les journaux de serveur en temps réel, de les analyser et de les lier à l'utilisateur approprié. De plus, vous devrez stocker les journaux analysés dans une base de données afin que l'API puisse facilement les interroger. Vous devrez faire tourner de nombreux serveurs derrière un équilibreur de charge pour analyser les journaux entrants.
La majorité des problèmes que vous rencontrerez concerneront les systèmes distribués et la fiabilité. Si vous avez des millions d'appareils pour collecter des journaux et des demandes dynamiques (dans l'après-midi, vous obtenez de nombreuses entrées de journal, mais pas autant à minuit), vous devrez développer un système capable d'augmenter et de diminuer automatiquement le nombre de serveurs. en fonction du trafic.
Principales étapes pour maîtriser la science des données
En gros, les opérations dans un pipeline d'ingénierie de données générique passent par les phases suivantes :
- Ingestion : collecte des données nécessaires.
- Traitement : traitement des données pour obtenir le résultat souhaité.
- Stockage : stocker le résultat pour une récupération plus rapide.
- Accès : permettre à un outil d'accéder aux résultats du pipeline de données.
Un ingénieur de données doit posséder des connaissances dans les domaines suivants.
- Entreposage de données:
- SGBDR comme MySQL, MS SQL Server, etc.
- Bases de données NoSQL comme HBase, MongoDB, CouchDB, Cassandra, etc.
- Collecte de données:
- API RESTful
- Connaissance de la modélisation des données et expertise en SQL.
- Transformation des données :
- Outils ETL comme Informatica, Datastage, Redpoint, etc.
- Tout langage de script comme Python, Ruby, Perl, etc.
Examinons quelques mythes et idées fausses concernant la vie et le travail de ces ingénieurs de données.
Table des matières
Mythe #1 : Les ingénieurs de données extraient de la valeur des données collectées.
Il y a beaucoup de choses à faire entre la collecte des données et l'extraction des connaissances. Les ingénieurs de données sont principalement responsables de la conversion des données sous une forme adaptée aux analyses et aux travaux des scientifiques. À cet égard, ils n'extraient aucune valeur des données, en fait, ils présentent les données sur une plaque aux data scientists qui en découvrent ensuite la valeur.

Mythe #2 : Les ingénieurs de données doivent rendre toutes les données vierges.
Vous vous rendrez compte de l'absurdité de cela si vous lisez lentement la phrase ci-dessus. Un ingénieur de données traite les flux de données entrants tout au long de la journée. Ces données doivent être nettoyées et traitées immédiatement, de peur qu'elles ne deviennent obsolètes. Par obsolète, nous entendons insipide et vieux. Ainsi, les ingénieurs de données ne cherchent pas à rendre toutes les données vierges. Ils travaillent avec les données disponibles combinées avec d'autres données qui sont nécessaires pour le problème à résoudre. Le nettoyage des ensembles de données complets prendra des mois, et d'ici là, cela ne servira à rien.
Principes fondamentaux de la statistique pour la science des données
Mythe #3 : Les ingénieurs de données vident les données sur des outils prêts à l'emploi et profitent des données propres/exploitables en sortie.
S'il vous plaît, ne le dites pas à haute voix devant un ingénieur de données. Jamais. Aucun ingénieur de données qui se respecte ne tolérera une insulte aussi flagrante. Comme tout autre ingénieur (logiciel, mécanique, chimie, etc.), les ingénieurs de données ont besoin de réfléchir en permanence. Il n'y a pas d'approche unique en matière d'ingénierie des données, et les ingénieurs de données doivent façonner des algorithmes pour s'adapter en permanence à leur cas d'utilisation. Ils doivent être au courant des dernières techniques et méthodes autour de leur travail pour assurer une efficacité parfaite.
Mythe #4 : Les ingénieurs de données ne sont que des ingénieurs logiciels qui travaillent sur le Big Data.
Les ingénieurs logiciels travaillent sur le développement d'applications mobiles/web. Leur travail implique de nombreux problèmes divers et la difficulté réside dans la gestion des tâches - penser, communiquer et organiser le code. Les ingénieurs de données, en revanche, ont généralement moins de problèmes, mais les problèmes individuels sont techniquement beaucoup plus difficiles. Des perspectives aux compétences, tout est entièrement différent pour un ingénieur de données que pour un ingénieur logiciel.
Qui est un Data Scientist, un Data Analyst et un Data Engineer ?
Obtenez une certification en science des données des meilleures universités du monde. Apprenez les programmes Executive PG, les programmes de certificat avancés ou les programmes de maîtrise pour accélérer votre carrière.
L'ingénierie des données est-elle similaire à un rôle informatique classique ?
« Ingénieur de données » et « Ingénieur logiciel » peuvent sembler interchangeables pour ceux qui ne font pas partie du secteur informatique, car les deux reposent en grande partie sur des compétences en programmation. Mais en réalité, ce sont des experts dans différents domaines. L'objectif principal des ingénieurs en logiciel est de créer des sites Web conviviaux. Les ingénieurs de données établissent des systèmes pour stocker, consolider et récupérer des données, qui sont ensuite utilisées par les développeurs de logiciels pour créer des systèmes et des applications. Les ingénieurs de données peuvent également créer et maintenir un pipeline d'intégration et de livraison continues (CI/CD) pour toutes les données organisationnelles, ainsi que des systèmes de contrôle de version pour garantir la qualité des données dans toute l'infrastructure.
Est-il nécessaire d'avoir une formation collégiale ou un diplôme supérieur pour devenir Data Engineer ?
Pour travailler en tant qu'ingénieur de données, vous n'avez pas besoin d'un diplôme, bien que certains employeurs puissent préférer les candidats ayant au moins un baccalauréat. Aucun cours universitaire ou programme en ligne ne peut vous préparer entièrement à créer des systèmes de données capables de déplacer des données provenant de diverses sources, de les modifier et de les stocker pour analyse. Le fait est que les ingénieurs de données les plus performants apprennent beaucoup sur le tas tout en opérant dans le monde réel avec de vrais clients. Mais oui, il est important pour un ingénieur de données d'avoir de bonnes compétences pour travailler avec certains outils comme Amazon Athena, Amazon Redshift, Apache Spark, etc. et acquérir des connaissances sur les meilleures pratiques de gestion des données.
Comment devenir un Data Engineer performant ?
Pour les entreprises axées sur les données, l'ingénierie des données est essentielle, mais que font exactement les ingénieurs de données ? Voici le chemin pour devenir un Data Engineer performant
1. Devenez compétent en programmation : si vous souhaitez devenir un ingénieur de données performant, commencez par approfondir vos bases de programmation. Python et Scala sont les technologies les plus utilisées dans le secteur.
2. Apprenez à automatiser et à créer des scripts : l'apprentissage de l'automatisation est crucial pour les ingénieurs de données. Étant donné qu'il existe de nombreuses tâches à effectuer sur les données, elles peuvent être fastidieuses ou peuvent se produire régulièrement. Certains outils importants pour l'automatisation sont les scripts Shell et le traitement des données dans Shell.
3. Savoir utiliser vos bases de données : Cela peut être fait en apprenant le SQL et la modélisation des données.
4. Techniques de traitement de données adeptes : Pour maîtriser les techniques de traitement de données, il est important d'apprendre à traiter les données par lots et flux, avant de charger les résultats dans les bases de données cibles.
