Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

Les fondements du Big Data

Connaître les formats de stockage

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Le Big Data consiste d'abord à stocker les données dans un format ouvert et peu structuré. Ainsi, vous pourrez analyser les données plus facilement.
06:02

Transcription

Abordons maintenant, dans ce chapitre les outils du « Big Data » un peu plus pratiquement, un peu plus techniquement. Quels sont les programmes, les outils, les architectures qui sont utilisés pour faire du « Big Data » ? Premièrement, en terme d’architecture, toujours assez globalement, on peut déterminer 4 couches. Il faut, bien sûr, avoir des données distribuées dans un système de fichiers distribué, de façon à pouvoir monter en charge, augmenter la volumétrie, en ajoutant des machines, comme on l'a dit avec du commodité arDueur sur des systèmes distribués. Pour pouvoir distribuer également le traitement, il faut avoir ce qu'on appelle un « Gestionnaire de clusters » qui va permettre de distribuer les processus de traitement sur les machines et de contrôler leur activité, de récupérer les résultats, de relancer certains processus, si elles ne se terminent pas à temps ou si un de nos clusters est défaillants. Le « Gestionnaire de clusters » va exécuter des programmes, des DAG, on s'en souvient. Il faut donc, un programme de traitement. une surcouche qui va permettre avec un langage de programmation qui peut être du langage SQL ou du Scala ou du Piton, qui va permettre de développer des algorithmes de recherche. Et parfois, par-dessus ce programme de traitement, on a une couche d'interrogation, par exemple, une surcouche, qui va permettre d'écrire des requêtes SQL, par exemple. Ces requêtes SQL seront ensuite traduites dans le langage du programme de traitement. Le programme de traitement exécutera son programme à l'aide du « Gestionnaire de clusters » qui va requêter les données dans les données distribuées, voilà. Alors, au niveau des données distribuées, bien sûr, il faut un système de fichiers distribué. On l'a déjà dit, le système de fichiers distribué s'appelle HDFS, c'est celui qu'on va utiliser le plus souvent, « Hadoop File System ». C'est un système de fichiers distribué qui a été développé en Java et qui permet de monter en charge un infini. Vous pouvez avoir un système de fichiers distribué de dizaine de milliers de nœuds, si vous en avez besoin, et il est basé sur le concept de Maître, une machine Maître qui s'appelle le « NameNode » qui est le nœud qui contient le nom des fichiers, l'arborescence des fichiers. Et puis, ensuite, on a des « DataNodes », autant de nœuds de données que nécessaires. On peut éventuellement distribuer les données de façons différentes à travers une base de données NoSQL distribuées. Je pense notamment à Cassandra qui est une base qui va contenir dans une structure proche de la Tab, ce qu'on appelle un « Modèle orienté colonne » ou « Wide Column Store ». Cassandra est un moteur de base de données qui peut distribuer ces données sans faire appel à HDFS. Vous avez d'autres moteurs de bases de données structurés comme « HBase » qui distribuent également leurs données, mais qui se basent sur HDFS. Donc, grosso modo, soit vous utilisez des fichiers stockés dans HDFS, soit vous pouvez utiliser une base de données NoSQL de type Cassandra. Si vous stockez vos données dans HDFS, vous avez plusieurs formats à disposition, car, bien entendu, HDFS stocke des fichiers, mais ces fichiers peuvent avoir des formats plus ou moins adaptés aux requêtages massifs. Un format historique de HDFS s'appelle le « SequenceFile ». C'est un fichier de perque les valeurs, donc, de données relativement simples, séquencées. Et pourquoi, d'ailleurs, fait-on des fichiers de ce type, des fichiers séquencés ? Parce que HDFS a une taille de bloc très importante, 64 méga octet par défaut, ce qui fait que si vous stockez des petits fichiers dans HDFS, chaque petit fichier devra être dans un bloc et prendra 64 mégaoctets, ce qui fait beaucoup de pertes de données. Donc, il est important de trouver un format de stockage qui génère des fichiers volumineux. Le « SequenceFile » est en format de stockage historique, mais il y en a d'autres, notamment, « Apache Avro » qui est un système de sérialisation de données avec un schéma précis et qui va fabriquer, donc, des fichiers de stockage pour stocker des données structurées. « Apache Parquet » est un autre format de stockage qui est très intéressant, parce qu'il stocke séparément les colonnes de vos données. Si vous avez des données relativement structurées, organisées en attribut, on pourrait dire en colonne également, « Parquet » est un excellent système de stockage, il est adapté à un papier qu'a publié Google sur une technologie qu'ils utilisent en interne et qui s'appellent « Dremel », technologie de requêtage interactif de données très volumineuses et pour que le requêtage interactif, c'est-à-dire rapide, soit possible, Google a créé un système de stockage beaucoup plus adapté pour le requêtage rapide, colonne par colonne. Et donc, « Parquet » est l'initiative libre qui reprend le format de Google défini dans le papier sur « Dremel ». Vous pouvez également avoir certaines surcouches qui créent des « Couches d'abstraction » pour fixer un schéma. Par exemple, un système comme « Hive » permet de représenter les données qui sont, par exemple, dans des « SequenceFile » sur HDFS, permet de les représenter sous forme de tables avec des colonnes. C'est une surcouche, c'est un niveau d'abstraction un peu comme « Business Objects », si vous connaissez cet outil, qui vous permet de créer des univers qui représentent vos données. « Hive » vous permet d'avoir un schéma de données, derrière le stockage se fait, par exemple, en « SequenceFile » et grâce à « Hive » vous pouvez en plus faire des requêtes SQL sur ce schéma de données avec des jointures, etc. Une autre forme d'abstraction c'est dans Apache Spark ce qu'on appelle le « DataFrame ». Un « DataFrame » dans un processus d'ELT, donc Extract Load et ensuite Transformation, permet dans une application « Spark » de charger des données et ensuite de les convertir en « DataFrame » en une Représentation sous forme de tables, des données, pour pouvoir mieux le manipuler dans votre programme de traitement.

Les fondements du Big Data

Découvrez les enjeux, les outils et les possibilités du Big Data. Familiarisez-vous avec les concepts du Big Data et soyez en mesure de gérer d’importants volumes de données.

1h47 (26 vidéos)
Aucun commentaire n´est disponible actuellement
 
Spécial abonnés
Date de parution :13 juin 2017

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !