AWS Athena est un service d’interrogation flexible et rentable pour les données stockées dans AWS S3.
AWS est l’un des plus grands fournisseurs de services en nuage au monde. Il offre une multitude de services pour le stockage en nuage et les besoins de calcul. AWS S3 est l’un des services les plus populaires de la plateforme AWS. Il offre une durabilité et une disponibilité inégalées des données tout en étant l’une des options de stockage les moins chères dans le nuage.
Compte tenu de sa multitude de fonctionnalités et de son stockage théoriquement infini, il est possible que vous ayez des téraoctets ou des pétaoctets de données dans les buckets S3. L’analyse de ces données est pratiquement impossible si nous devions ouvrir chaque fichier et lire manuellement des pétaoctets de données. C’est là qu’intervient le service AWS Athena.
En d’autres termes, AWS Athena est utilisé comme un service d’analyse de données en accédant simplement aux données disponibles dans le seau S3 à l’aide de requêtes SQL. Ainsi, si vous comprenez ne serait-ce que les bases du SQL, vous pouvez commencer à travailler sur l’analyse des données S3 avec AWS Athena.
Voyons cela à l’aide d’un court exemple. Supposons que vous ayez configuré l’un de vos godets comme godet de journal d’accès pour tous les équilibreurs que vous avez dans plusieurs comptes de votre organisation. Comment pouvez-vous interroger des années de données de journal et obtenir des informations importantes et significatives à partir de ces fichiers de journal ? La réponse est AWS Athena.
Caractéristiques d’AWS Athena
- Outil basé sur SQL : AWS Athena est un service très simple à utiliser, basé sur SQL. Il vous suffit de pointer Athena vers l’un de vos buckets, de définir le schéma de vos données, puis de commencer à utiliser les requêtes SQL dans votre bucket.
- Sans serveur : Vous n’avez pas besoin de maintenir une infrastructure pour faire fonctionner AWS Athena. Athena est sans serveur et est optimisé pour utiliser automatiquement plusieurs ressources de calcul en fonction de vos besoins.
- Rapide et optimisé : Athena a été optimisé pour utiliser un nombre efficace de ressources afin de fournir les résultats de vos requêtes le plus rapidement possible. Il fonctionne parfaitement avec des analyses petites et complexes des données S3.
- Rentable : Athena est un service payant. Cela signifie qu’il n’y a pas de coût de base pour l’utilisation d’AWS Athena ; vous ne payez que pour les requêtes que vous exécutez dans le service Athena.
- Durabilité et disponibilité des données : Étant donné qu’Athena s’appuie sur les données contenues dans vos buckets S3, vous pouvez être certain que ces données sont hautement disponibles et durables.
- Support : Athena prend en charge plusieurs formats de fichiers tels que JSON, CSV, Avro, ORC, etc.
- Sécurité : Athena utilise des fonctionnalités de sécurité telles que IAM, les politiques des buckets et les ACL, ce qui le rend hautement sécurisé.
- Backend Athena : Athena utilise le logiciel libre Presto comme backend. Presto est un moteur SQL distribué pour l’interrogation et l’analyse des charges de travail Big Data.
Prix et optimisation d’AWS Athena
Lors de l’utilisation d’AWS Athena, des frais de 5$ par téraoctet scanné vous seront facturés. Ce prix peut varier légèrement pour certaines régions AWS.
- Requêtes efficaces: Si vous êtes familier avec SQL, vous devez savoir qu’il peut y avoir plus d’une façon d’obtenir certains résultats à partir de données en utilisant SQL. Pour optimiser Athena, vous pouvez utiliser des requêtes efficaces qui devraient prendre moins de temps à exécuter vos requêtes.
- Transformation des données : Si vous souhaitez optimiser davantage vos requêtes, vous pouvez compresser, partitionner ou convertir vos données en un ensemble de données plus petit, ce qui réduira encore le temps d’exécution de vos requêtes. En utilisant la transformation des données, vous pouvez optimiser vos requêtes jusqu’à 90 %.
- Joindre des tables virtuelles : La jointure de tables est une fonctionnalité très importante de SQL. Bien que cette opération puisse sembler simple, elle peut s’avérer très complexe. Il est recommandé de conserver les grandes tables à gauche et les tables contenant moins de données à droite.
Différence entre AWS Athena et Redshift Spectrum
Redshift Spectrum est un autre service qui peut être utilisé pour exécuter des requêtes sur les buckets AWS S3. Redshift Spectrum et Athena sont tous deux sans serveur, peuvent exécuter des requêtes complexes sur S3 et sont facturés à 5 % par Terrabyte de données traitées
Les performances
AWS Athena utilise des ressources de calcul à partir d’un pool de ressources fourni par AWS. En revanche, le spectre Redshift utilise les ressources allouées en fonction de la taille du cluster Redshift. Cela vous permet de mieux contrôler les ressources utilisées par le service Redshift Spectrum, et si vous souhaitez améliorer les performances, vous pouvez toujours augmenter la taille de votre cluster Redshift.
Chargement des données pour le traitement
Les deux services utilisent des tables virtuelles pour exécuter des requêtes SQL sur vos données. Les tables virtuelles sont créées à l’aide du catalogue de données Glue pour la gestion des schémas. Athena peut utiliser directement les données du schéma Glue Data Catalog, alors que lorsque vous utilisez Redshift Spectrum, vous devrez configurer des tables externes à partir du schéma Glue Data Catalog.
Ce sont les principales différences entre les deux services, donc lorsque vous choisissez entre Redshift Spectrum et Athena. Vous devriez utiliser Redshift Spectrum si vous voulez interroger des données dans S3 en même temps que les données stockées dans l’entrepôt de données Redshift ou si vous êtes prêt à payer des coûts plus élevés pour améliorer la performance de vos requêtes dans S3. Athena peut être utile lorsque toutes vos données se trouvent uniquement dans les buckets S3.
Différence entre AWS Athena et S3 Select
S3 select est un autre service sans serveur d’AWS qui permet d’interroger des données dans S3 à l’aide de SQL. Cependant, la principale différence entre S3 Select et Athena est que vous ne pouvez utiliser que les requêtes SQL SELECT lorsque vous utilisez S3 Select, alors qu’Athena peut être utilisé pour tous les types de requêtes SQL. Une autre limitation de S3 Select est que vous ne pouvez effectuer l’opération SELECT que sur un seul objet à la fois.
Par conséquent, si vous souhaitez uniquement extraire des données ou un sous-ensemble de données d’un objet S3, vous devez utiliser S3 Select. Pour des requêtes et des opérations complexes telles que JOIN ou pour traiter les données d’un bucket S3 entier, vous devez utiliser AWS Athena.
Avantages de l’utilisation d’AWS Athena
- Athena élimine la nécessité de développer un outil d’analyse de données complexe et coûteux pour vos données.
- Athena est sans serveur, ce qui en fait un service assez facile à utiliser. Vous n’avez pas besoin de maintenir l’infrastructure.
- AWS a optimisé Athena pour pouvoir récupérer les résultats des requêtes dans les secondes qui suivent l’exécution de la requête Athena.
- Étant donné qu’Athena est sans serveur, vous n’avez pas à payer pour le service Athena. Vous ne payez que pour les requêtes que vous choisissez d’exécuter. Même si vous deviez annuler une requête, vous ne seriez facturé que pour les données traitées et non pour l’ensemble de la requête.
- Athena peut être facilement intégré à d’autres services AWS. L’une des intégrations les plus importantes et les plus utiles pour AWS Athena est le service AWS Glue. AWS Glue est un service ETL qui peut être utilisé pour transformer les données en une forme plus efficace et plus lisible, qui peut ensuite être analysée avec AWS Athena.
- Athena vous permet d’exécuter plusieurs requêtes simultanément.
Limites d’AWS Athena
- Taille des lignes : La taille des lignes d’une table virtuelle AWS Athena ne doit pas dépasser 32 mégaoctets. Cette limite peut être augmentée dans des cas très limités pour les fichiers CSV et JSON jusqu’à 100 mégaoctets, mais il est fortement recommandé de limiter la taille des lignes à 32 mégaoctets pour éviter des erreurs indésirables.
- Fichiers cachés : Les fichiers dont le nom commence par un trait de soulignement (_) ou un point (.) sont considérés comme cachés par le service Athena. Cette fonction peut être utilisée pour éviter de traiter des fichiers non désirés.
- Athena n’est pas en mesure de traiter les données dans S3 Glacier ou S3 Glacier Deep Archive. Ces classes de stockage sont uniquement destinées à l’archivage de données et ont un délai de récupération allant de quelques minutes à quelques heures, il est donc normal qu’AWS Athena ne puisse pas récupérer les données de ces classes.
- Athena ne supporte pas les procédures stockées.
- La version 1 d’Athena ne supporte pas les requêtes paramétrées. Elles sont prises en charge dans la version 2 d’Athena.
- Les déclarations telles que MERGE, UPDATE, CREATE TABLE LIKE,
DESCRIBE INPUT
etDESCRIBE OUTPUT
ne sont pas supportées.
Conclusion
Dans cet article, nous avons présenté l’outil d’analyse de données d’AWS, AWS Athena, ses caractéristiques, ses avantages et ses limites. Athena est l’un des outils les plus puissants pour le traitement et l’analyse des données dans les buckets S3. Même les limites du service sont assez simples et peuvent être contournées si nécessaire.
Vous pouvez également consulter les meilleures pratiques pour sécuriser le stockage AWS S3.