Projet

Gaming Data Pipeline

ETL
Orchestration
NoSQL

Explorer le projet sur GitHub

Iridescent ripples of a bright blue and pink liquid

Introduction

Les meilleurs jeux sont ceux que les joueurs élèvent au sommet.

Ce projet a pour objectif d’améliorer le catalogue de vente en ligne d’une enseigne de jeux vidéo en proposant, sur sa page d’accueil et dans ses campagnes de communication (newsletter, réseaux sociaux), une liste des jeux les mieux notés et les plus appréciés de la communauté sur les derniers jours. Pour cela, nous devons récupérer et traiter les avis les plus récents de nos clients en ligne afin de déterminer les jeux les mieux notés.

Arcu dui vivamus arcu felis bibendum ut tristique et egestas. Eget gravida cum sociis natoque penatibus. Cras fermentum odio eu feugiat pretium nibh. Proin nibh nisl condimentum id venenatis. Porta nibh venenatis cras sed felis eget velit. Id diam vel quam elementum pulvinar etiam non.

Achitecture du Projet

Pipeline de Données

Le pipeline de données est conçu pour alimenter automatiquement un Data Warehouse (base de données SQL) avec les informations sur les jeux les mieux notés, tous les jours, en utilisant les données depuis une base MongoDB.

Contrainte et Exigences

  1. Exactitude et Facilité de Manipulation: Les informations sur les jeux doivent être exactes et facilement manipulables pour les différents métiers.
  2. Compatibilité SQL: Le Data Warehouse doit être compatible SQL (MySQL, PostgreSQL ou MariaDB).
  3. Gestion des Doublons: Le pipeline doit gérer les doublons et remplacer les valeurs existantes si elles sont déjà présentes.
  4. Période de Temps: Seuls les avis des 6 derniers mois seront pris en compte.
  5. Quantité de Jeux: Les 15 jeux les mieux notés seront ajoutés chaque jour au Data Warehouse.

Description des Données

Les données sont disponibles sous forme de fichier compressé au format JSON. Chaque observation contient les caractéristiques suivantes :

  • reviewerID : Identifiant unique de l’utilisateur.
  • verified : Indique si l’utilisateur est un utilisateur vérifié.
  • asin : Identifiant unique du produit.
  • reviewerName : Nom ou pseudo de l’utilisateur.
  • vote : Nombre de votes associés à l’avis de l’utilisateur.
  • style : Style associé au jeu vidéo.
  • reviewText : Description complète de l’avis.
  • overall : Note attribuée par l’utilisateur au jeu vidéo.
  • summary : Résumé de l’avis.
  • unixReviewTime : Timestamp de l’avis.
  • reviewTime : Date de l’avis.
  • image : URL des images jointes par l’utilisateur.