L'essentiel d'Apache Spark

Comprendre les formats de stockage

Testez gratuitement nos 1270 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Plusieurs formats de stockage sont à votre disposition pour charger vos DataFrames, notamment Avro et Parquet. Passez-les en revue avec votre formateur.
05:58

Transcription

Notre formation va devenir maintenant un peu plus réaliste. Non, cela ne veut pas dire qu'elle n'était pas réaliste avant, cela veut dire que, quand on travaille avec Spark, on travaille avec des fichiers, des données qui sont beaucoup plus volumineuses. On va donc essayer de faire un peu plus volumineux. D'abord, il faut parler des formats de fichiers, des différents formats que vous serez susceptibles d'utiliser dans Spark. Le DataFrame et la Spark Session ont un support natif pour des fichiers texte, pour des SequenceFile, pour du Parquet donc il faut que l'on fasse un point sur les différents formats. Historiquement, Hadoop est un système qui va stocker en HDFS des données volumineuses, c'est du big data. Ces données volumineuses doivent être stockées dans des fichiers eux-mêmes volumineux parce qu'en HDFS la taille du bloc est par défaut de 64 Mo, ce qui fait beaucoup et que si on stocke un fichier de 1Ko dans un bloc de 64 Mo, on perd beaucoup d'espace. Vous voyez le problème. A la base, un des formats classiques de stockage s'appelle le SequenceFile. C'est un format qui est pas mal utilisé pour les algorithmes type MapReduce en Hadoop et en HDFS et c'est assez simple, c'est un fichier binaire qui contient des paires clés/valeurs. On a des enregistrements qui sont dans différents SequenceFile format, soit c'est du non compressé, soit c'est du compressé par enregistrement, soit c'est du compressé par bloc comme vous le voyez ici, donc enregistrement ou bloc. Bien entendu, vous pouvez lire du SequenceFile avec Spark par exemple en ouvrant un Datset à partir d'un SequenceFile. Il y a d'autres formats qui peuvent être utilisés. Le principe du big data est de stocker des données dans un format relativement ouvert, on n'a pas besoin d'une base de données (on peut utiliser une base de données comme HBase ou Cassandra on peut aussi utiliser des formats de fichiers de ce type et ensuite les ouvrir avec un outil comme Spark). Il y a deux ou trois autres formats de fichiers typiquement Avro et, ici, je vais utiliser Avro pour stocker mes données donc je suis sur la page de spark-avro, c'est un paquet spécifique donc un Jar, en fait Java, que je vais devoir installer sur mon installation de Spark pour pouvoir importer de l'Avro, lire de l'Avro, créer un DataFrame à partir d'Avro. Ce n'est pas un format qui est nativement supporté. Il faut installer une bibliothèque. Qu'est-ce qu'Avro ? Avro est un format qui ressemble à deux autres de ses congénères, il y a une sorte de trio de formats qui sont : Avro, Protocol Buffers et Thrift. En un mot, si je prends Protocol Buffers, par exemple, qui est un format défini et utilisé en interne par Google, l'idée est de définir un schéma et ensuite de faire générer par un programme tout le code qui va permettre de manipuler ce schéma. L'idée de Protocol Buffers et de Thrift était d'avoir une capacité d'échanger des données structurées entre des programmes distants, entre des processus, entre des services, si vous voulez, et de pouvoir se les échanger rapidement. Au lieu de faire du xml ou éventuellement du Json, de pouvoir avoir un format comme cela qu'on définit et ensuite on peut générer le code de manipulation de ce format dans différents langages comme C++, C Sharp, Java, Python, etc... C'est à la fois, pour Protocol Buffers et pour Thrift, un outil de structuration de la donnée mais aussi un outil de manipulation de la donnée dans son code. Avro est une initiative qui vient du créateur d'Hadoop, Doug Cutting, pour avoir un format un peu semblable où on va définir la structure d'un schéma, en fait on va définit un schéma tout simplement, et puis on va pouvoir le manipuler dans du code. Il s'agit de pouvoir structurer quelque chose et puis avoir une sérialisation de ce quelque chose. On va avoir des fichiers Avro qui vont contenir les données qu'on aura définies. On va utiliser ici Avro mais on peut très bien utiliser également du Parquet, un format spécifique big data, en stockage en colonnes, qui est une initiative libre, elle est dans la fondation Apache, mais qui reprend les fondamentaux d'une technologie qui s'appelle Dremel et qui a été définie par Google. Une fois de plus, Google a publié un papier en 2010 pour dire : on a créé un outil qui s'appelle Dremel, chez nous, on l'utilise en interne et que fait-on avec ? On fait de l'analyse de données très volumineuses Web-scale, beaucoup de données, des betaoctets. On fait cette analyse de façon interactive car, historiquement, Google publie des papiers en disant : on fait du map reduce mais c'est du mode batch, vous vous en souvenez. On traite nos données et, au bout d'une heure, ou deux, on a les résultats. A l'époque, c'est un peu plus long. Au fil du temps, Google dit : non, il faut qu'on fasse une analyse interacive. C'est exactement ce dont on parle dans cette formation. Ils ont expliqué comment ils ont fait en interne, avec leur outil nommé Dremel : une couche de requêtage SQL et surtout un format de stockage adapté à récupérer les données rapidement. Ce format de stockage a été implémenté en open source par Apache Parquet. Il faut savoir que Spark peut lire nativement des fichiers Parquet. Si vous travaillez avec des données très volumineuses, c'est une excellente option pour stocker sur du HDFS, par exemple, des volumes très importants et les interroger rapidement, les manipuler rapidement avec Spark.

L'essentiel d'Apache Spark

Analysez des données volumineuses avec Apache Spark. Chargez vos données pour les analyser, profitez des opérations de transformation et des actions pour agréger vos données, etc.

3h11 (38 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :16 mars 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 !