Article de reference

Ingénierie des données

L'ingénierie des données est une approche de génie logiciel visant à concevoir des systèmes de données permettant la collecte et l'utilisation de ces données . Ces dernières ser...

de génie logiciel visant à concevoir des systèmes de données permettant la collecte et l'utilisation de ces données . Ces dernières servent généralement à des analyses ultérieures et à la science des données , qui font souvent appel à l'apprentissage automatique . Rendre les données exploitables nécessite généralement des ressources de calcul et de stockage importantes , ainsi que leur traitement .

d'ingénierie de l'information » (MII) a été créé pour décrire la conception de bases de données et l'utilisation de logiciels d'analyse et de traitement des données. Ces techniques étaient destinées aux administrateurs de bases de données (ABD) et aux analystes de systèmes, et reposaient sur une compréhension des besoins opérationnels des organisations dans les années 1980. Elles visaient notamment à faciliter la transition entre la planification stratégique et les systèmes d'information. L'un des principaux contributeurs à l'origine de cette méthodologie (souvent considéré comme le « père » de la méthodologie d'ingénierie de l'information) fut l'Australien Clive Finkelstein , qui a publié plusieurs articles à ce sujet entre 1976 et 1980 et a également co-écrit avec James Martin un rapport influent informatiques dans la plupart des entreprises. D'autres équipes utilisaient ensuite les données pour leur travail (par exemple, pour la production de rapports), et il y avait généralement peu de chevauchement dans les compétences en matière de données entre ces différentes parties de l'entreprise.

Au début des années 2010, avec l'essor d' Internet , l'augmentation massive des volumes, de la vitesse et de la variété des données a donné naissance au terme « big data » pour décrire les données elles-mêmes, et les entreprises technologiques axées sur les données, comme Facebook et Airbnb, ont commencé à utiliser l'expression « ingénieur de données » . Face à cette nouvelle ampleur des données, les grandes entreprises telles que Google , Facebook, Amazon , Apple , Microsoft et Netflix ont délaissé les techniques traditionnelles d'ETL et de stockage. Elles ont créé l'ingénierie des données , une branche du génie logiciel centrée sur les données, et plus particulièrement sur l'infrastructure , l'entreposage , la protection des données , la cybersécurité , l'exploration , la modélisation , le traitement et la gestion des métadonnées . Ce changement d'approche s'est particulièrement concentré sur le cloud computing . Les données ont commencé à être gérées et utilisées par de nombreux services de l'entreprise, tels que les ventes et le marketing , et non plus seulement par le service informatique.

Outils

Calculer

Le calcul haute performance est essentiel au traitement et à l'analyse des données. Une approche particulièrement répandue pour l'ingénierie des données est la programmation par flux de données , où le calcul est représenté par un graphe orienté (graphe de flux de données) ; les nœuds correspondent aux opérations et les arêtes au flux des données. Parmi les implémentations populaires, on trouve Apache Spark et TensorFlow , dédié à l' apprentissage profond . Des implémentations plus récentes, comme le flux de données le calcul incrémental pour un traitement des données beaucoup plus efficace.

Stockage

Les données sont stockées de diverses manières, et l'un des principaux facteurs déterminants est leur utilisation future. Les ingénieurs de données optimisent les systèmes de stockage et de traitement des données afin de réduire les coûts. Ils utilisent la compression, le partitionnement et l'archivage des données .

Bases de données

Si les données sont structurées et qu'un traitement transactionnel en ligne est requis, on utilise généralement des bases de données . À l'origine, on utilisait principalement des bases de données relationnelles , offrant de fortes garanties de validité des transactions ACID ; la plupart des bases de données relationnelles utilisent SQL pour leurs requêtes. Cependant, avec l'explosion des données dans les années 2010, les bases de données NoSQL ont également gagné en popularité, car elles permettent une mise à l'échelle horizontale plus aisée que les bases de données relationnelles en renonçant aux garanties de validité des transactions ACID, et en réduisant l' incompatibilité entre les modèles objet et relationnel . Plus récemment, les bases de données NewSQL — qui tentent de permettre une mise à l'échelle horizontale tout en conservant les garanties ACID — ont gagné en popularité.

entrepôts de données

qu'un traitement analytique en ligne est requis (mais pas un traitement transactionnel en ligne), les entrepôts de données constituent une solution privilégiée. Ils permettent l'analyse, l'exploration et l'intelligence artificielle des données à une échelle bien plus vaste que celle permise par les bases de données, et, de fait, les données circulent souvent des bases de données vers les entrepôts de données. Les analystes métier , les ingénieurs et les data scientists peuvent accéder aux entrepôts de données à l'aide d'outils tels que SQL ou des logiciels de business intelligence .

lacs de données

Un lac de données est un référentiel centralisé permettant de stocker, traiter et sécuriser de grands volumes de données. Il peut contenir des données structurées issues de bases de données relationnelles , des données semi-structurées , des données non structurées et des données binaires . Un lac de données peut être créé sur site ou dans un environnement cloud, à l'aide des services de fournisseurs de cloud public tels qu'Amazon , Microsoft ou Google .

Fichiers

Si les données sont moins structurées, elles sont souvent simplement stockées sous forme de fichiers . Plusieurs options sont possibles :

Gestion

La multitude et la diversité des processus de données et des emplacements de stockage peuvent s'avérer complexes pour les utilisateurs. C'est pourquoi un système de gestion des flux de travail (par exemple Airflow ) a été mis en place pour permettre la spécification, la création et le suivi des tâches liées aux données. Ces tâches sont souvent représentées sous forme de graphe acyclique orienté (DAG) .

Cycle de vie

planification d'entreprise

Les objectifs stratégiques fixés par les dirigeants sont formalisés dans les plans d'affaires clés, dont la définition précise figure dans les plans tactiques et la mise en œuvre dans les plans opérationnels. La plupart des entreprises reconnaissent aujourd'hui la nécessité fondamentale d'élaborer un plan d'affaires conforme à cette stratégie. La mise en œuvre de ces plans s'avère souvent complexe en raison du manque de transparence aux niveaux tactique et opérationnel des organisations. Ce type de planification requiert un retour d'information permettant de corriger rapidement les problèmes liés à une mauvaise communication ou à une interprétation erronée du plan d'affaires.

Conception de systèmes

La conception des systèmes de données comprend plusieurs composantes telles que l'architecture des plateformes de données et la conception des entrepôts de données.

Modélisation des données

modèle de données , un modèle abstrait destiné à décrire les données et les relations entre les différentes parties des données.

Rôles

Ingénieur de données

Un ingénieur de données est un type d'ingénieur logiciel qui crée des pipelines ETL ( extraction, transformation et chargement) pour le traitement du Big Data afin de gérer le flux de données au sein de l'organisation. Cela permet d'exploiter d'énormes volumes de données et de les transformer en informations exploitables . Il se concentre sur la préparation des données pour la production et sur des aspects tels que les formats, la résilience, la mise à l'échelle et la sécurité. Les ingénieurs de données sont généralement issus du génie logiciel et maîtrisent des langages de programmation comme Java , Python , Scala et Rust . Ils sont également familiers avec les bases de données, l'architecture, le cloud computing et le développement logiciel Agile .

data scientist

les mathématiques , les algorithmes , les statistiques et l'apprentissage automatique .