formations/cesi/intro_big_data/presentation/slides.md

6.9 KiB
Raw Blame History

Introduction au "Big Data"

William Petit - S.C.O.P. Cadoles



Vocabulaire


Qu'est ce qu'une "donnée" ?

Une donnée est une description élémentaire dune réalité. Cest par exemple une observation ou une mesure. [...]

Elle est dépourvue de tout raisonnement, supposition, constatation, probabilité.

-- Wikipédia

Exemples

  • Température = 25°C
  • Total de personnes dans la salle = 10

Qu'est ce qu'une "information" ?

Une information est une interprétation contextualisée d'une donnée ou d'un ensemble de données. Elle est porteuse de "sens".

Exemple

  • Température = 25°C -> Il fait chaud
  • Total de personnes dans la salle = 10 -> C'est un petit groupe

Contexte et définitions


Historique

  • Première mention du terme en 1997
  • Issue des réflexions liées à l'explosion de la génération et l'usage des données
  • Une définition aux contours flous

3 caractéristiques de la problématique


Volume

Zaslavsky, Arkady & Perera, Charith & Georgakopoulos, Dimitrios. (2012). Sensing as a Service and Big Data. CoRR, abs/1301.0159.


Vitesse

La fréquence de génération de données ne cesse d'augmenter. Être en capacité de traiter ce flux constant de données en temps réel est un défi.

Exemple

Sur Twitter, environ 500 millions de messages sont envoyés par jour sur la plateforme. C'est environ 6000 messages/seconde. Source

Sur Snapchat, sur le 3eme trimestre de 2017, les utilisateurs s'envoyaient jusqu'à 3.5 milliards de 'snap' par jour. Source


Variété

L'avancée de la technologie aidant, les types des données généréess aujourd'hui sont multiples: texte, image, vidéo, son mais aussi modèle 3D, transactions de cryptomonnaies...

Toutes ces données prennent des formes extrêmement diverses.


Aperçu technique des solutions


Stockage des données


Présentation d'Apache Hadoop et HDFS


Traitement des données


Le modèle "MapReduce"

  • Inventé par Google
  • Inspiré des méthodes map() et reduce() que l'on retrouve classiquement dans les langages dits "fonctionnels".
  • Modèle qui permet de paralléliser massivement le traitement de données.
  • Très adapté aux opérations de filtrage/aggrégation.

Découpage du traitement

center

Source


Bases de données "NoSQL"


Base de donnée orientée clé/valeur

Mode de stockage représentant le corpus de données sous la forme d'un ou plusieurs tableaux associatifs.

Chaque clé (unique au sein d'une même collection) est associée à une valeur, qui peut être de différents types suivant le moteur utilisé.

  • Usage Stockage temporaire (cache), index, séries chronologiques, base de données embarquées...
  • Exemples LevelDB, Redis, Memcached

Exercice

Implémenter avec le langage de votre choix une "micro" base de données embarquée orientée clé/valeur. Les données devront être persistentes.

Votre implémentation devra permettre les opérations suivantes:

  • Sauvegarder une valeur associée à une clé
  • Récupérer une valeur associée à une clé
  • Itérer sur les clés existantes dans la base de données

Exemple d'API

cont bbd = new BDD("./my/file.db");

// Récupérer une clé dans la base de données
var val = bdd.get("my-key1");

// Enregistrer une valeur dans la base de données
bdd.set("my-key2", "foobar");

// Itérer sur le clés de la base de données
bdd.forEachKeys(function(key) {
  console.log(key);
});

Base de données orientée document

Mode de stockage représentant les données sous la forme de collections de "documents".

Un document est un objet comportant des attributs valués. Un attribut peut lui même être un objet.

  • Usage Stockage de données structurées (XML, JSON) avec ou sans schémas.
  • Exemples MongoDB, Elasticsearch

Base de données orientée colonne

Mode de stockage organisant les données sous forme de colonnes plutot que par rang comme les bases de données SQL classiques.

  • Usage Stockage de données dédiées à l'analyse statistiques et aux opérations d'aggrégation/filtrage par colonne.
  • Exemples Apache HBase

Base de données orientée graphe


Le concept de "triplet"

Un triplet est une structure de données pouvant être représenté sous la forme (sujet, prédicat, objet).

Un corpus de triplets permet de représenter un graphe orienté.

Exemple:

<William> <kind_of> <Person> <William> <work_for> <Cadoles> <Cadoles> <kind_of> Entreprise> etc...


Exemple avec le projet Cayley


Exercice

Soit Jean, Silvia, Camille, Charlie et Nicolas cinq membres d'un même réseau social.

  • Jean est ami avec Silvia.
  • Silvia est amie avec Jean.
  • Camille est ami avec Charlie.
  • Charlie est amie avec Jean.
  • Nicolas est ami avec Camille.
  • Nicolas est ami avec Silvia.

Les relations sont évidemment bidirectionnelles.

Chaque personne a également les attributs suivants:

  • Un age
  • Un plat préféré

Consignes
  1. Représenter sous forme de triplets ces 4 entités et leurs relations d'amitiés respectives.

  2. Écrire la requête (Gizmo) permettant de récupérer la liste des plats préférés d'une personne.

  3. Écrire la requête (Gizmo) permettant de récupérer la liste des "amis d'amis" d'une personne.

  4. Écrire la requête (Gizmo) permettant de récupérer la liste plats préférés partagés avec des "amis d'amis".

Documentation de l'API Gizmo


Exploitation des données et cadre légal


Qu'est ce qu'une données à caractère personnel ?

Toute information identifiant directement ou indirectement une personne physique (ex. nom, no dimmatriculation, no de téléphone, photographie, date de naissance, commune de résidence, empreinte digitale...).

-- CNIL

Source


Le RGPD

Voir la page de la CNIL