Traitement de données massives

John Samuel
CPE Lyon

Year: 2020-2021
Email: john(dot)samuel(at)cpe(dot)fr

Creative Commons License

1. Cycle de vie des données

Objectifs

1. Cycle de vie des données

Cycle de vie des données

  1. Données
  2. Connaissances
  3. Perspectives
  4. Actions
Cycle de vie des données

1. Cycle de vie des données

1.1. Des données à la connaissance

  1. Acquisition de données
  2. Extraction de données
  3. Nettoyage de données
  4. Transformation de données
  5. Stockage de données
  6. Data analysis modeling
  7. Analyses de données
  8. Visualisation de données
Des données à la connaissance

1. Cycle de vie des données

1.1.1. Acquisition de données

1. Cycle de vie des données

1.1.2. ETL (Extraction Transformation, Loading)

  1. Extraction de données
  2. Nettoyage de données
  3. Transformation de données
  4. Chargement des données dans les entrepôts de données
ETL (Extraction, Transformation and Loading)

1. Cycle de vie des données

1.1.3. Analyses de données

1.1.3. Analyses de données

1. Cycle de vie des données

1.1.4. Visualisation de données

1. Cycle de vie des données

1.1.4. Visualisation de données

2. Acquisition et stockage des données

L'acquisition de données [Lenzerini 2002][Dong 2013]

  1. Questionnaires
    • Questionnaires face à face
    • Questionnaires en ligne
  2. Capteurs1
    • Température, pression, humidité
    • Acoustique, navigation
    • Proximité, capteurs de présence
  3. Réseau sociaux
  4. Vidéo de surveillance
  5. Web
  6. Enregistrement
  1. https://en.wikipedia.org/wiki/List_of_sensors

2. Acquisition et stockage des données

Les super marchés et le shopping [Dennis 2001]

Caissier (Achats)

2. Acquisition et stockage des données

Les achats en ligne [Chen, Daqing 2012]

Les achats en ligne

2. Acquisition et stockage des données

Les transactions financières [Kovalerchuk 2005]

Guichet Automatique Bancaire (Transactions financières)[Kovalerchuk 2005]

2. Acquisition et stockage des données

Les capteurs [Shen Bin 2010]

Capteurs (température)

2. Acquisition et stockage des données

Les vidéos [Brax 2008]

Caméras de surveillance

2. Acquisition et stockage des données

Les médias et réseaux sociaux [Aggarwal 2011]

Réseautage social [Aggarwal 2011]

2. Acquisition et stockage des données

Production participative [Gao 2011]

Production participative (Crowdsourcing)

2. Acquisition et stockage des données

Production participative [Nakayama 2007]

Production collaborative [Nakayama 2007]

2. Acquisition et stockage des données

Enregistrement de données [Alspaugh 2014]

                     $ tail /var/log/apache2/access.log
                   
127.0.0.1 - - [14/Nov/2018:14:46:49 +0100] "GET / HTTP/1.1" 200 3477 "-"
         "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0"
127.0.0.1 - - [14/Nov/2018:14:46:49 +0100] "GET /icons/ubuntu-logo.png HTTP/1.1" 304 180 "http://localhost/"
         "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0"
127.0.0.1 - - [14/Nov/2018:14:46:49 +0100] "GET /favicon.ico HTTP/1.1" 404 294 "-"
         "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0"
                   

2. Acquisition et stockage des données

Enregistrement de données [Alspaugh 2014]

                     $ tail /var/log/apache2/error.log
                   
[Wed Nov 14 09:53:39.563044 2018] [mpm_prefork:notice] [pid 849]
         AH00163: Apache/2.4.29 (Ubuntu) configured -- resuming normal operations
[Wed Nov 14 09:53:39.563066 2018] [core:notice] [pid 849]
         AH00094: Command line: '/usr/sbin/apache2'
[Wed Nov 14 11:35:35.060638 2018] [mpm_prefork:notice] [pid 849]
         AH00169: caught SIGTERM, shutting down
                   

2. Acquisition et stockage des données

Enregistrement de données

LogLevel (https://httpd.apache.org/docs/2.4/mod/core.html#loglevel)

2. Acquisition et stockage des données

Enregistrement de données

Log Format (https://httpd.apache.org/docs/2.4/mod/core.html#errorlogformat)

2. Acquisition et stockage des données

Enregistrement de données

Log Format (https://httpd.apache.org/docs/2.4/mod/core.html#errorlogformat)

2. Acquisition et stockage des données

Enregistrement de données

                    $ cat /etc/apache2/apache2.conf
                   
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

                   

2. Acquisition et stockage des données

Formats de stockage de données

2. Acquisition et stockage des données

Formats de stockage de données: JSON

[
  {
    "languageLabel": "ENIAC coding system",
    "year": "1943"
  },
  {
    "languageLabel": "ENIAC Short Code",
    "year": "1946"
  },
  {
    "languageLabel": "Von Neumann and Goldstine graphing system",
    "year": "1946"
  }
]			

2. Acquisition et stockage des données

Formats de stockage de données: XML

<?xml version="1.0" encoding="UTF-8"?>
<root>
   <element>
      <languageLabel>ENIAC coding system</languageLabel>
      <year>1943</year>
   </element>
   <element>
      <languageLabel>ENIAC Short Code</languageLabel>
      <year>1946</year>
   </element>
   <element>
      <languageLabel>Von Neumann and Goldstine graphing system</languageLabel>
      <year>1946</year>
   </element>
</root>
			

2. Acquisition et stockage des données

Formats de stockage de données: CSV

languageLabel,year
ENIAC coding system,1943
ENIAC Short Code,1946
Von Neumann and Goldstine graphing system,1946
			

2. Acquisition et stockage des données

2.2 Types de stockage des données

  1. Bases de données structurées
    • Bases de données relationnelles
    • Bases de données orientées objet
  2. Bases de données non-structurées
    • Systèmes de fichiers
    • Systèmes de gestion de contenu (CMS)
    • Collections de documents
  3. Bases de données semi-structurées
    • Systèmes de fichiers
    • Bases de données NoSQL
Données non-structurées, structurées et semi-structurées

2. Acquisition et stockage des données

2.3.1. Propriétés ACID1

  1. https://fr.wikipedia.org/wiki/Propri%C3%A9t%C3%A9s_ACID

2. Acquisition et stockage des données

2.3.1. Propriétés ACID

2. Acquisition et stockage des données

2.2 Types de bases de données

2. Acquisition et stockage des données

2.3.3. NoSQL

Théorème CAP1

Il est impossible sur un système informatique de calcul distribué de garantir en même temps (c'est-à-dire de manière synchrone) les trois contraintes suivantes

2. Acquisition et stockage des données

2.3.3. NoSQL

2. Acquisition et stockage des données

2.3.3. Types de bases de données NoSQL

2. Acquisition et stockage des données

Exemple: un tableau dans une base de données relationnelles

numlanguageLabelyear
1ENIAC coding system1943
2ENIAC Short Code1946
3Von Neumann and Goldstine graphing system1946

2. Acquisition et stockage des données

Exemple: base de données orientée colonnes

ENIAC coding system:1; ENIAC Short Code:2 Von Neumann and Goldstine graphing system:3

1943:1; 1946:2; 1946:3
			

2. Acquisition et stockage des données

Exemple: base de données orientée documents

  {
    "languageLabel": "ENIAC coding system",
    "year": "1943"
  }

  {
    "languageLabel": "ENIAC Short Code",
    "year": "1946"
  }

  {
    "languageLabel": "Von Neumann and Goldstine graphing system",
    "year": "1946"
  }

			

2. Acquisition et stockage des données

Exemple: base de données orientée clé-valeur

identifiantlanguageLabel,year
p1ENIAC coding system,1943
p2ENIAC Short Code,1946
p3Von Neumann and Goldstine graphing system,1946

2. Acquisition et stockage des données

Exemple: base de données orientée graphe

base de données orientée graphe

3. Extraction et intégration des données

3.1. Techniques d'extraction des données

3. Extraction et intégration des données

3.2. Interfaces d'interrogation

3. Extraction et intégration des données

3.3. Crawlers pour les pages web

Web crawlers : naviguer dans l'ensemble en utilisant des hyperliens

3. Extraction et intégration des données

3.4. Interface de programmation d'applications (API)

API (Interface de programmation)

3. Extraction et intégration des données

3.4. Interface de programmation d'applications (API)

import requests
url = "https://api.github.com/users/johnsamuelwrites"

response = requests.get(url)
print(response.json())

4. Prétraitement des données

4.1. Nettoyage de données

4. Prétraitement des données

4.1.1. Erreurs de syntaxe

4. Prétraitement des données

4.1.2. Erreurs sémantiques [Abedjan 2016]

4. Prétraitement des données

4.1.3. Erreurs de couverture

Exemple: Pandas

4. Prétraitement des données

4.2.1. Traitement des erreurs syntaxiques

4. Prétraitement des données

4.2.1. Traitement des erreurs syntaxiques: XSD

<xs:schema attributeFormDefault="unqualified"
      elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="root" type="rootType"/>
  <xs:complexType name="elementType">
    <xs:sequence>
      <xs:element type="xs:string" name="languageLabel"/>
      <xs:element type="xs:short" name="year"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="rootType">
    <xs:sequence>
      <xs:element type="elementType" name="element" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
			

4. Prétraitement des données

4.2.2. Traitement des erreurs sémantiques

numlanguageLabelyear
1ENIAC coding system1943

\({num}\rightarrow{languageLabel}\)

\({languageLabel}\rightarrow{year}\)

\({num}\rightarrow{year}\)

4. Prétraitement des données

4.2.3. Traitement des erreurs de couverture

4. Prétraitement des données

4.2.4. Administrateurs et traitement des erreurs

5. Transformation des données

5.1 Langages de programmation

6. ETL

6.1. ETL (Extraction Transformation and Loading)

  1. Extraction des données
  2. Nettoyage des données
  3. Transformation des données
  4. Chargement des données dans les entrepôts de données

6. ETL

6.2.1. Analyse des données multidimensionnelles

6. ETL

6.2.1. Analyse des données multidimensionnelles

6. ETL

6.2.3. Modèle de données en étoile

Modèle de données en étoile

6. ETL

6.2.3. Cubes ou hypercube de données

Modèle de données en étoile

6. ETL

6.2.4. Modèle de données en flocon

6. ETL

6.2. ETL: d'une base de données à l'autre

7. Analyse des données

Activités d'analyse des données

  1. Récupération des valeurs
  2. Filtrer
  3. Calculer les valeurs dérivées
  4. Trouver l'extremum
  5. Trier
  6. Déterminer la limite
  7. Caractériser la distribution
  8. Trouver des anomalies
  9. Cluster
  10. Corréler
  11. Contextualisation
  1. https://en.wikipedia.org/wiki/Data_analysis

8. Visualisation des données

8.1.Les variables visuelles [Jacques Bertin]

  1. position
  2. taille
  3. forme
  4. valeur
  5. couleur
  6. orientation
  7. texture
  1. https://en.wikipedia.org/wiki/Visual_variable

8. Visualisation des données

8.1. Visualisation des données

  1. séries temporelles
  2. classement
  3. partie à l'ensemble
  4. écart
  5. triage
  6. distribution des fréquences
  7. corrélation
  8. comparaison nominale
  9. géographique ou géospatial
  1. https://en.wikipedia.org/wiki/Data_visualization

8. Visualisation des données

8.2. Visualisation des données: Exemples

  1. Diagramme en bâtons (comparaison nominale)
  2. Diagramme circulaire (partie à l'ensemble)
  3. Histogramme (distribution des fréquences)
  4. Nuage de points (corrélation)
  5. Réseaux
  6. Graphique linéaire (séries temporelles)
  7. Arborescence
  8. Diagramme de Gantt
  9. Carte thermique/heatmap
  1. https://fr.wikipedia.org/wiki/Repr%C3%A9sentation_graphique_de_donn%C3%A9es

8. Visualisation des données

Diagramme circulaire

8. Visualisation des données

Les paradigmes du langage de programmation (diagramme à bulles)

8. Visualisation des données

Historique des langages de programmation (Histropedia)

8. Visualisation des données

Diagramme d'influence des langages de programmation

8. Visualisation des données

k couleurs prédominantes

8. Visualisation des données

Diagrammes de dispersion RGB (Comparaison)

Références

Articles de recherche

Références

Articles de recherche

Références

Articles de recherche

Références

Articles de recherche

Références

Couleurs

Images