Code Monkey home page Code Monkey logo

data_pipeline-project's Introduction

Projet_Pipeline_de_donnée

Introduction

Notre projet pour le module Data Pipeline se concentre sur une étude approfondie des données politiques en prévision des élections présidentielles de 2022.

Le travail est divisé en trois parties:

  • Collecte des données.
  • Préparation et Traitement des données ( nettoyage , Suppression ..).
  • Orchestration et automatisation du pipeline .

Les Technologies utilisés

  • apache Kafka
  • apache Spark
  • apache Nifi
  • apache nifi-registry
  • apache Airflow

La Collecte des données

Cette première étape est essentielle pour fournir au pipeline de données les informations nécessaires. Vous trouverez ci-dessous l'illustration du schéma créé avec NiFi.

nifi f nifi2

Notre processus de gestion des données s'articule autour de deux flux distincts, chacun comportant des étapes spécifiques pour assurer la qualité et l'intégrité des informations.

Le premier flux débute avec le composant "GetFile", récupérant les fichiers initiaux, suivis du processus "ConvertRecordToCSVFile" pour la conversion des éléments au format CSV. Ensuite, le composant "EvaluateJsonPath" est utilisé pour évaluer les chemins JSON, et l'étape "UpdateAttribute" permet d'apporter des modifications nécessaires avant de publier les données vers le système Kafka via le composant "PublishKafka".

Parallèlement, le deuxième flux commence avec un nouveau "GetFile" pour récupérer les fichiers initiaux, qui sont ensuite validés avec le composant "ValidateCSV". Les fichiers validés sont fusionnés à l'aide du processus "MergeContent", simplifiant ainsi leur gestion en raison de leur taille minimale. Le fichier fusionné est renommé en "MergedData.csv" via le composant "UpdateAttribute", suivi d'une étape de téléchargement grâce au composant "PutFile". Cette approche structurée garantit une manipulation efficace des données tout au long du processus, facilitant ainsi une utilisation ultérieure dans des environnements comme Spark.

ci dessous une image sur le bucket realisé sur nifi_registry nifi_registry

Traitement des données

Une fois les données collectées, nous avons effectués plusieurs opérations principalement Pyspark sur les données collectés tel que:

  • Suppression des doublons.
  • changement des valeurs.
  • Traitement des dates.
  • Ajout de colonnes .
  • visualisation des données.
  • Realisation des plots d'analyse de données comme ci dessous.

Nb_vote_par_dprt nbr_moy_vote_par_condidat

nb_vote_par_condidat_genre

Orchestration et automatisation du pipeline de données .

Dans le but d'orchestrer et d'automatiser notre flut de données, nous avons un DAG sur Airflow:

Chaque jour, le DAG sur Airflow s'active pour orchestrer les étapes cruciales visant à acquérir et traiter les données spécifiques à chaque candidat..

data_pipeline-project's People

Contributors

ihebdabbabi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.