Data Collection & Data storage

Tags :
  • MON
  • 2023-2024
  • temps 2
Auteurs :
  • Kawtar Bahri

Pendant mon parcours académique et mes stages, j'ai développé des compétences en matière de transformation, de traitement et de visualisation des données, sans pour autant avoir une compréhension approfondie de leur origine ou du processus de collecte. Il est temps que j'apprenne les notions de collecte et de stockage des données.

Un MOOC sur la collection et le stockage de données

Les MOOCs que j’avais l’intention de suivre ne traite pas le thème choisi dans sa globalité. En effet, comme ils sont réalisés par AWS, le contenu est technique et très adapté aux outils d’AWS (comme Kinesis Data Streams ou Firehose, Kinesis API) qui sont payants.

Stockage de données

En parlant du stockage des données, on pense principalement au fondement physique où les informations sont conservées de manière permanente. Toutefois, dans ce MON, je m’intéresse plutôt à l'architecture intellectuelle qui donne sens, cohérence et efficacité à ces données : les structures de bases de données.

Fondamentaux du Système de Base de Données

Pour aborder cette partie j'ai suivi ce Cours qui m’a permis de mettre en pratique un cours de SQL que j’ai déjà suivi. Pour ce, j’ai utilisé Visual Studio Community et une base de données des films fournie par le mooc.

J'ai appris comment créer une base de données, la connecter au serveur, et manipuler cette base de données (Insertion, Sélection, Suppression et actualisation des données).

Types de bases de données

Type de Base de Données Avantages Inconvénients Critère de choix
Relationnelle - Structure claire et bien définie
- Langage SQL standard
- Transactions ACID (Atomicité, Cohérence, Isolation, Durabilité)
- Moins flexible pour les données non structurées
- Difficulté à évoluer avec des schémas changeants
- Difficulté à gérer les données hiérarchiques
- Besoin de conformité avec un schéma fixe
- Intégrité des données et relations importantes
NoSQL (Not Only SQL) - Flexibilité pour différents types de données
- Évolutivité horizontale*
- Gestion de gros volumes de données
- Manque de normes et de cohérence entre les systèmes
- Moins adapté pour les requêtes complexes
- Risque de duplication des données
- Grande variété de données non structurées, semi-structurées
- Besoin d'une évolutivité horizontale
Orientée graphe - Modélisation naturelle des relations
- Performances élevées pour les requêtes de graphes
- Complexité pour les structures de données simples
- Pas adapté pour tous les types de données
- Analyses et requêtes basées sur des relations complexes
- Données fortement liées ou nécessitant une modélisation graphique

SQL permet de garantir l’unicité de la donnée (non dupliquée), ce qui était utile dans une époque où le cout de stockage etait extrêmement élevé. Et comme ce n’est plus le cas, on peut maintenant se permettre de dupliquer la donnée en faisant du NoSQL, pour répondre à un besoin d’agilité (pouvoir modifier la donnée sans se soucier de sa structure).

Evidement cette liste n’est pas exhaustive, on peut trouver d’autres types de base des données (Base de données embarquée, base de données XML/JSON, ...)

*L'évolutivité horizontale se réfère à la capacité d'une base de données à gérer une augmentation de la charge de travail en ajoutant simplement de nouveaux serveurs au lieu d'augmenter la capacité des serveurs existants. Contrairement à l'évolutivité verticale, qui implique l'ajout de ressources (comme la RAM, le processeur, etc.) à un serveur existant, l'évolutivité horizontale permet de répartir la charge sur plusieurs serveurs, formant souvent un cluster.

Collecte de données

Web scrapping

Le web scraping, également appelé extraction de données web, est une technique informatique qui consiste à extraire des informations ou des données à partir de sites web. C'est un moyen efficace d'obtenir des données structurées à partir de pages web, que ce soit pour la recherche, l'analyse de marché, la surveillance concurrentielle, ou d'autres applications.

J'ai suivi le tutoriel de Webscraping Lab How-To. Cette vidéo fait partie de Computational Social Science Capstone Project, réalisé par University of California sur Coursera. Elle explique comment collecter de la donnée, en donnant un exemple à partir d’une page d'un chaine youtube.

Pour ce, j'ai utilisé l'extension WebScaper.io sur mon navigateur, sélectionné quelque données à collecter, et visualisé ma base de données.

Contrainte : Le WebScraper sélectionne les informations souhaitées pour toute la page. Toutefois, dans les réseaux sociaux tout le contenu n’est désormais pas totalement chargé, vu que cela ce fait dynamiquement en fonction du système de recommendation. D'où la nécessité d'utiliser un outil de contrôle de navigateur automatisé.

Autres moyens de collecte de données

Sécurité des données

Lors de la collecte des données sur le web, il convient d'être attentif aux règles et coutumes qui s'y rapportent.

Conclusion :

Ce que j'ai fait

  • Commencé les cours d'AWS 3h
  • Suivi un MOOC de Fondamentaux du Système de Base de Données 2h
  • Effectué des recherches sur les bases de données 2h
  • Suivi un MOOC de Web scrapping 3h
  • Effectué des recherches sur la sécurité des données 1h

Ce que j'ai appris

  • Choisir le type de base de données selon le besoin du projet
  • Manipuler des bases de données avec SQL (J’ai déjà étudié SQL mais je ne l’ai jamais mis en pratique avant)
  • Collecter les données aves du web scraping
  • Contraintes et risques de collecte de données