Pour ce projet, l'objectif est d'explorer et d'analyser une base de données SQLite contenant des statistiques sur le football (joueurs, équipes et matchs), afin de créer des tableaux de bord permettant de déterminer les caractéristiques des joueurs et des équipes au fil des saisons. Plus précisément, il s'agit de répondre aux questions métier suivantes :
La première étape consiste à évaluer la qualité des données sources SQLite à l'aide de l'outil d'administration et de requête DBeaver. Ensuite, de concevoir un modèle de données pour l'entrepôt de données qui sera utilisé pour les tableaux de bord.
L'analyse révèle que les données des équipes et des joueurs sont stockées en lignes dans la base de données SQLite, alors qu'il est préférable de les stocker en colonnes pour le modèle de données de l'entrepôt.
Modèle de la base SQLite source
La deuxième étape consiste à créer un nouveau modèle de données, puis à réaliser l'entrepôt à partir de ce modèle pour y charger par la suite les données nécessaires aux tableaux de bord.
Le nouveau modèle de données est un modèle en constellation comprenant six tables de dimensions gravitant autour de deux tables de faits.
L'entrepôt de données est généré à l'aide d'un script SQL à partir du nouveau modèle dans le système de gestion de base de données PostgreSQL.
Modèle de données pour l'entrepôt
La troisième étape consiste à charger les données nécessaires dans les tables de l'entrepôt PostgreSQL à l'aide de l'outil de préparation et d'intégration de données Talend Open Studio.
Tout d'abord il est nécessaire de connecter les bases de données SQLite et PostgreSQL.
Puis les tables de dimensions et de faits sont traitées dans des jobs à l’aide des trois composants principaux suivant :
Pour traiter l’intégration des données en respectant le modèle il est également nécéssaire de convertir les types de données à l'aide du composant tConvertType, de concerver les données les plus récentes à l'aide des composants tSortRow et tUniqRow, de transposer des lignes en colonnes à l'aide d'un filtre dans le composant tMap et de faire un calcul de l'âge avec la méthode TalendDate.diffDateFloor().
Jobs des tables de dimensions
Jobs des tables de faits
La troisième étape consiste à charger les données nécessaires dans les tables de l'entrepôt PostgreSQL à l'aide de l'outil de préparation et d'intégration de données Talend Open Studio.
Tout d'abord il est nécessaire de connecter les bases de données SQLite et PostgreSQL.
Puis les tables de dimensions et de faits sont traitées dans des jobs à l’aide des trois composants principaux suivant :
Pour traiter l’intégration des données en respectant le modèle il est également nécéssaire de convertir les types de données à l'aide du composant tConvertType, de concerver les données les plus récentes à l'aide des composants tSortRow et tUniqRow, de transposer des lignes en colonnes à l'aide d'un filtre dans le composant tMap et de faire un calcul de l'âge avec la méthode TalendDate.diffDateFloor().
La quatrième étape consiste à importer les données de l'entrepôt PostgreSQL dans PowerBI, puis à vérifier l'intégrité des données dans PowerQuery avant de définir les relations entre les tables.
Modèle relationnel de données
Une fois les données importées et le modèle relationnel défini, il est donc possible de passer à la réalisation des tableaux de bord afin de répondre aux questions métiers de l'objectif initial :
Quelle est la composition des équipes ?
Le premier tableau de bord ci-dessous représente la composition des équipes au fil des saisons. Il est possible de sélectionner une ou plusieurs équipes dans un premier segment, puis une ou plusieurs saisons dans un second segment, ce qui permet d’obtenir un tableau avec la composition des joueurs ainsi que leurs caractéristiques.
Quelle est l'évolution des caractéristiques des joueurs ?
Le second tableau de bord ci-dessous représente l’évolution des caractéristiques des joueurs au fil des saisons. Il est possible de sélectionner une ou plusieurs équipes dans un premier segment, puis une ou plusieurs saisons dans un second segment, ce qui permet d’obtenir deux visualisations. Le premier est un graphique en courbes avec les moyennes des caractéristiques des joueurs composant les équipes sélectionnées par saisons. Le deuxième est un tableau de ces mêmes moyennes. Il y a également une carte pour mettre en évidence la moyenne globale par équipe pour une caractéristique à choisir dans une liste déroulante.
Quelles sont les performances des équipes en termes de buts et de victoires ?
Le troisième tableau de bord ci-dessous représente l'évolution des buts et des victoires par équipe dans chaque ligue au fil des saisons. Il est possible de sélectionner une ou plusieurs équipes regroupées par ligues dans un premier segment, puis une ou plusieurs saisons dans un second segment, ce qui permet d’obtenir deux graphiques en courbes. Le premier représente le nombre de buts marqués et le nombre de buts encaissés. Le second représente le nombre de victoires, de défaites et de matchs nuls. Il y a également des cartes permettant de mettre en évidence le taux de buts marqués d'une part, et le taux de victoire d'autre part.
Une fois les données importées et le modèle relationnel défini, il est donc possible de passer à la réalisation des tableaux de bord afin de répondre aux questions métiers de l'objectif initial :
Quelle est la composition des équipes ?
Le premier tableau de bord ci-dessous représente la composition des équipes au fil des saisons. Il est possible de sélectionner une ou plusieurs équipes dans un premier segment, puis une ou plusieurs saisons dans un second segment, ce qui permet d’obtenir un tableau avec la composition des joueurs ainsi que leurs caractéristiques.
Quelle est l'évolution des caractéristiques des joueurs ?
Le second tableau de bord ci-dessous représente l’évolution des caractéristiques des joueurs au fil des saisons. Il est possible de sélectionner une ou plusieurs équipes dans un premier segment, puis une ou plusieurs saisons dans un second segment, ce qui permet d’obtenir deux visualisations. Le premier est un graphique en courbes avec les moyennes des caractéristiques des joueurs composant les équipes sélectionnées par saisons. Le deuxième est un tableau de ces mêmes moyennes. Il y a également une carte pour mettre en évidence la moyenne globale par équipe pour une caractéristique à choisir dans une liste déroulante.
Quelles sont les performances des équipes en termes de buts et de victoires ?
Le troisième tableau de bord ci-dessous représente l'évolution des buts et des victoires par équipe dans chaque ligue au fil des saisons. Il est possible de sélectionner une ou plusieurs équipes regroupées par ligues dans un premier segment, puis une ou plusieurs saisons dans un second segment, ce qui permet d’obtenir deux graphiques en courbes. Le premier représente le nombre de buts marqués et le nombre de buts encaissés. Le second représente le nombre de victoires, de défaites et de matchs nuls. Il y a également des cartes permettant de mettre en évidence le taux de buts marqués d'une part, et le taux de victoire d'autre part.