Intro

" The Global Database of Events, Language, and Tone (GDELT), est une initiative pour construire un catalogue de comportements et de croyances sociales à travers le monde, reliant chaque personne, organisation, lieu, dénombrement, thème, source d’information, et événement à travers la planète en un seul réseau massif qui capture ce qui se passe dans le monde, le contexte, les implications ainsi que la perception des gens sur chaque jour".

Cette base de données a eu beaucoup d’utilisations, pour mieux comprendre l’évolution et l’impact de la crise financière du 2008 (Bayesian dynamic financial networks with time-varying predictors) ou analyser l’évolution des relations entre des pays impliquées dans des conflits (Massive Media Event Data Analysis to Assess World-Wide Political Conflict and Instability ).

L’objectif du projet est de concevoir un système qui permet d’analyser le jeu de donnees GDELT et ses sources de donnees.

gdelt linguistic geography
Locations mentioned in global news coverage monitored by GDELT 2015-2018, colored by the primary language of coverage mentioning each location ( Seeing The World Through The Eyes Of Others: Mass Machine Translation, KALEV LEETARU)

Contexte

A. Jeu de données

GDELT est composé de trois types de fichiers CSV:

La totalité des fichiers du jeu de données est indexé par deux fichiers:

Pour plus d’infos consulter la documentation.

Le jeu de données de GDELT v2.0 est disponible également sur Google BigQuery. Cependant vous ne devez pas l’utiliser directement pour votre projet. Vous pouvez cependant l’utiliser pour explorer la structure des données, la génération des types de données ou utiliser des données connexes (ex codes pays etc…​) .

Objectif

L’objectif de ce projet est de proposer un système de stockage distribué, résilient et performant sur AWS pour repondre aux question suivantes:

  1. afficher le nombre d’articles/évènements qu’il y a eu pour chaque triplet (jour, pays de l’évènement, langue de l’article).

  2. pour un pays donné en paramètre, affichez les évènements qui y ont eu place triées par le nombre de mentions (tri décroissant); permettez une agrégation par jour/mois/année

  3. pour une source de donnés passée en paramètre (gkg.SourceCommonName) affichez les thèmes, personnes, lieux dont les articles de cette sources parlent ainsi que le le nombre d’articles et le ton moyen des articles (pour chaque thème/personne/lieu); permettez une agrégation par jour/mois/année.

  4. dresser la cartographie des relations entre les pays d’après le ton des articles : pour chaque paire (pays1, pays2), calculer le nombre d’article, le ton moyen (aggrégations sur Année/Mois/Jour, filtrage par pays ou carré de coordonnées)

C. Contraintes

  1. Vous devez utiliser au moins 1 technologie vue en cours en expliquant les raisons de votre choix (SQL/Cassandra/MongoDB/Spark/Neo4j).

  2. Vous devez concevoir un système distribué et tolérant aux pannes (le système doit pouvoir continuer après la perte d’un noeud).

  3. Vous devez pre-charger une année de données dans votre cluster

  4. Vous devez utiliser AWS pour déployer le cluster.

Budget AWS à ne pas depasser: 300E par groupe.

D. Les livrables

Vous devrez fournir:

  • une archive avec votre code source (ou un lien sur github…​)

  • une courte présentation de votre architecture, modélisation, les avantages et inconvénients, des choix de modélisation et d’architecture, volumétrie, limites et contraintes (max 10 slides de présentation)

F. Organisation

Vous travaillerez par groupe de 4-5 personnes. La soutenance se déroulera de la manière suivante:

  1. Présentation: 10 minutes

  2. Démo: 10 minutes

  3. Questions & Réponses : 10 minutes

Lors de la soutenance, les données devront être préalablement chargées dans votre cluster. Vous devez démontrer la résilience de votre système de stocquage en tuant un noeud de votre clusteur.

Ressources