Le Big data a connu, ces dernières années, un succès fulgurant. Des milliers d'entreprises y ont recours, chaque jour, pour améliorer leur prise de décisions et booster leurs performances. Pour faire face à ce besoin, de nombreux métiers se sont développés dans le secteur de la data intelligence artificielle. C'est le cas de l'ingénieur big data. Mais en quoi consiste précisément ce métier ? Quels en sont les tenants et les aboutissants ?
L'ingénieur en Big data est un spécialiste du traitement de données et des statistiques. Son rôle est de collecter, d'organiser de structurer la data pour la présenter de la manière la plus simple et la plus claire possible.
La première étape est de récupérer toute la data informatique. Une fois cette action réalisée, il la transforme pour l'adapter aux besoins de son entreprise ou de ses clients. Dans un troisième temps, il peut la mettre à disposition des data scientists pour qu'ils l'analysent. Il peut également réaliser lui-même cette partie selon ses compétences et le périmètre de sa fonction.
La data ingénieur se focalise surtout sur la production et le développement des données. En ce sens, c'est un développeur big data.
Il existe plusieurs voies pour accéder à ce métier. Il est possible d'opter pour une spécialité informatique en faisant un bac+5 dans ce domaine. Le mieux est d'ailleurs de faire sa formation dans une école d'ingénierie informatique. Une alternative est d'obtenir un Master ou un doctorat en statistique.
Dans tous les cas, il est important de bien connaître et de maîtriser les fondamentaux de la data science. En ce sens, il est utile et judicieux de commencer à s'intéresser au sujet le plus tôt possible dans son parcours.
L'ingénieur en Big data est surtout et avant tout un expert en informatique. Il doit avoir une solide culture digitale et se tenir au courant des dernières techniques utilisées. En outre, il faut qu'il soit à l'aise dans le maniement des bases de données. Le data ingénieur doit aussi maîtriser les principaux langages de programmation comme Python ou Java.
Il est également attendu qu'il maîtrise certains logiciels spécifiques. Enfin, le data engineer doit comprendre et parler un anglais technique propre à son domaine, connaître le monde de l'entreprise et être en capacité de communiquer, tant à l'oral qu'à l'écrit.
La journée commence souvent par une réunion avec les équipes pour fixer le cap. Ensuite, selon le degré d'avancement du projet, l'ingénieur va travailler sur le design ou sur la mise en production des données.
Il dialogue régulièrement avec les parties prenantes du projet pour s'assurer que les besoins sont bien respectés.
Voici donc les missions et les compétences des spécialistes de la Big data intelligence. Ce métier est multiple et offre des débouchés aux jeunes ingénieurs désireux de tenter une nouvelle aventure !
o Solution Big Data pour une procédure de vente automatique des données historiques de trading
en provenance de différents marchés (CME, LES, CBOT, EUREX, etc.).
o Spark/Scala avec la distribution MapR pour le pré-traitement de données, l’intégration et
l’extraction.
o ElasticSearch pour l’indexation et des requêtes rapides des méta-données.
o Développement d’un démon pour des tâches récurrentes/périodiques.
o Maintenance des plate-formes de développement pour les Data Scientists (Cloudera Hadoop
distribution, JupyterHub).
o Spark/Scala, PySpark, Hive, Impala pour le traitement, l’intégration et l’extraction de données.
o Traitement de langage naturel et Machine Learning (Scikit-Learn,...
Equipes : Datalab & Data Technology Office.
o Rôles : Consultant Ingénieur Big Data/Data Scientist
o Installation et maintenance des plateformes de développement pour les data scientists et data
ingénieurs :
▪ MapR versions 5 & 6.
▪ JupyterHub (Python), Rstudio Server (sous forme d’images Docker), Gitlab.
▪ Monitoring : Grafana, ElasticSearch/APM/FileBeat/Logstash/Kibana.
▪ Maintenance/monitoring d’un serveur Dell PowerEdge 4 GPUs Tesla V100.
o Conception des architectures pour des produits Machine Learning/Intelligence Artificielle :
▪ choix de frameworks (pour le development des APIs et pour les algorithmes Machine Learning),
▪ choix d’algorithmes et de stratégie de traitement de données.
o Django/Flask (Python) + Gunicorn pour les microservices Machine Learning (APIs). Déploiement
des prototypes, MVP (Minimum Viable Products) avec Docker.
o Développement d’une plateforme web (Django/Python, Html, Bootstrap, JQuery, base de données
PostgreSQL) pour des compétitions data science en interne, permettant le classement.
o Apache Drill pour des requêtes de données sur le DataHub (en collaboration avec BNP Paribas CIB,
Paris 19e
).
o Projet WAVE (E-Liquidity) : PySpark et ElasticSearch pour l’intégration, l’indexation et l’extraction
des données de trading (transactions des assets/securities), Python Plotly avec JavaScript pour la
visualisation des données de trading.
o Etude sur Neo4j + Linkurious pour la navigation des bases de données graphe (Ontology, ISO
20022).
o Projet d’expérimentation de Scraping de web avec Selenium pour l’extraction des définitions des
termes financières.
o Projet Client Risk View : Optimisation des requêtes. Réduction du temps de requêtes de 1h ou plus
à environs 20 secondes grâce au changement de technologie.
Projet Smartchaser (en production) : prédiction des étapes à venir sur la vie d’un trade.
▪ Choix & entrainement des modèles machine learning avec Scikit-learn (tâche Data Science).
▪ Déploiement des APIs avec Django + Gunicorn (web) + Celery (exécution des tâches) + Redis
(base de données pour stocker les modèles en mémoire) sur le Cloud ITG (IT Groupe BNP).
o Projet Classification des e-mails (en production, en collaboration avec BNP Paribas CIB, Paris 19e
) :
▪ Modèles de classification des e-mails/documents avec le Traitement de langage naturel et
Machine Learning (Python Scikit-learn, Pandas, Numpy, Gensim, etc.) (tâche Data Science).
▪ Déploiement des APIs (micro-services) avec Flask + Gunicorn sous forme des conteneurs
Docker avec l’aide de Docker-compose sur le Cloud IV2 (BNP CIB).
▪ Intégration avec le serveur Microsoft Exchange pour les opérations telles que déplacer les mails,
les mettre en différents niveaux de priorité, changer la catégorie, etc. Stockage des modèles
Machine Learning : Bucket S3 (Python Boto3). Monitoring des APIs avec ElasticAPM, Kibana.
o Etudes sur les applications des frameworks de Deep Learning pour la classification de texte, la
reconnaissance d’images (Keras, Tensorflow, Pytorch).
o Développement d’une plate-forme web d’expérimentation/démonstration de différents axes
d’application du traitement de langage naturel : chatbot, génération de texte, résumé de texte,
question/réponse.
o Environnements techniques :
▪ Linux RedHat RHEL/Ubuntu; MapR Hadoop, Spark, Docker; API REST.
▪ Python (Scikit-learn, Pandas, Numpy, Gensim, etc.), Shell script, Html, Javascript.
▪ Apache Drill, ElasticSearch, Neo4j, Parquet, Oracle, PostgreSQL, S3 (Python Boto3).
▪ GitLab/BitBucket; Jenkins; Pylint (style de code) ; Elastic stack, Grafana.
▪ Tests unittaires (Pytest, unittest, py-cov, coverage).
▪ DevOps : Confluence, GitLab/BitBucket.