AWS Athena est un service de requête flexible et économique pour les données stockées dans AWS S3.

AWS est l'un des plus grands fournisseurs de cloud 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 sur le Plateforme AWS. Il offre une durabilité et une disponibilité des données inégalées tout en étant l'une des options de stockage les moins chères dans le cloud.

Compte tenu de sa multitude de fonctionnalités et de son stockage théoriquement infini, il vous est possible d'avoir des téraoctets ou des pétaoctets de données dans des compartiments S3. L'analyse de ces données est presque 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 termes simples, AWS Athéna est utilisé comme un service d'analyse de données en accédant simplement aux données disponibles dans le compartiment S3 à l'aide de requêtes SQL. Ainsi, si vous comprenez même les bases de SQL, vous pouvez commencer à travailler sur l'analyse des données S3 avec AWS Athena.

Comprenons cela avec un court exemple. Supposons que vous ayez configuré l'un de vos compartiments en tant que compartiment de journaux d'accès pour tous les équilibreurs que vous avez dans plusieurs comptes de votre organisation. Comment interrogeriez-vous des années de données de journaux et obtiendriez-vous des informations importantes et significatives à partir de ces fichiers journaux ? La réponse est AWS Athena.

YouTube vidéo

Features of AWS Athena

  • Outil basé sur SQL : AWS Athena est un service basé sur SQL très simple à utiliser. Vous pointez simplement Athena vers l'un de vos compartiments, définissez le schéma de vos données, puis commencez à utiliser les requêtes SQL dans votre compartiment.
  • Sans serveur : Vous n'avez pas besoin de maintenir une infrastructure pour exécuter AWS Athena. Athena est sans serveur et est optimisé pour utiliser automatiquement plusieurs ressources de calcul selon vos besoins.
  • Rapide et optimisé : Athena a été optimisé pour utiliser un nombre efficace de ressources afin de fournir les résultats de votre requête dès que possible. Cela fonctionne très bien 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.
  • Pérennité et Disponibilité des données : Étant donné qu'Athena s'appuie sur les données de vos compartiments S3, vous pouvez être assuré que les données sont hautement disponibles et durables.
  • Technique: 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 de compartiment et les ACL, ce qui le rend hautement sécurisé.
  • Athena Backend : Athena utilise l'open-source Presto comme arrière-plan. Presto est un moteur SQL distribué pour interroger et analyser les charges de travail Big Data. 

Pricing and optimization of AWS Athena

Lorsque vous utilisez AWS Athena, des frais de 5 $ par téraoctet analysé vous seront facturés lors de l'utilisation d'AWS Athena. Ce prix peut varier légèrement pour certaines régions AWS.

  • Requêtes efficaces: Si vous connaissez SQL, vous devez savoir qu'il peut exister plusieurs façons d'obtenir certains résultats à partir de données à l'aide de SQL. Pour optimiser Athena, vous pouvez utiliser des requêtes efficaces qui devraient prendre moins de temps pour 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éduit encore le temps d'exécution de vos requêtes. En utilisant la transformation des données, vous pouvez optimiser votre requête jusqu'à 90 %.
  • Rejoindre des tables virtuelles : La jointure de tables est une fonctionnalité très importante de SQL. Bien que cela puisse sembler une opération simple, cela peut être une opération très complexe. Il est recommandé de conserver les tableaux plus grands à gauche et les tableaux contenant moins de données à droite.
YouTube vidéo

Difference between AWS Athena and Redshift Spectrum

Redshift Spectrum est un autre service qui peut être utilisé pour exécuter des requêtes sur des compartiments AWS S3. Redshift Spectrum et Athena sont sans serveur, peuvent exécuter des requêtes complexes sur S3 et sont facturés 5 % par téraoctet de données traitées, alors quelle est la différence ?

Performance

AWS Athena utilise des ressources de calcul à partir d'un pool de ressources fournies par AWS. En revanche, le spectre Redshift utilise les ressources allouées en fonction de la taille du cluster Redshift. Cela vous permet d'avoir plus de contrôle sur 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, tandis que lors de l'utilisation de 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 lors du choix entre le spectre Redshift et Athena. Vous devez utiliser Redshift Spectrum si vous souhaitez interroger des données dans S3 avec 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 les performances de vos requêtes dans S3. Athena peut être utile lorsque toutes vos données se trouvent uniquement dans les compartiments S3.

Difference between AWS Athena and S3 Select

S3 select est un autre service sans serveur d'AWS pour 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 les requêtes SQL SELECT que lorsque vous utilisez S3 Select, tandis qu'Athena peut être utilisé pour toutes sortes de requêtes SQL. Une autre limitation de la sélection S3 est que vous ne pouvez effectuer l'opération SELECT que sur un objet à la fois.

Ainsi, si votre besoin est uniquement d'extraire des données ou un sous-ensemble de données d'un objet S3, vous devez utiliser S3 Select. Pour les requêtes et opérations complexes telles que JOIN ou pour traiter les données dans un compartiment S3 entier, vous devez utiliser AWS Athena.

Advantages of using AWS Athena

  • Athena élimine le besoin 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 d'entretenir l'infrastructure.
  • AWS a optimisé Athena pour pouvoir récupérer les résultats de la requête quelques secondes après l'exécution de la requête Athena.
  • Comme 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 précieuses pour AWS Athena est avec le service AWS Glue. AWS Glue est un ETL service qui peut être utilisé pour transformer les données sous une forme plus efficace et lisible, qui peut ensuite être analysée avec AWS Athena.
  • Athena vous permet d'exécuter plusieurs requêtes simultanément.

Limitations of AWS Athena

  • Taille de ligne : La taille de ligne dans une table AWS Athena virtuelle 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 de ligne à 32 mégaoctets pour éviter les erreurs indésirables.
  • Fichiers cachés: Les fichiers dont le nom commence par un trait de soulignement (_) ou un point (.) sont traités comme masqués par le service Athena. Cela peut être utilisé comme une fonctionnalité pour éviter de traiter les fichiers indésirables.
  • Athéna est impossible de traiter les données dans S3 Glacier ou S3 Glacier Deep Archive. Ces classes de stockage sont uniquement destinées aux options d'archivage de données et ont un temps de récupération allant de quelques minutes à plusieurs heures, il est donc entendu si AWS Athena ne peut pas récupérer les données de ces classes.
  • Athéna ne supporte pas procédures stockées.
  • Athéna version 1 ne prend pas en charge les requêtes paramétrées. Ceci est pris en charge dans la version 2 d'Athena.
  • Des instructions telles que MERGE, UPDATE, CREATE TABLE LIKE, DESCRIBE INPUT et  DESCRIBE OUTPUT ne sont pas pris en charge.

Conclusion

Dans cet article, nous avons abordé l'outil d'analyse de données d'AWS, l'AWS Athena, ses fonctionnalités, ses avantages et certaines limitations. Athena est l'un des outils les plus puissants pour le traitement et l'analyse des données dans les compartiments S3. Même les limitations du service sont assez simples et peuvent être contournées si nécessaire.

Vous pouvez également consulter certaines des meilleures pratiques pour stockage AWS S3 sécurisé.