Ingestion des données
Qu'est-ce que l'ingestion de données ?
L'ingestion de données est la première étape du cycle de vie du data engineering. Elle consiste à collecter les données provenant de sources diverses – bases de données, applications SaaS, sources de fichiers, API, appareils IoT, etc. – et à les stocker dans un dépôt centralisé, qui peut être un data lake, un data warehouse ou un lakehouse. C'est l'étape qui permet aux organisations de nettoyer et d'unifier les données afin d'utiliser l'analytique et l'IA pour prendre des décisions data-driven.
Traditionnellement, l'ingestion de données repose sur une combinaison de scripts sur mesure, de cadres open source comme Apache NiFi et Kafka, ou de solutions gérées par des fournisseurs de cloud tels que AWS Glue, Google Cloud Dataflow et Azure Data Factory. La maintenance de ces méthodes exige souvent un effort d'ingénierie important, en particulier lorsque les schémas évoluent et qu'il faut maintenir la cohérence et le traitement en temps réel des données à grande échelle. De nombreuses entreprises s'appuient également sur des outils d'ingestion, de transformation et d'orchestration séparés, ce qui accroît encore la complexité accrue et crée des silos de données.
Contrairement à l'ETL (extraction, transformation, chargement), qui transforme les données avant de les charger, l'ingestion déplace les données brutes directement vers leur destination pour un accès plus rapide et un maximum de flexibilité.
Poursuivez votre exploration
Quels sont les types d'ingestion de données ?
Les méthodes d'ingestion de données varient en fonction du cas d'utilisation. La collecte de données peut se faire par batches programmés, en flux continu ou un hybride des deux.
- Ingestion par batches incrémentiels : collecte des données à des intervalles définis. C'est idéal pour les mises à jour périodiques et les applications dans lesquelles il n'est pas essentiel que les données soient en temps réel.
- Ingestion en streaming : cette méthode ingère les données de manière incrémentielle et peut prendre en charge des scénarios en temps réel, notamment dans les applications nécessitant un accès rapide comme la supervision de l'IoT.
- Ingestion hybride : combine le traitement par batch et le streaming pour réaliser des mises à jour programmées et traiter des flux en temps réel. Cette méthode convient aux opérations qui nécessitent à la fois des mises à jour statiques et un suivi dynamique.
Quels types de données peuvent être ingérés ?
Différentes structures de données nécessitent des techniques d'ingestion et de traitement spécifiques :
- Données non structurées : le traitement des données sans format prédéfini, comme les fichiers texte, les images et les vidéos, exige souvent des outils spécialisés. Ces données sont généralement ingérées par des méthodes par batch ou hybrides.
- Données semi-structurées : les données présentant une certaine structure, comme JSON ou XML, sont aussi compatibles avec l'ingestion par batch qu'en streaming, et leur flexibilité simplifie la prise en charge de l'évolution des attributs.
- Données structurées : les données répondant à un schéma défini (bases de données et tableurs, notamment) peuvent être rapidement importées par batch ou en streaming, ce qui est idéal pour l'analyse et le reporting.
Principaux outils et fonctionnalités d'ingestion de données
Outils courants
L'éventail des outils d'ingestion de données est large. Il existe des options open source comme Apache NiFi et Kafka, connues pour leur flexibilité et leur personnalisation, mais aussi des plateformes commerciales comme la Databricks Data Intelligence Platform, qui réunit l'ingestion, la transformation et l'orchestration en une seule solution.
Bâtie sur la Data Intelligence Platform, Databricks Lakeflow est une solution unifiée et intelligente pour le data engineering. Elle couvre l'ingestion, la transformation et l'orchestration des données.
Lakeflow Connect, un composant de LakeFlow, propose des connecteurs pour diverses sources de données, offrant ainsi des moyens flexibles, faciles et efficaces d'ingérer aussi bien des données structurées que non structurées provenant d'applications d'entreprise, de sources de fichiers et de bases de données.
Lakeflow Connect est capable d'importer de données à partir d'une variété de sources de données différentes :
- Connecteurs gérés : ingèrent de données à l'aide de connecteurs intégrés pour les applications logicielles en tant que service (SaaS) et les bases de données.
- Connecteurs standard : ingèrent les données à partir de stockages d'objets cloud et de sources de streaming comme Kafka à l'aide d'outils de développeur.
- Fichiers : ingèrent des fichiers qui se trouvent sur votre réseau local, qui ont été chargés sur un disque ou téléchargés à partir d'un emplacement internet.
Fonctionnalités essentielles
Les outils d'ingestion efficaces utilisent différentes fonctionnalités pour simplifier le traitement des données :
- Évolution du schéma : s'adapte automatiquement aux modifications dans les structures de données afin de réduire les interventions manuelles.
- Suivi du data lineage : trace l'origine des données afin de respecter les obligations de gouvernance et de conformité.
- Gestion des erreurs et surveillance : identifient et résolvent les problèmes en temps réel pour assurer la fiabilité du chargement des données.
- Évolutivité : maintient un niveau de performance constant face à l'augmentation des volumes de données, ce qui est essentiel pour les opérations à grande échelle.
- Intégration des données : assure une intégration transparente avec les data lakes et les warehouses pour une gestion unifiée des données.
Solutions open source et commerciales
Les outils open source offrent de la flexibilité et du contrôle, mais leur configuration est souvent plus complexe, et c'est pourquoi ils sont plutôt recommandés aux équipes techniques. Databricks associe des fondements open source à un vaste écosystème de partenaires. La Databricks Data Intelligence Platform fournit un mécanisme d'ingestion géré intégrant un cadre de gouvernance intégrée et de l'automatisation afin de réduire les coûts et la complexité des opérations.
Ingestion de données, ETL et pipelines de données
L'ingestion de données est généralement la première étape du traitement qui achemine les données de la collecte à l'analyse, et elle est suivie d'une autre séquence d'opérations. Le but principal de l'ingestion est de collecter les données brutes de différentes sources et de les transférer vers un système de stockage, qu'il s'agisse d'un data lake, d'un data warehouse ou d'un lakehouse. La plupart des organisations procèdent ensuite à des étapes supplémentaires, car les données brutes doivent être affinées avant de devenir utiles pour l'analyse et la prise de décision. L'ingestion de données puise à de nombreuses sources sans altérer le format des données. Ses priorités sont la vitesse, la flexibilité et la disponibilité des données en vue d'autres étapes de traitement.
Quelle est la différence entre l'ingestion de données et l'ETL ?
L'ingestion des données importe des données brutes provenant de diverses sources dans un dépôt sans les transformer, de manière à permettre un accès immédiat à des données non modifiées.
L'ETL implique l'extraction des données, leur transformation selon des exigences spécifiques et leur chargement dans un système cible. Il vise à préparer les données pour l'analyse. (Découvrez la différence entre ETL et ELT.)
Les pipelines de données se chargent de toute la séquence de déplacement des données transformées pour le traitement. Un pipeline effectue plusieurs opérations successives en plus de l'ingestion de données et de l'ETL : tests de validation, suppression des doublons, exécution d'algorithmes de machine learning et traitement des données en streaming.
Quelle approche pour quelle situation ?
L'ingestion de données est idéale pour les applications exigeant un accès rapide aux données brutes, car elle délivre des insights en quasi-temps réel. L'ETL convient mieux aux situations qui nécessitent des données préparées et structurées pour des activités de business intelligence et d'analytique, comme la production de rapports normalisés. Parce qu'ils combinent plusieurs étapes en un processus cohérent, les pipelines de données offrent un cadre plus large pour la gestion de workflows complexes.
Intégration de l'ingestion de données et de l'ETL
Dans les architectures modernes, il est très courant que l'ingestion de données et l'ETL se complètent. Par exemple, les données peuvent, dans un premier temps, être importées dans un lakehouse où les processus ETL vont les préparer pour la réalisation d'analyses et de rapports plus approfondis. Parallèlement à cela, un pipeline de données va automatiser l'ensemble du workflow, de l'ingestion aux tâches de machine learning et d'analytique. Databricks Lakeflow intègre ces processus pour mettre sur pied un workflow unifié offrant une gestion complète des données avec un maximum de flexibilité.
Quels sont les avantages et les défis de l'ingestion de données ?
Avantages
- Insights en temps réel : donne accès aux données les plus récentes pour permettre une prise de décision rapide, indispensable pour les opérations reposant sur des informations à jour.
- Évolutivité accrue : accompagne efficacement l'augmentation des volumes de données de toutes les sources et s'adapte à l'évolution des besoins de l'organisation.
- Amélioration des modèles d'IA : les mises à jour continues améliorent la précision des modèles d'IA, un atout clé pour des applications comme la maintenance prédictive et la segmentation des clients.
- Accès centralisé : évite l'extraction répétée des données pour permettre aux équipes de différents départements d'exploiter efficacement les informations disponibles.
Défis
- Cohérence des données : il est indispensable de mettre en place des mécanismes de validation robustes pour assurer une qualité uniforme à partir de sources diverses.
- Gestion de la latence : la gestion de la latence dans l'ingestion en temps réel peut consommer beaucoup de ressources et exige donc une infrastructure fiable.
- Complexité de l'intégration : combiner les données provenant de sources variées nécessite des outils spécialisés et une expertise, car il faut aligner les formats et résoudre les incompatibilités entre les schémas.
Bonnes pratiques pour l'ingestion de données
Établir un socle solide
Plusieurs bonnes pratiques fondamentales permettent d'assurer l'efficacité, la fiabilité et la gouvernance des workflows d'ingestion :
- Automatisez la surveillance et la gestion des erreurs : la surveillance automatisée détecte et résout les problèmes de qualité des données en temps réel pour garantir la fiabilité des données et minimiser les temps d'arrêt.
- Optimisez dans un souci d'efficacité : utilisez des méthodes d'ingestion incrémentielles pour éviter les transferts de données redondants ; focalisez-vous sur les nouveaux enregistrements et les mises à jour pour gagner du temps et économiser des ressources.
- Intégrez la gouvernance dès le début : alignez les pipelines d'ingestion sur des cadres de gouvernance comme Unity Catalog pour assurer la conformité des données, sécuriser les accès et simplifier le suivi du data lineage.
Optimisation continue
Une fois que les processus d'ingestion sont établis, l'optimisation continue permet de l'adapter à l'évolution des besoins commerciaux et de gérer efficacement l'augmentation des volumes de données.
- Planification stratégique de l'évolutivité : évaluez régulièrement les sources de données, les fréquences d'ingestion et le choix entre batch et streaming pour soutenir la croissance de l'organisation et soutenir les nouveaux objectifs d'analyse en temps réel ou d'archivage, par exemple.
- Qualité et cohérence des données : appliquez des contrôles de validation tout au long du processus d'ingestion pour maintenir l'exactitude des données ; misez sur des outils de gouvernance pour normaliser la manipulation des données et appliquer des standards de qualité à toutes les équipes.
- Surveillance continue et ajustement fin : mettez en place des alertes en cas de problème de latence, de changement de schéma et autres perturbations de l'ingestion. Les équipes pourront ainsi réagir rapidement et ajuster les configurations de façon à maximiser les performances et minimiser les retards.