ARCHITECTURE
5/11/2024
Configuration Modern Data StackPhoto de Marie de Vesvrotte
Marie de Vesvrotte
Responsable Marketing

Les 6 configurations de Modern Data Stack

Avant de rentrer dans le vif du sujet, sachez qu’il existe une multitude de combinaisons possibles pour créer votre Modern Data Stack. 

Outils qui composent la Modern Data Stack

Vous l’aurez compris, le choix est varié ! 

L’objectif pour nous n’est pas de dresser une simple liste d’outils, mais de vous aider à comprendre comment aligner ces technologies pour optimiser l’impact métier. Chaque configuration présentée ici répond à des besoins spécifiques, que ce soit pour des entreprises débutantes, ou celles cherchant à tirer le meilleur parti d’une infrastructure existante.

Optimiser sa Data Stack autour de Snowflake

Avec sa capacité à gérer des données structurées et semi-structurées (JSON, Parquet, Avro), Snowflake devient un pivot central d'une Modern Data Stack.

Si votre entreprise utilise déjà Snowflake, il existe des outils complémentaires qui vous aideront à maximiser les performances et l'efficacité de votre environnement. Voici quelques solutions qui, ensemble, forment une architecture de données optimale en exploitant pleinement les capacités de cet entrepôt de données.

Architecture d'une Modern Data Stack autour de Snowflake

Fivetran pour l’ingestion des données 

Fivetran s'intègre parfaitement à Snowflake en automatisant l'ingestion de données provenant de centaines de sources (CRM, ERP, bases de données transactionnelles, SaaS). 

Cette automatisation garantit des flux de données toujours actualisés sans effort manuel constant. Le choix de Fivetran repose sur sa capacité à réduire la latence grâce à son processus CDC (Change Data Capture), qui ne synchronise que les modifications apportées aux données, optimisant ainsi l'utilisation des ressources. 

Cette approche, en exploitant le SQL natif de Snowflake pour les transformations, minimise les coûts et maximise les performances en évitant des pipelines ETL complexes et coûteux.

dbt (Data Build Tool) pour la transformation des données

Dans un environnement centré sur Snowflake, dbt (Data Build Tool) est un choix naturel pour orchestrer les transformations de données. Contrairement aux ETL traditionnels, dbt suit un modèle ELT,  où les transformations sont effectuées après la phase d’ingestion, directement dans Snowflake

dbt est particulièrement adapté aux équipes qui maîtrisent le langage SQL et souhaitent modéliser des transformations de manière reproductible et auditable. Sa gestion des dépendances et son intégration native avec Snowflake permettent de créer des workflows performants, tout en réduisant la complexité opérationnelle.

Manipulation et Data Apps avec KNIME

KNIME offre un complément parfait à Snowflake en permettant des manipulations de données complexes et des analyses avancées, le tout via une interface visuelle no-code.

KNIME peut se connecter à Snowflake pour ingérer, nettoyer, enrichir, et transformer des jeux de données volumineux. Il permet aussi d'intégrer des étapes de machine learning, de text mining, ou encore de modélisation avancée grâce à ses milliers de nœuds disponibles.

En créant des applications analytiques interactives, KNIME renforce l'autonomie des métiers, en leur permettant de manipuler des données issues de Snowflake sans expertise technique approfondie.

Power BI pour la Data Visualisation  

Power BI s'intègre nativement à Snowflake via un connecteur optimisé pour les grandes volumétries de données, tirant parti des requêtes pushdown. Cela permet d’effectuer des calculs directement dans Snowflake, réduisant ainsi la charge sur Power BI tout en exploitant la scalabilité du data warehouse. 

Les utilisateurs peuvent facilement construire des dashboards interactifs en temps réel, en s'appuyant sur des tables ou des vues de Snowflake sans avoir besoin de répliquer les données en local.

Power BI permet également de gérer des scénarios d’analyse avancée en se connectant à des modèles de données enrichis via dbt ou KNIME, intégrant ainsi des calculs complexes, des prévisions ou des modèles d’intelligence artificielle développés en amont.

La modularité de Power BI combinée à l’élasticité de Snowflake offre aux entreprises une puissante solution de Business Intelligence en temps réel.

Mendix pour le développement d’applications de données

Mendix est une plateforme low-code permettant aux équipes métiers de créer rapidement des applications personnalisées pour exploiter les données de Snowflake.

Les équipes peuvent concevoir des applications pour le suivi de KPI, la gestion de processus, ou encore la visualisation de données spécifiques, le tout dans un environnement collaboratif et accessible.

Points critiques à considérer : 

  • Snowflake propose une facturation basée sur la consommation, tant pour le stockage que pour le calcul. Il est important d'optimiser les requêtes pour éviter des surcoûts en période de pic, notamment en configurant des warehouses de taille adaptée ou en activant les clusters automatiques pour gérer les variations de charge. 
  • dbt permet une orchestration robuste des transformations SQL, mais pour les environnements complexes avec de multiples sources et destinations, il peut être nécessaire d'utiliser des orchestrateurs externes comme Apache Airflow pour automatiser les dépendances entre Fivetran, dbt, et KNIME.
  • Bien que Snowflake offre des performances exceptionnelles, des requêtes mal optimisées peuvent entraîner des ralentissements, notamment dans des environnements multitenants ou lors d’opérations complexes sur des données semi-structurées. Il est recommandé d’utiliser des techniques comme le partitionnement, le clustering automatique et les vues matérialisées pour maintenir des performances constantes.

Exploiter pleinement l’écosystème Microsoft pour sa Modern Data Stack

Ecosystème Microsoft pour construire une Modern Data Stack

L’écosystème Microsoft propose une solution complète et intégrée pour bâtir une Modern Data Stack, en utilisant des services comme Azure Synapse Analytics, Azure SQL Database, et la Power Platform. Ce modèle est particulièrement pertinent pour les entreprises qui utilisent déjà SQL Server sur site et cherchent à moderniser leurs entrepôts de données tout en exploitant des solutions basées sur le cloud. En tirant parti de Microsoft Fabric, les entreprises peuvent adopter une plateforme SaaS entièrement gérée, qui s'étend à mesure que les besoins croissent.

Dans un premier temps, les PME peuvent adopter une approche lift-and-shift pour migrer leurs bases de données SQL existantes vers Azure SQL Managed Instance ou Azure SQL Database. Cette stratégie minimise les perturbations, en conservant les outils et les processus traditionnels tels que SSIS, SSRS, et SSAS. Ces services cloud offrent une compatibilité étroite avec SQL Server Management Studio (SSMS), permettant une transition fluide tout en réduisant la charge administrative liée à la gestion des infrastructures sur site.

Pour l’ingestion des données, les entreprises peuvent utiliser Azure Data Factory ou les pipelines de Microsoft Fabric, qui orchestrent l’ingestion et la transformation des données depuis diverses sources — qu'il s'agisse de données structurées, semi-structurées, ou non structurées. Les données peuvent être stockées dans Azure Data Lake Storage (ADLS) pour une gestion centralisée et une analyse future.

En parallèle, les entreprises peuvent exploiter Power BI pour la visualisation des données et Microsoft Dynamics 365 pour créer des tableaux de bord intelligents à partir de sources de données augmentées. Azure Event Hubs peut être utilisé pour ingérer des flux de données en temps réel, intégrés à Fabric Real-Time Analytics pour des besoins d’analyse instantanée.

Cette configuration permet également d’intégrer des services d'intelligence artificielle, en particulier via Azure Machine Learning et les services Azure AI, pour développer des modèles prédictifs et les intégrer dans des processus métier existants. Azure Synapse Analytics offre une plateforme unifiée qui combine ingestion, transformation, et analyse des données en temps réel.

L’exploitation de l’écosystème Microsoft permet une modernisation progressive, adaptée aux PME comme aux grandes organisations. Elle offre une approche modulaire qui permet de commencer par moderniser les infrastructures existantes avant d’étendre les capacités analytiques et d'intelligence artificielle au fil du temps.

Points critiques à considérer : 

  • Bien que Azure et Microsoft Fabric offrent une architecture flexible et scalable, il est important de surveiller les coûts liés aux capacités cloud, notamment pour les services sans serveur (par exemple, SQL Analytics Endpoint et Spark pool). Il faut bien choisir les niveaux de service en fonction des besoins pour éviter les surcoûts inattendus.
  • Si la compatibilité avec les outils SQL traditionnels est assurée, il est important de vérifier que toutes les applications héritées et les processus métier existants fonctionnent correctement après la migration vers Azure SQL Managed Instance ou Azure SQL Database.
  • Bien que Azure Synapse Analytics et SQL Analytics Endpoint offrent des capacités d’analyse puissante, il est important d’optimiser les requêtes et d’ajuster les ressources allouées pour garantir des performances constantes, en particulier lors des pics d’utilisation.
  • Pour les entreprises qui opèrent dans des environnements hybrides (on-premise et cloud), la gestion de ces environnements mixtes via Azure Arc ou d'autres services peut s'avérer difficile à long terme. Il faut s'assurer que les données sont synchronisées entre les différents environnements et que les performances ne sont pas affectées par cette double infrastructure.

Construire une Modern Data Stack avec AWS 

Architecture d'une Modern Data Stack avec AWS

Amazon Web Services (AWS) propose un ensemble complet de services pour bâtir une Modern Data Stack, offrant une flexibilité et une scalabilité adaptées à des entreprises de toutes tailles.  

Pour l’ingestion des données, AWS Glue peut être utilisé pour créer des pipelines ETL serverless, intégrant des sources de données variées, qu’elles soient structurées ou non structurées. Les données peuvent être stockées dans Amazon S3, un service de stockage objet hautement scalable et peu coûteux, utilisé comme socle de nombreux Data Lakes.

Pour le traitement des données, Amazon Redshift constitue un entrepôt de données analytique puissant et flexible, capable de traiter de grandes quantités de données en temps réel. Son intégration avec des services comme AWS Lambda permet de créer des pipelines de traitement d’événements en temps réel, pour des besoins de streaming de données et d’analyses instantanées.

Sur le plan des transformations, dbt s’intègre parfaitement avec Redshift pour orchestrer les transformations SQL en adoptant un modèle ELT. Cette intégration facilite le déploiement de transformations dans des environnements cloud complexes, en exploitant la puissance de Redshift tout en automatisant les tâches via dbt.

Pour la visualisation des données, Amazon QuickSight fournit des dashboards interactifs directement reliés aux données stockées dans Redshift ou S3. QuickSight exploite l’analyse en mémoire et peut traiter des modèles complexes sans répliquer les données, ce qui améliore l'efficacité et réduit les coûts de transfert.

Points critiques à considérer : 

  • Bien qu’AWS offre des outils puissants, les coûts peuvent rapidement augmenter en fonction du volume de données stockées et des services utilisés (par exemple, Redshift ou Glue). Il est essentiel d’optimiser les coûts en configurant des politiques de cycle de vie dans S3 pour archiver automatiquement les données inactives ou en activant les fonctions d’optimisation des coûts de Redshift (comme le redimensionnement automatique).
  • L'architecture AWS permet une flexibilité considérable, mais l'intégration de plusieurs services (Glue, Lambda, Redshift, etc.) peut introduire une complexité dans la gestion des pipelines de données. L’utilisation d’un orchestrateur comme Apache Airflow ou AWS Step Functions peut aider à automatiser et à coordonner les workflows complexes.

Déployer une Modern Data Stack avec l’infrastructure Google Cloud 

Modern Data Stack avec l'infrastructure Google Cloud

Google Cloud propose une architecture Modern Data Stack performante, s’appuyant sur des services cloud natifs. Ce modèle est particulièrement attractif pour les entreprises déjà familières avec les solutions Google, comme Google Workspace ou Google Analytics, qui peuvent s’intégrer naturellement avec les services proposés.

BigQuery, l’entrepôt de données serverless de Google Cloud, joue un rôle central dans cette configuration. BigQuery est conçu pour l’analyse en temps réel de grandes quantités de données, et sa compatibilité avec SQL simplifie son adoption. Grâce à sa capacité à séparer le stockage et le calcul, BigQuery permet d’adapter les ressources en fonction des besoins sans avoir à gérer des clusters ou des serveurs.

Pour l’ingestion des données, Google Cloud Dataflow peut être utilisé pour orchestrer des pipelines ETL et ELT flexibles, permettant de traiter des flux de données batch et en temps réel. Google Cloud Pub/Sub, un service de messaging scalable, complète cette configuration en fournissant un traitement en temps réel pour des scénarios d’analyse prédictive ou de machine learning.

Pour les transformations de données, dbt peut être utilisé avec BigQuery pour structurer et automatiser les processus de modélisation de données. Google propose également des outils comme Dataprep pour nettoyer et transformer visuellement les données sans écrire de code.

Pour la visualisation et la distribution des données, Google Data Studio, Looker, et BigQuery ML s’intègrent nativement à BigQuery, offrant des options complètes de création de rapports et de dashboards en temps réel. Cela permet aux utilisateurs de visualiser les données en exploitant toute la puissance de BigQuery sans avoir à transférer les données vers des outils externes.

Vertex AI, quant à lui, ouvre la porte à des modèles d’IA avancée directement sur la Modern Data Stack de Google Cloud, permettant une démocratisation des projets IA.

Points critiques à considérer : 

  • BigQuery facture les utilisateurs en fonction du volume de données scannées par chaque requête, ce qui peut entraîner des coûts élevés pour les entreprises avec de gros volumes de données. Il est important d’optimiser les requêtes, par exemple en limitant le nombre de colonnes scannées ou en utilisant des partitions et des clusters pour réduire le volume de données à traiter.
  • Si Pub/Sub et Dataflow permettent de gérer des flux en temps réel, il est essentiel d’optimiser la gestion des pics de volume pour éviter les goulets d’étranglement. Des ajustements dans les configurations d’allocation des ressources (comme le scaling automatique) sont nécessaires pour assurer une continuité dans les traitements en temps réel sans perte de données.
  • Les outils Google sont bien intégrés, mais si des intégrations externes sont nécessaires, validez la compatibilité des API. Pensez aussi à l’utilisation d’API Management (ex : Apigee) pour contrôler et sécuriser les accès.

Intégrer une Modern Data Stack autour d’un Data Lake existant

Certaines entreprises, notamment celles disposant de grandes quantités de données historiques, préfèrent construire leur Modern Data Stack autour d’un Data Lake existant. 

Un Data Lake, qu’il soit basé sur Amazon S3, Azure Data Lake, ou Google Cloud Storage, offre une solution économique et scalable pour stocker toutes sortes de données, depuis des fichiers CSV ou JSON jusqu’à des images ou des vidéos. 

Pour exploiter au mieux votre Data Lake, nous conseillons d’y associer des outils performants de traitement et d’analyse des données. 

L’un des principaux avantages de cette architecture est la flexibilité d’analyser ces données à la demande. Par exemple, des frameworks comme Apache Spark ou Databricks permettent de traiter des données massives directement depuis le Data Lake, facilitant ainsi les processus de nettoyage, de transformation, et de préparation des données pour des analyses plus poussées ou des projets de machine learning. Ces outils distribuent le calcul sur plusieurs nœuds, ce qui accélère le traitement des données volumineuses.

Une architecture hybride est également courante : les données brutes restent dans le Data Lake, tandis qu’un entrepôt de données, comme Snowflake ou BigQuery, est utilisé pour les analyses structurées. Cela permet de tirer parti de la scalabilité et du faible coût de stockage d’un Data Lake tout en garantissant des performances optimales pour les requêtes SQL sur des données transformées et prêtes à l’analyse.

Points critiques à considérer : 

  • Sans une gouvernance stricte, un Data Lake peut rapidement se transformer en "data swamp" (marais de données), où les données sont mal catégorisées et difficilement exploitables. Il est essentiel de mettre en place des catalogues de données et des processus de gestion des métadonnées pour assurer une traçabilité et une qualité des données.
  • Les données non structurées ou semi-structurées peuvent être lourdes à traiter. Pour éviter des temps de traitement longs et des coûts élevés, il est important d'utiliser des formats de stockage optimisés comme Parquet ou ORC, ainsi que des techniques comme le partitionnement et l'indexation.
  • ​​Bien qu'un Data Lake soit flexible, des outils supplémentaires comme des entrepôts de données ou des solutions d'ETL/ELT (par exemple, dbt ou Fivetran) sont souvent nécessaires pour structurer et transformer les données en vue de leur analyse. La complexité de l'infrastructure augmente donc rapidement et nécessite une orchestration rigoureuse.

Adopter une approche open-source pour construire une Modern Data Stack

Architecture d'une Modern Data Stack open-source

Pour les entreprises cherchant à réduire leur dépendance aux solutions propriétaires ou à limiter les coûts, l’adoption d’une Modern Data Stack open-source peut représenter une alternative attractive. 

Pour l’ingestion de données, Apache Kafka est un outil clé qui permet de gérer des flux de données en temps réel. Il est couramment utilisé pour collecter et diffuser des événements provenant de sources variées (applications, capteurs IoT, logs) et les diriger vers des systèmes de traitement ou de stockage. Kafka s'intègre facilement à d’autres outils open-source comme Apache Flink ou Spark pour le traitement en flux.

En ce qui concerne le stockage et la gestion des données, des bases de données open-source comme PostgreSQL, ClickHouse, ou Apache Druid sont souvent choisies. PostgreSQL est particulièrement populaire pour les applications transactionnelles et analytiques légères, tandis que ClickHouse est prisé pour ses capacités de traitement analytique massivement parallèle, permettant des analyses à grande échelle, souvent plus performantes que les entrepôts de données traditionnels.

Pour la transformation des données, des outils comme dbt Core (qui supporte des bases open-source) permettent d’orchestrer et de modéliser des transformations SQL, assurant un processus reproductible et documenté. Apache Airflow est également un excellent choix pour orchestrer des workflows complexes et automatiser les pipelines de données entre différents outils et systèmes.

Enfin, concernant la visualisation et l’analyse de données, Superset, une solution open-source développée par Airbnb, permet de créer des dashboards interactifs, se connectant directement aux bases de données open-source comme PostgreSQL ou ClickHouse pour visualiser les résultats des analyses en temps réel.

Points critiques à considérer : 

  • L’approche open-source nécessite des compétences techniques avancées pour installer, configurer et maintenir les différents outils. Contrairement aux solutions propriétaires, il n’y a pas de support commercial centralisé, ce qui peut être un frein pour les équipes moins expérimentées.
  • L’intégration de plusieurs outils open-source peut devenir complexe, surtout lorsque des services de différentes origines doivent collaborer. Des outils comme Airflow peuvent aider à l’orchestration, mais il est important de bien définir les dépendances entre les composants pour éviter les silos de données ou les défaillances.

⚠️ Conseil : l’un des principes clés de la Modern Data Stack sont sa modularité et son interopérabilité. La force de cette architecture repose sur sa capacité à intégrer des outils de différents fournisseurs et à combiner les meilleures technologies disponibles sur le marché, sans être enfermé dans un seul écosystème.

Par exemple, même dans un environnement majoritairement basé sur Google Cloud, rien n’empêche d’utiliser Snowflake comme entrepôt de données ou Fivetran pour l’ingestion des données. De la même manière, un environnement AWS peut très bien tirer parti d’outils comme dbt ou Apache Airflow pour l’orchestration et la transformation des données. Cette flexibilité permet de construire une infrastructure sur mesure, optimisée pour les besoins spécifiques de l’entreprise, tout en garantissant une agilité à long terme.

Rond violet avec fleche vers le haut