Par Maxime Jumelle
CTO & Co-Founder
Publié le 12 mai 2023
Catégorie Data Engineering
Apache Flink est un système de traitement des données en temps réel et de traitement par lots à grande échelle. Il s'agit d'un projet open source développé par la fondation Apache, conçu pour offrir une haute disponibilité, une faible latence et une grande capacité de traitement des flux de données.
Flink fournit un modèle algorithmique unifié qui permet de traiter les données en temps réel et par lots de manière cohérente. Il prend en charge des opérations avancées telles que la transformation, le filtrage, l'agrégation et la jointure de données en continu. De plus, Flink est capable de gérer des données à grande échelle, ce qui en fait un choix populaire pour le traitement des données en temps réel dans les environnements Big Data.
Dans cet article, nous allons voir pourquoi Flink, contrairement à Spark Streaming, est un véritable framework de traitement de données en temps réel.
L'histoire d'Apache Flink remonte à la fin des années 2000, lorsque le projet Stratosphere a été initié par un groupe de chercheurs de l'Université technique de Berlin, en Allemagne. Le projet visait à développer un système de gestion et de traitement des données pour les environnements Big Data, avec un accent particulier sur le traitement des données en temps réel et parallèle.
Au fil des années, le projet Stratosphere a évolué et a attiré l'attention de la communauté open source. En 2014, le projet a été accepté en tant que projet Apache Incubator, ce qui a marqué le début de la collaboration avec la fondation Apache.
En 2015, le projet a été promu en tant que projet Apache de premier niveau et a été renommé Apache Flink. La version 1.0 d'Apache Flink a été publiée en mars 2015, marquant une étape importante dans le développement du projet.
Depuis lors, Apache Flink a connu une croissance significative et a gagné en popularité. Il est devenu l'un des principaux frameworks de traitement des données en temps réel et par lots, utilisé par de nombreuses entreprises et organisations à travers le monde.
Voyons ensemble ce qui fait la force de Flink. Jusqu'ici, nous avons utilisé Apache Spark, et plus précisément le module Spark Streaming pour traiter des données en temps réel. Bien que facile à prendre en main, puisque l'on ré-utilise les mêmes fonctionnalités sur les RDD ou les DataFrames, Spark Streaming est plus une adaptation des fonctionnalités Spark pour du temps réel. En particulier, Spark Streaming procède à du micro-batch pour découper une source de données temps réel en plusieurs portions de RDD ou DataFrames.
Apache Flink est un framework spécialement dédié aux traitements distribués et stateful.
À lire aussi : découvrez notre formation Data Engineer
Les streams représentent les sources de données, qu'elles proviennent d'un serveur Web ou d'un système de fichiers.
Nous différençions deux types de traitements des streams.
pandas
ou encore Spark SQL. Dans cette situation, le stream est bounded, c'est-à-dire qu'il existe une fin (antérieure ou postérieure) dans la génération des données. Par exemple, c'est le batch processing qui est utilisé lorsque l'on réalise des reportings journaliers.C'est cette dernière famille de traitement de données qui nous intéresse particulièrement.
Le principe de construction des applications Flink est assez simple. Chaque pipeline que l'on construit est appelé un Dataflow dans lequel plusieurs composants interviennent.
map
, un groupBy
, etc.Une des grosses particularités de Flink est que les opérations effectuées peuvent être stateful. Cette notion, assez commune en développement de programmes, signifie que les événements qui surviennent peuvent être traités non pas de manière indépendantes, mais par accumulation de plusieurs (ou tous) événements qui ont été réceptionnés par le passé.
En d'autres termes, il est possible d'effectuer des opérations sur des événements antérieurs, à l'instart des Window functions que nous avions pu utiliser avec Spark Streaming. Mais contraitement à Spark Streaming qui avait besoin d'utiliser des checkpoints, le stateful est pris en charge automatiquement sur Flink.
Très souvent, on considère Apache Flink comme un vrai framework de traitement en temps réel, car il n'utilise pas de micro-batch et a été justement conçu pour cette tâche.
Apache Flink propose un large éventail de fonctionnalités clés qui en font un choix populaire pour le traitement des données en temps réel et par lots à grande échelle. Voici quelques-unes des fonctionnalités les plus importantes de Flink :
À lire aussi : découvrez notre formation Data Engineer
Bien qu'Apache Flink soit un framework de traitement des données en temps réel et par lots très puissant, il présente également certaines limites.
Malgré ces limitations, Flink reste une solution puissante pour le traitement des données en temps réel et par lots, offrant une grande flexibilité et des performances élevées dans de nombreux cas d'utilisation.
Vous souhaitez vous former au Data Engineering ?
Articles similaires
7 févr. 2024
Pendant de nombreuses années, le rôle des Data Engineers était de récupérer des données issues de différentes sources, systèmes de stockage et applications tierces et de les centraliser dans un Data Warehouse, dans le but de pouvoir obtenir une vision complète et organisée des données disponibles.
Maxime Jumelle
CTO & Co-Founder
Lire l'article
4 déc. 2023
Pour de nombreuses entreprises, la mise en place et la maintenant de pipelines de données est une étape cruciale pour avoir à disposition d'une vue d'ensemble nette de toutes les données à disposition. Un des challenges quotidien pour les Data Analysts et Data Engineers consiste à s'assurer que ces pipelines de données puissent répondre aux besoins de toutes les équipes d'une entreprise.
Maxime Jumelle
CTO & Co-Founder
Lire l'article
14 nov. 2023
Pour améliorer les opérations commerciales et maintenir la compétitivité, il est essentiel de gérer efficacement les données en entreprise. Cependant, la diversité des sources de données, leur complexité croissante et la façon dont elles sont stockées peuvent rapidement devenir un problème important.
Maxime Jumelle
CTO & Co-Founder
Lire l'article
60 rue François 1er
75008 Paris
Blent est une plateforme 100% en ligne pour se former aux métiers Tech & Data.
Organisme de formation n°11755985075.
Data Engineering
IA Générative
MLOps
Cloud & DevOps
À propos
Gestion des cookies
© 2025 Blent.ai | Tous droits réservés