Utilisation des formats de stockage en colonnes
Apache Parquet
Les formats de stockage en colonnes ont les caractéristiques suivantes qui les rendent adaptés à l'utilisation avec Athena :
-
La compression par colonne, avec un algorithme de compression sélectionnée pour le type de données de la colonne pour économiser de l'espace de stockage dans Amazon S3 et réduire l'espace disque et d'I/O lors du traitement de la requête.
-
Le prédicat pushdown dans Parquet et ORC permet aux requêtes Athena d'extraire uniquement les blocs dont elles ont besoin, améliorant ainsi les performances de requête. Lorsqu'une requête Athena obtient des valeurs de colonne spécifiques à partir de vos données, elle utilise les statistiques de prédicats de bloc de données, tels que les valeurs max/min, afin de déterminer s'il convient de lire ou d'ignorer le bloc.
-
Le fractionnement des données dans Parquet et ORC permet à Athena de fractionner la lecture des données en plusieurs lecteurs et d'augmenter le parallélisme lors du traitement des requêtes.
Pour convertir vos données brutes existantes à partir d'autres formats de stockage vers Parquet ou ORC, vous pouvez exécuter des requêtes CREATE TABLE AS SELECT (CTAS) dans Athena et spécifier un format de stockage des données tel que Parquet ou ORC, ou utiliser le Crawler AWS Glue.
Choix entre Parquet et ORC
Le choix entre ORC (Optimized Row Columnar) et Parquet dépend de vos besoins d'utilisation spécifiques.
Apache Parquet fournit des schémas de compression et de codage de données efficaces et convient parfaitement à l'exécution de requêtes complexes et au traitement de grandes quantités de données. Parquet est optimisé pour une utilisation avec Apache Arrow
ORC fournit un moyen efficace de stocker les données Hive. Les fichiers ORC sont souvent plus petits que les fichiers Parquet, et les index ORC peuvent accélérer les requêtes. De plus, ORC prend en charge les types complexes tels que les structures, les cartes et les listes.
Lorsque vous choisissez entre Parquet et ORC, prenez en considération les facteurs suivants :
Performances des requêtes : étant donné que Parquet prend en charge un plus large éventail de types de requêtes, Parquet peut s'avérer un meilleur choix si vous prévoyez d'effectuer des requêtes complexes.
Types de données complexes : si vous utilisez des types de données complexes, ORC peut se révéler un meilleur choix, car il prend en charge un plus large éventail de types de données complexes.
Taille des fichiers : si l'espace disque est un problème, ORC génère généralement des fichiers plus petits, ce qui peut réduire les coûts de stockage.
Compression : Parquet et ORC offrent tous deux une bonne compression, mais le format qui vous convient le mieux peut dépendre de votre cas d'utilisation spécifique.
Évolution : Parquet et ORC prennent tous deux en charge l'évolution du schéma, ce qui signifie que vous pouvez ajouter, supprimer ou modifier des colonnes au fil du temps.
Parquet et ORC sont tous deux de bons choix pour les applications de big data, mais tenez compte des exigences de votre scénario avant de choisir. Vous souhaiterez peut-être effectuer des points de référence sur vos données et vos requêtes afin de déterminer quel format convient le mieux à votre cas d'utilisation.
Conversion dans des formats en colonnes
Les options permettant de convertir facilement des données sources telles que JSON ou CSV en un format en colonnes incluent l'utilisation de requêtes CREATE TABLE AS ou l'exécution de tâches dans AWS Glue.
-
Vous pouvez utiliser les requêtes
CREATE TABLE AS(CTAS) pour convertir les données en Parquet ou ORC en une seule étape. Pour un exemple, consultez la section Exemple : écriture des résultats d'une requête dans un format différent sur la page Exemples de requêtes CTAS. -
Pour plus d’informations concernant l’utilisation d’Athena dans le cadre de l’extraction, de la transformation et du chargement (ETL) pour transformer des données CSV en données Parquet, consultez Utilisation de CTAS et INSERT INTO pour les opérations ETL et l’analyse des données
-
Pour plus d'informations sur l'exécution d'une tâche AWS Glue pour transformer des données CSV en Parquet, consultez la section « Transformer les données du format CSV au format Parquet » dans l'article du blog AWS Big Data intitulé Création d'une fondation de lac de données avec AWS Glue et Amazon S3
. AWS Glue prend en charge l'utilisation de la même technique pour convertir des données CSV en ORC, ou des données JSON en Parquet ou ORC.