Démystifier les formats de données Hadoop : Avro, ORC et Parquet

Qu’est-ce qu’Avro/ORC/Parquet?

Avro est un format de données basé sur les lignes slash un système de sérialisation des données publié par le groupe de travail Hadoop en 2009. Le schéma de données est stocké en JSON (ce qui signifie lisible par l’homme) dans l’en-tête tandis que le reste des données est stocké au format binaire. L’un des points brillants d’Avro est sa prise en charge robuste de l’évolution des schémas.

ORC est un format de données en colonnes de rangées hautement optimisé pour la lecture, l’écriture et le traitement des données dans Hive et il a été créé par Hortonworks en 2013 dans le cadre de l’initiative Stinger visant à accélérer Hive. Les fichiers ORC sont constitués de bandes de données où chaque bande contient un index, des données de ligne et un pied de page (où les statistiques clés telles que le nombre, le max, le min et la somme de chaque colonne sont commodément mises en cache).

Parquet est un format de données en colonnes de lignes créé par Cloudera et Twitter en 2013. Les fichiers Parquet se composent de groupes de lignes, d’un en-tête et d’un pied de page, et dans chaque groupe de lignes, les données des mêmes colonnes sont stockées ensemble. Parquet est spécialisé dans le stockage et le traitement efficaces des types de données imbriqués.

Éléments à prendre en compte

Intensif en lecture/écriture & Modèle de requête : Les formats de données basés sur les lignes sont globalement meilleurs pour le stockage de données intensives en écriture, car l’ajout de nouveaux enregistrements est plus facile. Si seul un petit sous-ensemble de colonnes sera interrogé fréquemment, les formats en colonnes seront vos bons amis car seules les colonnes nécessaires seront accédées et transmises (alors que les formats en lignes doivent tirer toutes les colonnes).

Compression : La compression est l’un des aspects clés à considérer ici car la compression permet de réduire les ressources nécessaires au stockage et à la transmission des données. En particulier lorsque vous obtenez une énorme quantité de données (par exemple, les données IoT), vous avez besoin d’une bonne compression. Les formats en colonnes sont meilleurs que les formats en lignes en termes de compression, car le stockage du même type de valeurs ensemble permet une compression plus efficace. Pour être plus précis, un encodage différent et plus efficace est utilisé pour chaque colonne. C’est également la raison pour laquelle les formats en colonnes conviennent bien aux ensembles de données éparses ! ORC a le meilleur taux de compression des trois, grâce à ses rayures.

Évolution du schéma : L’un des défis de la manipulation des big data est le changement fréquent du schéma de données : par exemple, l’ajout/la suppression de colonnes et le changement de noms de colonnes. Si votre schéma de données change beaucoup et que vous avez besoin d’une haute compatibilité pour vos anciennes/nouvelles applications, Avro est là pour vous. De plus, le schéma de données d’Avro est en JSON et Avro est capable de garder des données compactes même lorsque de nombreux schémas différents existent.

Colonnes imbriquées : Si vous avez beaucoup de colonnes imbriquées complexes dans votre ensemble de données et que vous n’interrogez souvent qu’un sous-ensemble des sous-colonnes, Parquet serait un bon choix. Parquet est mis en œuvre en utilisant l’algorithme de déchiquetage et d’assemblage des enregistrements décrit dans l’article de Dremel, ce qui vous permet d’accéder et de récupérer les sous-colonnes sans tirer le reste de la colonne imbriquée.

Support de la plateforme : Dernier point, mais non le moindre, vous devez tenir compte de la plateforme/du cadre que vous utilisez lorsque vous choisissez un format de données, car les formats de données se comportent différemment selon l’endroit où ils sont utilisés. ORC fonctionne mieux avec Hive (puisqu’il a été conçu pour Hive). Spark offre un excellent support pour le traitement des formats Parquet. Avro est souvent un bon choix pour Kafka.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *