Projet “Big Data”
Le but de ce projet est de mettre en place une architecture big data complète comprenant :
- Ingestion
- Transformation et nettoyage
- Exposition de données.
Dans ce projet, vous pouvez choisir les données à récupérer et les outputs finaux, le but étant de
générer de la valeur à partir de ces données.
Vue d'ensemble
Dataset
Choisissez un dataset sur lequel travailler. L’idée étant d’avoir au moins 2 sources de données
pour les combiner et générer de la valeur.
Vous pouvez commencer en travaillant avec des données statiques, puis chercher une API à
ingérer.
Ingestion
Utiliser l’API requests de Python pour créer un job qui récupère des données via une API
dynamique. Le job peut être exécuté tous les jours par exemple. Les données doivent être
stockées sur un data lake organisé, en local ou sur HDFS.
Pour les données statiques, vous pouvez par exemple regarder sur Kaggle.
Vous pouvez chercher une API ou par exemple utiliser ces idées :
• forums : [Link]
• finance : [Link]
• weather : [Link] [Link] https://
[Link]/
• sport : [Link] [Link] https://
[Link]/get-started/overview, [Link]
• news : [Link]
• books : [Link] [Link]
• cinema : [Link] [Link]
[Link]
• music : [Link]
• nature : [Link]
• health : [Link]
• countries : [Link]
• Transport : [Link] https://
[Link]/html/dot/html/about/[Link]
• Open data [Link] par exemple
• Sites qui référencent des APIs [Link] [Link]
[Link], [Link]
Alternativement vous pouvez faire du scraping, c’est-à-dire récupérer le contenu d’une page web
complète. Par exemple la librairie beautifulsoup en Python peut vous aider à faire le parsing
rapidement.
Nettoyage
Après avoir ingéré un nouveau dataset, il faut mettre en place un job qui permet de nettoyer les
données.
Par exemple:
- formatter les données de Json vers parquet
- Normaliser les heures sur le fuseau UTC
- Gérer les valeurs manquantes
- Normaliser les textes (eg. Nike et nike doivent être équivalents)
Combinaison de données
Il peut y avoir plusieurs types de combinaisons.
Exemples d’analyses simples :
- Aggregations et génération de KPI
- Jointures et enrichissement.
Exemples d’analyses avancées :
- Recommendations
- Detection d’anomalies
- Analyse de fraude
Quelques ressources :
[Link]
[Link]
[Link]
cae55cb583ab
Scheduling
Les jobs doivent être schedulées et enchainées en utilisant Airflow (ou Cloud Composer). Cf. TP
Airflow.
Présentation
Vous pouvez présenter vos résultats sous la forme de graphiques dans un Dashboard avec par
exemple Kibana, Grafana ou PowerBI ou Tableau etc.
Deliverables attendus
- Une présentation
- Une documentation technique : architecture du projet, les choix, et quelles difficultés
techniques rencontrées, comment elles ont été résolues
- Lien dépôt git (Github ou équivalent eg. Bitbucket)
- Opt : une vidéo de démonstration, une démonstration live etc