Stratégies d’ingestion de la data et solutions 2024

Votre stratégie d’ingestion de données dépend aussi de votre architecture data et de vos choix en matière de stockage. La maîtrise des différentes stratégies d’ingestion des données essentielle dans l’ingénierie data. C’est un prérequis pour garantir l’efficacité, la fiabilité et la scalabilité des pipelines de données.

L’ingestion de données est le premier contact entre la donnée brute et les systèmes d’information. Elle pose les bases des analyses futures et de la création de valeur.

Cette étape est intrinsèquement liée à l’architecture globale de traitement des données et aux choix de stockage, qui doivent être adaptés pour répondre aux différents cas d’usages.


Le choix de la stratégie d’ingestion dépend de plusieurs facteurs, comme que le volume des données, la vitesse requise pour l’obtention des insights, la complexité des opérations de transformation, et le niveau de latence acceptable. L’intégration des stratégies d’ingestion dans l’architecture de données et les choix de stockage permet de créer des pipelines robustes, efficaces et créateurs de valeur pour votre entreprise.

1. ETL (Extract, Transform, Load)

L’ETL est la méthode traditionnelle. Les données sont extraites de différentes sources puis transformées pour répondre aux exigences de l’entrepôt de données (nettoyage, agrégation, résumé, etc.). Elle sont ensuite chargées dans le data warehouse. Cette approche est à privilégier lorsque la transformation des données nécessite des calculs lourds qui sont non seulement couteux en ressources informatiques ; mais aussi sont plus efficaces lorsqu’ils sont effectués en dehors de la base de données cible.

Quelques solutions recommandées par nos équipes : Talend Data Fabric, Informatica, Fivetran, Matillon, Apache NiFi, DataStage IBM

2. ELT (Extract, Load, Transform)

L’ELT est une variante de l’ETL. Les données sont d’abord extraites puis chargées dans la destination cible (souvent un data lake ou un entrepôt de données moderne). La transformation est effectuée à postériori. Cette stratégie tire parti de la puissance de calcul des systèmes de stockage modernes pour effectuer les différents traitements. L’ELT est à privilégier dans les environnements qui nécessitent une grande flexibilité et une exploration rapide des données, ainsi que pour les architectures big data.

Quelques solutions recommandées par nos équipes : Stitch, Fivetran, Snowflake (propre langage SQL et fortes capacités de traitement en parallèle), Google BigQuery, Amazon Redshift, DBT

3. Reverse ETL

Le Reverse ETL est une approche relativement nouvelle qui consiste à prendre des données déjà transformées et organisées dans un data warehouse ou un data lake, et à les envoyer vers des systèmes opérationnels comme les CRM ou les plateformes de marketing automatisé. Cette stratégie est utilisée pour enrichir les applications opérationnelles avec des insights approfondis et favoriser ainsi des actions en temps réel basées sur des analyses de données.

Quelques solutions recommandées par nos équipes : Airbyte, Census, Hightouch

4. Streaming Data Ingestion

L’ingestion de données en streaming est une approche où les données sont ingérées en temps réel à mesure qu’elles sont générées. Cette stratégie est essentielle pour les cas d’utilisation qui dépendent de la fraîcheur des données et le traitement en continu des flux, comme la détection des fraudes, la surveillance en temps réel de systèmes (IOT) ou les recommandations instantanées.

Quelques solutions recommandées par nos équipes : Apache Kafka, Azure Data Factory, Google Cloud Dataflow

5. Data Federation

La fédération de données est une approche où les données restent dans leurs systèmes sources et sont virtualisées pour apparaître comme source de données unique. Cette stratégie évite le déplacement physique des données et est utile pour les requêtes ad hoc ou des cas d’utilisation d’accès aux données en temps réel. Elle est supportée par des frameworks comme Hadoop.

6. Change Data Capture (CDC)

Le Change Data Capture est une technique utilisée pour capturer les changements dans les données à leur source et les répliquer dans le système de destination. Le CDC est souvent utilisé pour synchroniser des bases de données en temps réel et pour garantir que les entrepôts de données et les data lakes sont constamment mis à jour avec les dernières informations.

Quelques solutions recommandées par nos équipes : Informatica ou Talend


La stratégie d’ingestion choisie doit être cohérente avec votre architecture data et s’aligner avec les besoins analytiques et opérationnels de votre entreprise.

  • Les architectures data warehouses sont à privilégier pour des besoins d’analyse et de reporting structuré qui requièrent des données bien organisées et souvent transformées avant la phase ingestion.
  • Les data lakes offrent davantage de flexibilité pour les données non structurées ou semi-structurées et supportent à la fois les ingestions en temps réel et par lots, permettant ainsi un traitement et une analyse à postériori.
  • Les architectures en streaming répondent au besoin d’analyses en temps réel car elles gèrent l’ingestion en continu des données via des plateformes spécialisées comme Apache Kafka.
  • Les architectures microservices et orientées événements sont décentralisées et offrent davantage de scalabilité, chaque microservice gérant son propre pipeline de données.
  • Les architectures hybrides mixent entrepôts et lacs de données pour capitaliser sur les avantages de chaque approche.
ARCHITECTURE ET STOCKAGE DES DONNÉS

Les choix de stockage, comme le stockage sur disque, le stockage objet dans le cloud ou les bases de données NoSQL, influencent directement la manière dont les données sont ingérées et gérées.

  • Le stockage sur disque est à privilégier pour un accès rapide et fréquent.

  • Le stockage objet dans le cloud permet plus de scalabilité pour les data lakes avec des capacités d’intégration avec des services d’analyse dans le cloud.

  • Le stockage en bloc soutient les performances en lecture/écriture pour les bases de données particulièrement exigeantes.

  • Le stockage de fichiers distribués est optimal pour l’accès sur plusieurs serveurs.

  • Les bases de données NoSQL sont à privilégier les données non structurées car elles offrent davantage de flexibilité avec les données non structurées.

L’ingestion de données est indissociable de l’architecture de données et des solutions de stockage choisies. Nos data engineers Smartpoint appréhendent cela comme un écosystème interconnecté, optimisé pour les besoins spécifiques de votre organisation. En prenant en considération tous ces critères – cas d’utilisation, fiabilité, destination des données, fréquence d’accès, volume, format, qualité et gestion des données en streaming – ils sont en capacité de construire des bases solides pour la gestion des données qui vous permettront de tirer des insights précieux et d’alimenter vos prises de décision.


Vous avez besoin d’être accompagné dans votre stratégie d’ingestion de données ? Vous avez besoin d’être conseillé pour trouver la solution qui vous correspond ? Vous avez besoin de renfort dans vos équipes ou un chantier à lancer ? Challengez-nous !



BigQuery ou Snowflake ?

Tous deux sont leaders en cloud data warehouses mais quelle plateforme choisir ?

Ce n’est pas la même architecture, ni le même mode de facturation !

Snowflake utilise des capacités séparées de stockage (basé sur des objets) et de calcul (basé sur un modèle d’entrepôt virtuel). Ainsi, il offre de grandes capacités en termes de scalabilité, d’élasticité et de performance. Il permet de palier aux problèmes de sur-dimensionnement en utilisant seulement (et en ne payant) que les ressources dont les utilisateurs ont besoin. La plateforme est très appréciée pour sa facilité de configuration et d’utilisation.
Snowflake facture selon l’utilisation des capacités de stockage et la puissance de calcul nécessaire sur la base de crédit / heure.

BigQuery est serverless et donc augmente automatiquement les ressources en fonction des besoins. Les utilisateurs n’ont plus à se préoccuper de la gestion de l’infrastructure. Sa promesse ? Simplicité et facilité d’utilisation. Le stockage est en colonnes, il est donc optimisé pour les charges analytiques avec des requêtes rapides sur de larges volumes (contrairement aux formats traditionnels).

La couche de calcul est basée sur un modèle de « slots », les utilisateurs peuvent utiliser autant de requêtes qu’ils souhaitent, tant qu’ils ont les slots suffisants pour les lancer sur leurs volumes.
BigQuery facture en fonction des capacités de stockage (actif et inactif), le volume de traitement de données et les insertions en streaming.

A noter que BigQuery n’est disponible que sur Google Cloud … alors que Snowflake est agnostique, il est donc disponible sur toutes les principales plateformes AWS, Azure et GCP mais aussi opérant en cross-clouds.

Vous vous demandez quelle est la plateforme Data Cloud la mieux adaptée à vos besoins et à vos usages spécifiques ? Nos consultants vous accompagnent dans vos choix, laissez-nous un message, nous vous rappelons sous 24 heures.

L’IA générative dans le secteur bancaire, c’est chose faite avec Temenos !

Cette nouvelle solution permet de catégoriser les transactions bancaires de manière automatisée et sécurisée. Ainsi, les banques sont en capacités de communiquer des informations pertinentes et des recommandations en termes d’offres et de produits toujours plus personnalisées. Résultat, une meilleure expérience client digitale et des parcours bancaires numériques inédits.

Et c’est une première ! Temenos est en effet le premier éditeur à déployer l’IA générative et les grands modèles de langages (LLM) dans le secteur bancaire, ce qui permet de mieux comprendre le langage mais aussi la vidéo, l’audio, les images et le code et donc d’ouvrir de nouveaux champs des possibles encore inexplorés en termes d’innovations.

La précision et la rapidité de la catégorisation permet notamment de choisir le meilleur produit en fonction de la prédiction du flux de trésorerie, de délivrer des conseils pour les budgets clients comme l’optimisation des déclarations fiscales, une analyse encore plus fine de l’attrition …

Non seulement ce nouveau produit est désormais intégré à la plateforme Temenos mais il peut aussi être déployé de manière indépendante via API.

La solution est également robuste en termes de sécurité avec des modèles d’entraînement basés sur des données anonymisées et le déploiement des modèles finaux dans l’environnement du client, sans partage d’informations avec des parties externes.

L’IA est déjà intégrées dans de nombreuses solutions proposées par Temenos qui permettent d’améliorer les performances dans la lutte contre le blanchiment, la minimisation de l’attrition, l’évaluation des risques et la tarification sur mesure notamment.

Cas d’usages de l’IA dans le secteur bancaire, c’est déjà une réalité !

  1. Personnalisation des services et des produits financiers : Utilisation de l’IA pour proposer des produits bancaires sur mesure basés sur les comportements, les transactions et les préférences des clients.
  2. Gestion de la relation client : Amélioration de l’interaction client grâce à des chatbots intelligents et des assistants virtuels capables de gérer des demandes toujours plus complexes.
  3. Détection de fraude : Application de l’IA dans les systèmes de détection de fraude pour identifier les transactions suspectes en temps réel.
  4. Automatisation de la conformité : l’IA aide les banques à respecter les réglementations en matière de lutte contre le blanchiment d’argent (AML) et de connaissance du client (KYC).
  5. Optimisation du crédit : Analyse prédictive pour évaluer la solvabilité et le risque de crédit des emprunteurs de manière plus précise.

temenos IA banque expertises integration

Image générée par DALL-E

Le saviez-vous ? Chez Smartpoint, nous avons une practice Modern Banking spécialisée sur Temenos et T24, vous souhaitez expérimenter ces avancées technologiques via un POC ? Challengez-nous !

Optimisez vos pipelines de données avec un ETL Open Source. Top 5 outils.

En tant qu’Ingénieur Data, l’un de vos principaux challenges au quotidien est la capture et la gestion des données. Et c’est précisément à cette étape cruciale qu’interviennent les outils d’Extraction, Transformation et Loading (ETL), qui ont changé la façon dont nous traitons, manipulons et utilisons les données. Avec la montée en puissance des solutions open source, de nombreux outils ETL sont désormais matures et surtout disponibles gratuitement pour vous aider en prendre en charge cette étape particulièrement chronophage de mani!re toujours plus automatisée. Voici quelques-uns des outils ETL open source les plus populaires parmi nos équipes chez Smartpoint.

Pourquoi les outils ETL sont-ils essentiels pour un ingénieur data ?

Les outils ETL permettent de capter et rassembler des data issues de sources multiples, de les transformer en un format exploitable et de les charger dans un système pour des étapes ultérieures notamment à des fins d’analyse. L’automatisation de ce processus via des outils ETL augmente la productivité des équipes et leur efficacité. Cela leur permet de gérer des volumes toujours plus importants, d’améliorer la qualité des données et de faciliter leur intégration avec tous les systèmes qui sont amenés à exploiter ces données.

Pourquoi s’intéresser aux solutions open source ?

Les solutions open source ont plusieurs avantages. Elles sont généralement gratuites ! Les coûts sont donc réduits, ce qui le rend accessibles pour de plus petites structures ou projets. Elles sont souvent plus flexibles et ouvertes que les solutions éditeurs propriétaires, car elles peuvent être personnalisées en fonction des besoins spécifiques et s’intégrer plus facilement avec d’autres outils de votre écosystème data. De plus, les outils open source bénéficient d’une grande communauté de développeurs qui fournissent un support, de la documentation et tout un environnement qui apporte des améliorations continues.

Les outils ETL open source que vous devriez regarder !

1. Talend Open Studio

Cet outil ETL gratuit et open source doté d’une interface graphique très intuitive permet aux utilisateurs d’exporter et d’exécuter des tâches dans différents environnements d’exécution. De plus, Talend peut être connecté à diverses plateformes pour faciliter la construction de pipelines performants. Et à l’origine, c’est du made in France !

2. Apache Kafka

Apache Kafka est un outil de streaming de données open source conçu pour fournir un cadre à haut débit et à faible latence capable de gérer des flux de données en temps réel. Kafka peut être utilisé pour le traitement des applications et des événements et pour découpler les applications des bases de données, ce qui peut être très utile pour les traitements transactionnels en ligne (OLTP) et les entrepôts de données.

3. Apache Camel

Apache Camel facilite l’intégration de différentes applications et technologies dans un pipeline de données. Vous pouvez utiliser Apache Camel pour définir des règles de routage et de médiation dans d’autres langages spécifiques à un domaine, comme Java, XML, Groovy, Kotlin et YAML. Camel, c’est plus de 100 composants pour fournir des informations sur les fonctionnalités utilisées et les options appliquées à ces composants.

4. Logstash

Logstash est une pipeline de données open source qui extrait les données de plusieurs sources, les transforme, puis les charge dans ElasticSearch, un moteur de recherche et d’analyse basé sur JSON. Logstash est un cadre JSON extensible avec plus de 200 plugins lui permettant de réaliser divers processus ETL.

5. Hevo

Cet outil ETL vous permet de répliquer des données provenant de plus de 150 sources vers la destination qui convient le mieux à votre projet, le tout sans avoir à écrire de code ! De plus, Hevo garantit zéro perte de données en surveillant votre pipeline, en indentifiant et en traitant les problèmes avant qu’ils ne puissent causer des dommages.

Ces outils ETL open source offrent une solution efficace pour automatiser vos processus ETL, améliorer la qualité de vos données et optimiser l’efficacité de votre travail. Chacun d’eux présente des caractéristiques uniques qui peuvent s’adapter à vos besoins spécifiques en matière de gestion des données. Alors, n’hésitez pas à les explorer et à voir lequel s’intègre le mieux à votre flux de travail en science des données.

Besoin de conseil pour savoir quelle solution ETL est la plus adaptée à votre projet ? Besoin de compétences en ingénierie Data ? Laissez-nous vos coordonnées, notre expert vous recontacte.

IA & ML, au delà du buzz.

On parle beaucoup d’avancées technologiques en apprentissage automatique et en intelligence artificielle mais dans les faits, les bénéfices attendus ne sont pas toujours au rendez-vous. Voici pourquoi.

Pour fonctionner, ces technologies nécessitent de grandes quantités de données, avec un haut niveau de qualité pour être efficaces.

Le challenge à relever pour les Data Engineers que nous sommes est que les données doivent être pré-traitées et préparées d’une manière spécifique avant de pouvoir être exploitées.

Chez Smartpoint, nous utilisons plus particulièrement Spark, Databricks ou encore Google Cloud Flow car ces outils apportent des solutions intéressantes pour nos clients en termes de :

  1. ÉVOLUTIVITÉ : ces plateformes permettent de traiter de grandes quantités de données et de les préparer pour l’apprentissage automatique à grande échelle.
  2. PARALLÉLISME : ces plateformes permettent de traiter des données en parallèle, ce qui peut accélérer le processus de prétraitement et de préparation des données.
  3. RÉDUCTION DE LA COMPLEXITÉ : ces plateformes peuvent aider à réduire la complexité de la préparation des données en proposant des bibliothèques de fonctions et de modules prêts à l’emploi.
  4. AUTOMATISATION : ces plateformes permettent d’automatiser certaines tâches de préparation de données telles que le nettoyage des données, la normalisation des données, le traitement du langage naturel, etc.
  5. INTÉGRATION : ces plateformes peuvent s’intégrer facilement avec d’autres outils et services d’apprentissage automatique tel que Tensor Flow pour n’en citer qu’un.

En utilisant ces outils, vous pouvez accélérer votre processus de préparation de données, réduire la complexité et améliorer la qualité des données pour tirer pleinement parti des avancées en ML et IA.

DevOps, pourquoi adopter cette approche et le top 10 des meilleurs outils utilisés par nos développeurs.

DevOps, ce désormais incontournable qui permet d’automatiser toujours davantage pour déployer plus rapidement de nouvelles applications ou de nouvelles fonctionnalités.

Selon différentes études dont Upguard (à lire ici https://www.upguard.com/blog/devops-success-stats), voici en quelques chiffres pourquoi adopter cette démarche pour accélérer le time-to-market de vos produits logiciels mais aussi leur qualité tout en facilitant le travail de vos équipes de développement :

  • Les Ops « traditionnels » seraient 40% davantage chronophages et 21% de leur temps serait consacré à gérer les incidents
  • Les DevOps consacreraient 1/3 de leur temps à optimiser l’infrastructure et économiseraient 60% de leur temps à gérer des problèmes d’assistance
  • Les organisations qui ont généralisé les pratiques DevOps constatent à plus de 60% qu’elles ont amélioré la qualité des déploiements mais aussi la fréquence à la laquelle elles mettent sur le marché de nouveaux produits logiciels. Près de 40% considèrent aussi que la production du code est de meilleure qualité.
  • Selon une enquête menée par Puppet Labs, les entreprises qui ont adopté le DevOps déploient des mises à jour 30 fois plus rapidement que celles qui n’ont pas adopté cette approche.
  • Une étude Forrester a mis en avant que les organisations ayant adopté DevOps ont connu une réduction de 63 % des défaillances de production et une réduction de 50 % du temps de résolution des problèmes.

Une batterie d’outils sont disponibles pour améliorer ce processus que ce soit au niveau du code (révision, gestion du code source, fusion), de l’intégration continue, des tests en continu, du packaging des référentiels, de la gestion des releases, de la configuration de l’infrastructure et du monitoring.

Voici notre sélection.

1/ Jenkins (open source) pour l’intégration et la livraison continue (CI/CD) pour l’automatisation et l’exécution de nombreuses tâches avec des centaines de plugins disponibles

2/ Git permet de suivre le développement en cours de l’application tout en conservant plusieurs versions du code source (historique). C’est l’outil incontournable en termes de systèmes de contrôle mais aussi de collaboration.

3/ Kubernetes (open source) pour augmenter les ressources nécessaires ou gérer davantage de conteneurs, il permet en effet aux développeurs de gérer la scalabilité et la gestion en déployant sur un cluster de serveurs, de manière sécurisée.

4/ Ansible (open-source) pour le provisionnement, la gestion et l’automatisation des configurations et le déploiement des applications sur des serveurs distants.

5/ Puppet (open-source) pour automatiser la configuration et la gestion des serveurs (comme Ansible) ainsi que des machines virtuelles.

6/ Terraform (open-source) pour définir les ressources nécessaires on-prem ou dans le cloud.

7/ Docker (open source) pour créer, déployer et gérer des applications conteneurisées indépendamment du système d’exploitation. Il offre aussi des capacités de virtualisation et d’isolations indispensables dans le cadre d’une architecture micro-services.

8/ Grafana (open-source) pour la visualisation des données et le monitoring. Il permet de collecter, analyser et afficher des données issues de multiples sources dont les logs.

9/ Slack pour partager des fichiers, des extraits de code et les intégrer dans vos applications. C’est l’allié de vos équipes pour gagner en productivité. La fonctionnalité Huddle leur permet même de communiquer par la voix !

10/ Jira (outil de ticketing de la suite Atlassian) pour planifier, contrôler et livrer vos produits logiciels sur la base de user stories selon les méthodes agiles. Il a également des fonctionnalités de reporting très appréciables.

Bienvenue dans la modélisation de données.

L’ingénierie Data ne cesse d’évoluer et s’éloigne du traditionnel ETL.

Historiquement, les ingénieurs data se concentraient essentiellement sur la mise en place d’un pipeline ETL (extract, transform, load) pour déplacer les données issues de diverses sources vers un référentiel de données centralisé tel qu’un data warehouse. Cette tâche était particulièrement chronophage, nécessitait beaucoup de codage et de configurations manuelles.

Avec l’arrivée d’outils tels que Archi (Open Source), PowerDesigner de SAP, SqlDBM (Online Data Modeling Tool), IDERA ER/Studio ou encore Erwin Data Modeler de Quest, il est dorénavant possible d’automatiser l’ensemble de ce processus.

Résultat ?
Les ingénieurs data sont en capacités d’extraire les données et de les charger rapidement alors que les volumes collectés et stockés sont exponentiels. Ils peuvent se concentrer sur des tâches plus complexes et à plus forte valeur ajoutée, la modélisation des données.

La modélisation de données est le processus qui permet de créer une vue conceptuelle des données et leur relation entre elles. Elle permet de définir la structure des données, ses attributs, les liens entre elles et donc d’organiser leur stockage de manière optimale. C’est indispensable pour tout projet analytique car cela permet de s’assurer que les données sont correctes, cohérentes, organisées et facilement accessibles.

Trois type de modélisation de données :
👉 Modélisation conceptuelle : Il s’agit de créer une représentation de haut niveau des données, y compris les relations entre les entités, afin de déterminer la structure globale des données.
👉 Modélisation logique : Il s’agit de créer une représentation plus détaillée des données, y compris les attributs de chaque entité et les relations entre les entités.
👉 Modélisation physique: Il s’agit de concevoir la base de données physique et de déterminer la meilleure façon de stocker les données en termes de structures de données, d’indexation et de partitionnement.

Non seulement la modélisation de données permet d’améliorer le Data Management et Data Warehousing mais cela ouvre aussi de nouvelles perspectives en Data Science et en Machine Learning. En effet, comme les données sont stockées de manière cohérente et organisée, les data scientists y ont accès plus facilement et peuvent mieux les exploiter. Les résultats sont d’autant améliorés et beaucoup plus fiables.

En rationalisant le pipeline de données et en permettant aux ingénieurs data de se concentrer sur des tâches plus complexes, la modélisation des données peut aider les organisations à mieux utiliser leurs données et à libérer tout le potentiel de la data science et de l’apprentissage automatique.

Data Modeling

Sources :

https://www.guru99.com/data-modelling-conceptual-logical.html

https://publication.hikmahtechnologies.com/data-engineering-evolves-from-etl-to-the-world-of-data-modelling-2175c8083f31

Comment reconnaitre un bon ingénieur Data Full Stack quand vous en croisez un ?

Dans la data, c’est exactement comme dans le développement logiciel de produits ! Avant, il y avait des développeurs spécialisés front et d’autres back-end, d’autres chargés que de la mise en production, d’autres des tests, etc. En data, on avait aussi des DBA. Chacun avait un rôle bien précis. Mais depuis les pratiques Agile, le DevOps, le CI/CD et l’automatisation des tests se sont démocratisés en même temps que la course à l’innovation et les contraintes de time-to-market se sont accentuées.

Être ingénieur data aujourd’hui ne se résume plus à la conception de Datawarehouse, la mise en place d’ETL, le lancement de requêtes SQL et la restitution dans des tableaux de bord. Certes, il ne s’agit pas d’être spécialiste en tout mais un ingénieur data fullstack a désormais des connaissances étendues dans de nombreux domaines.

Yazid Nechi, Président de Smartpoint

Comment reconnaitre un bon ingénieur Data ?

  • Il sait programmer ! Il maîtrise en effet au moins un langage de programmation et chez smartpoint, c’est plusieurs : Java, Python, Scala pour les incontournables.
  • Il connait les outils du big data comme Hadoop, Hive, Spark, Pig Sqoop
  • Il sait concevoir et exploiter un Data Warehouse et pour ce faire, les meilleurs outils à maîtriser sont Amazon Redshift, Google Big Query et bien entendu Snowflake. Mener des actions d’ETL étant indispensables à sa fonction, il a également des compétences en Talend, informatica entre autres.
  • C’est un expert en bases de données relationnelles (SQL) qu’elles soient analytiques ou transactionnelles (OLTP, OLAP).
  • Il maîtrise aussi les bases de données en NoSQL qui sont de différentes natures en fonction du modèle de données

Architecture

C’est la base, il doit comprendre comment sont organisées les données et quels sont les objectifs en termes de traitement et de gestion des données. Cela suppose aussi d’avoir une bonne culture générale sur les nouvelles méthodes de data ingestion (comme Kafka), les différentes alternatives de stockage ainsi que les normes de sécurité pour la protection des données (dont la gestion des droits et des authentifications).

SQL

C’est une compétence certes traditionnelle mais toujours indispensable !

ETL (ou ELT)

C’est la base du métier : mettre en place le pipeline de données pour capturer, transformer et charger dans le système cible. Cela demande des compétences en modélisation des données mais aussi la connaissance d’un ou plusieurs outils. Citons évidemment Talend, Informatica mais aussi des nouveaux entrants comme Fivetran ou Stitch.

Visualisation de données

C’est un incontournable même si historiquement, c’est une compétence davantage attendue chez les analystes de données mais dans le même logique de maîtrise du flux de données de bout en bout, nous encourageons nos ingénieurs data à connaître au moins un des outils comme Tableau ou plus récemment Looker ou ThoughtSpot.

Spark

C’est un must-have en ingénierie des données, Spark est le framework open source désormais incontournable en raison notamment de sa très riche bibliothèque pour le traitement par lots, le streaming, les analytics, le ML, la datascience, etc. 

Connaissances en programmation

Avant SQL et un outil comme Informatica suffisait. Aujourd’hui un ingénieur data intervient dans le pipeline CI/CD et pour le maîtriser, il est nécessaire aujourd’hui d’avoir aussi des compétences en langages de programmation comme Java, Python ou encore Scala.

Expériences en développement

L’intégration et le développement continus (CI/CD) sont aujourd’hui la norme (ou presque) ainsi que le DevOps et cela vaut également pour l’ingénieur Data. Il doit avoir des connaissances en gestion de la base de code, en testing, etc. La connaissance d’outils tels que Jenkins, DataDog, Gitlab, Jira sont donc un vrai plus !

L’incontournable cloud !

Impossible aujourd’hui de passer à côté de cette compétence alors que les entreprises ont de plus en plus recours au cloud pour accéder, traiter, gérer, stocker et sécuriser leurs données. Cela permet de bénéficier de puissance de traitement et de calcul inégalé sans parler de la scalabilité. Chaque ingénieur Data se doit de connaître au moins un cloud provider comme GCP ou Azure.

Vous cherchez un Data engineer fullstack avec toutes ces compétences ? Il est surement chez Smartpoint 🤩 Vous voulez gagnez en compétences et vous investir dans de supers projets data ? Nous recrutons aussi aujourd’hui nos futurs talents !

Sources :

Python vs Rust, quel langage est le plus adapté à votre projet Data ?

indétrônable Python en ingénierie de la Data ? la langage de programmation Rust pourrait bien lui voler la vedette !

Au niveau des langages de programmation, Python reste incontournable mais Rust intéresse de plus en plus d’ingénieurs data … D’ailleurs Meta le recommande désormais avec C++ et Python qui est désormais davantage cantonné aux applications de Data Science ou de Machine Learnings. Microsoft estime quant à lui que C et C++ ne sont pas assez sûrs pour les logiciels critiques et investit de plus en plus dans Rust.

Pourquoi cet engouement ?

  • Rust permet de garantir un haut niveau de performance dans le traitement de larges volumes de données et offre un bien meilleur niveau de sécurité et de contrôle de qualité du code.
  • Il revient moins cher que Python qui est beaucoup lourd lors de la mise en production. Python nécessite en effet plus de tests et peut générer des interruptions en production. C’est plus facile – et plus précoce – d’identifier d’éventuel bugs avec Rust !
  • Il permet aussi de mieux optimiser le stockage des données et l’usage en mémoire. Il a en effet la particularité d’allouer la mémoire par un système de gestion de la propriété au moment de la compilation. Ainsi, les données inutilisées sont nettoyées automatiquement sans que personne n’ait besoin de penser à allouer ou libérer de la mémoire. Alors que les cloud providers appliquent des tarifs élevés lorsque les entreprises nécessitent plus de mémoires ou de nœuds, c’est un vrai avantage !

Certes la communauté est encore un peu réduite mais elle est très active.

Un inconvénient ? Oui, la courbe d’apprentissage est plus longue que les autres langages (partez sur deux semaines !) et comme Rust reste tout de même encore récent, vous n’avez pas encore toutes les ressources et autres bibliothèques dont vous pourriez avoir besoin (cf STACK OVERFLOW).

Trois raisons pour lesquels vous devriez sérieusement envisager de passer à Rust ?

  1. Vous avez besoin de traiter de grandes quantités de données
  2. Votre projet exige des performances élevées
  3. Vous menez des opérations très gourmandes en CPU comme l’exécution d’algorithmes

Et trois raisons pour lesquelles vous avez bien raison d’utiliser ce bon vieux Python (il remonte à 1991)

  1. Vous avez besoin d’un langage simple, flexible et facile à coder (accessible même aux débutants)
  2. Votre projet consomme beaucoup d’IA et de ML
  3. Vous êtes davantage dans la data science et les performances ne sont pas l’enjeu principal

Sources :

Data Mesh, les 4 principes fondamentaux de l’architecture data de demain.

En introduction, rappelons qu’un data mesh (ou maillage de données) ne remplace absolument pas un data warehouse ou un data lake mais qu’en quelque sorte, il étend leurs capacités dans un contexte où les volumes, les formats, les sources, les localisations et les usages d’exploitation des données continuent à croitre de manière exponentielle.

Un Data Mesh, c’est d’abord un concept architectural qui se rapproche d’une architecture microservice dans sa conception avec des composants qui peuvent être modifiés ou mis à jour individuellement, et être utilisés par plusieurs équipes.

Un Data mesh se base sur 4 principes fondamentaux qui sont :

  1. La propriété des données est orientée domaine donc les données sont décentralisées car elles sont exploitées dans chaque unité business (ou sujet restreint) qui en a besoin pour fonctionner. Chaque domaine peut donc avoir un schéma spécifique. Chaque domaine gère ses propres pipelines de données et en a la responsabilité.
  2. La gouvernance des données est fédérée afin que le système soit viable dans la durée (normes d’intéropérabilité et de qualité, culture DevOps, sémantique, etc.). Sans gouvernance inter-domaines, les données se retrouvent cloisonnées et on perd l’intérêt de cette architecture en termes d’agilité et d’évolutivité.
  3. Le Product Thinking ou Data as product. Chaque équipe, au sein de chaque domaine, considère que les différentes ressources de données dont elle a besoin sont les différents composants qui forment un produit. Chaque produit de données est donc créé par les équipes des domaines et consommé par des clients qui peuvent être des ingénieurs data, des data scientists, des développeurs, etc. Chaque produit de données doit donc être accessible, adressable, fiable, définissable et intéropérable.
  4. Self-service via une infrastructure de données en tant que plateforme. Ainsi tous les utilisateurs peuvent s’approvisionner en données exploitables selon leurs besoins. Cela permet également de s’affranchir de la complexité et de rationaliser les processus de stockage et de traitement.

Est-ce que vous avez besoin d’un data mesh ? Est-ce que votre data warehouse suffit pour gérer et exploiter convenablement votre écosystème de données ? Est-ce qu’un data lake est plus approprié ?

Nous partageons avec vous cet article d’Actualité Informatique qui a mis en place un sondage simple qui va vous donner un score. Si vous obtenez une note supérieure à 30, il serait judicieux d’étudier cette solution ensemble !

Pour aller plus loin, voici également un article intéressant publié par Terradata.

Principes d’architectures Data Mesh