Cette série de deux articles fait suite à une conférence présentée par Gwen Shapira, employée chez Confluent, membre du PMC d’Apache Kafka et co-auteure du livre « Apache Kafka – The définitive guide ». Avant de passer en revue quelques patterns de mise en œuvre du streaming face à des besoins d’intégration de données avec Apache Kafka. Nous allons commencer avec un premier article sur l’évolution de l’intégration de données en entreprise en analysant trois technologies clefs et leurs limitations. Ensuite nous expliquerons l’avènement du streaming dans un second article.
Data Warehouse
Ce sont des « entrepôts de données », nés du besoin de centraliser les données des différentes bases opérationnelles de l’entreprise. Ceci dans le but d’effectuer des analyses sur plusieurs dimensions. Ils présentent les contraintes et limitations suivantes :
Il est difficile de concevoir un schéma unique pour l’intégration de toutes les données provenant de diverses sources,
Il est difficile de transformer des données avec les outils ETL,
Les mises à jour des Data Warehouses sont très lentes car elles sont en général effectuées par des batchs journaliers, hebdomadaires ou même mensuels.
Data Lake
Concept popularisé par l’émergence des plateformes Hadoop. Les Data Lakes, ou lac de données, permettent de s’affranchir des problèmes de modélisation de schéma d’intégration unique en permettant d’insérer toutes les données, quelles que soient leur nature et leur origine. Ils simplifient ainsi les processus d’alimentation traditionnels mais présentent les contraintes et limitations suivantes :
L’exploitation du data lake demeure en mode batch. Même si les batch peuvent désormais être lancés à tout moment, cela reste en deçà du temps réel où toute nouvelle information serait immédiatement prise en compte dès sa publication,
Le principe du data lake est que les données sont déversées sans transformation préalable, laissant ainsi cette tâche aux consommateurs. La contrainte qui est levée pour l’écriture est déplacée à la lecture, schema-on-write et schema-on-read.
Le streaming data processing
C’est le traitement des données d’un flux au fur et à mesure qu’elles arrivent. Il présente l’avantage de permettre aux utilisateurs et aux systèmes intéressés par le traitement du flux, de pouvoir réagir instantanément aux évolutions en cours. Ce que ne permettent pas les systèmes d’intégration vus précédemment. C’est un paradigme d’intégration qui a une application très intéressante dans les architectures à base de micro services.
L’impact de l’avènement streaming data processing sur les métiers autour du traitement des données
La transition du Data Warehouse vers le Data Lake et le streaming se fait aussi avec un changement des rôles des différents profils intervenants sur la chaine d’acquisition et d’exploitation des données.
Avec le Data Warehouse, des ingénieurs spécialisés avec les outils ETL ont le principal rôle dans le processus d’acquisition des données. Mais avec les Data Lake et le streaming, ce sont les ingénieurs applicatifs qui ont la responsabilité de publier directement leurs données à destination des autres consommateurs.
Même si la publication des données ne se fait plus avec les logiciels ETL spécialisés, il n’en demeure pas moins que les développeurs doivent toujours gérer l’échange de données entre différentes applications utilisant différents formats et assurer la cohérence des données partagées entre ces applications. Ce qui peut être finalement vu comme un processus ETL.
Nous avons abordé dans cet article l’évolution de l’intégration des données en entreprise vers le streaming data processing pour pouvoir réagir toujours plus vite à l’arrivée de données provenant de sources multiples. Dans le prochain article, nous verrons en détail différents patterns de Streaming pour mieux comprendre comment traiter ce flux de données.