Q : Qu'est-ce qu'Amazon Athena ?

Amazon Athena est un service de requête interactif qui facilite l'analyse des données dans Amazon S3 à l'aide de la syntaxe SQL standard. Athena ne requiert aucun serveur et vous pouvez donc commencer à analyser les données immédiatement, sans avoir à configurer ni gérer d'infrastructure. Il n'est même pas nécessaire de charger vos données dans Athena, puisque le service accède directement aux données stockées dans S3. Pour démarrer, connectez-vous à Athena Management Console, définissez votre schéma et commencez l'interrogation. Amazon Athena utilise Presto, avec la prise en charge complète de la syntaxe SQL standard, et fonctionne avec de nombreux formats de données tels que CSV, JSON, ORC, Apache Parquet et Avro. Amazon Athena est la solution idéale pour effectuer des requêtes ponctuelles rapides. Il s'intègre à Amazon QuickSight pour faciliter l'affichage des données et il peut également gérer des analyses complexes, y compris des jointures, des fonctions de fenêtrage et des tableaux.

Q : Que puis-je faire avec Amazon Athena ?

Amazon Athena vous permet d'analyser des données stockées dans Amazon S3. Vous pouvez utiliser Athena pour exécuter des requêtes ponctuelles à l'aide de SQL ANSI, sans avoir à consolider ou charger les données dans Athena. Amazon Athena peut traiter des ensembles de données non structurées, semi-structurées ou structurées. Par exemple, des formats de données CSV, JSON, Avro ou des formats en colonnes tels qu'Apache Parquet et Apache ORC. Amazon Athena s'intègre à Amazon QuickSight afin de faciliter l'affichage des données. Vous pouvez également utiliser Amazon Athena pour générer des rapports ou explorer les données à l'aide d'outils d'aide à la décision ou de clients SQL, connectés via un pilote JDBC.

Q : Comment démarrer avec Amazon Athena ?

Pour commencer à utiliser Amazon Athena, il vous suffit de vous connecter à AWS Management Console pour Athena et de créer votre schéma en écrivant des instructions DDL dans la console ou en utilisant un assistant de création de table. Ensuite, vous pouvez commencer l'interrogation des données à l'aide d'un éditeur de requête intégré. Athena interroge les données directement à partir d'Amazon S3 et il n'est donc pas nécessaire de les charger.  

Q : Comment puis-je accéder à Amazon Athena ?

Vous pouvez accéder à Amazon Athena via AWS Management Console, une API ou un pilote JDBC. A l'aide du pilote JDBC, vous pouvez exécuter des requêtes et ajouter des tables et des partitions par programmation.  

Q : Quels sont les service limits associés à Amazon Athena ?

Pour plus d'informations sur les service limits, cliquez ici

Q : Quelle est la technologie sous-jacente utilisée par Amazon Athena ?

Amazon Athena utilise Presto, avec la prise en charge complète de la syntaxe SQL standard, et fonctionne avec de nombreux formats de données tels que CSV, JSON, ORC, Avro et Parquet. Athena peut gérer des analyses complexes, y compris des jointures de grande taille, des fonctions de fenêtrage et des tableaux. Amazon Athena utilise Amazon S3 comme banque de données sous-jacente. Par conséquent, l'application est hautement disponible et durable, grâce à des données stockées de manière redondante dans plusieurs installations et sur plusieurs appareils situés dans chaque installation.

Q : Comment les définitions de table et les schémas sont-ils stockés dans Amazon Athena ?

Amazon Athena utilise un catalogue de données géré pour stocker les informations et les schémas des bases de données et des tables que vous créez pour les données stockées dans Amazon S3. Dans les régions dans lesquelles AWS Glue est disponible, vous pouvez mettre à niveau votre système pour utiliser le catalogue de données AWS Glue avec Amazon Athena. Dans les régions dans lesquelles AWS Glue n'est pas disponible, Athena utilise un catalogue interne.

Vous pouvez modifier le catalogue à l'aide d'instructions DDL ou d'AWS Management Console. Tous les schémas que vous définissez sont automatiquement enregistrés, sauf si vous les supprimez de manière explicite. Athena utilise la technologie de « schéma sur lecture », ce qui signifie que les définitions de table sont appliquées à vos données dans S3 lors de l'exécution des requêtes. Il n'est pas nécessaire de charger ou transformer les données. Vous pouvez supprimer des définitions de table et des schémas sans affecter les données sous-jacentes stockées sur Amazon S3.

Q : Pourquoi dois-je me mettre à niveau vers le catalogue de données AWS Glue ?

AWS Glue est un service ETL entièrement géré. Glue possède trois composants principaux : 1) un robot qui évalue automatiquement vos sources de données, identifie les formats de données et en déduit des schémas, 2) un service ETL entièrement géré qui vous permet de transformer et de déplacer des données vers diverses destinations et 3) un catalogue de données qui conserve les informations des métadonnées des bases de données et des tables conservées soit dans S3 soit dans une banque de données compatible avec JDBC. Pour profiter des avantages de Glue, vous devez mettre votre système à niveau pour passer du catalogue de données interne d'Athena au catalogue de données Glue.

Les avantages de mettre votre système à niveau vers le catalogue de données Glue sont :

  1. Référentiel de métadonnées unifié : AWS Glue est intégré à une large gamme de services AWS. AWS Glue prend en charge les données stockées sur Amazon Aurora, Amazon RDS MySQL, Amazon RDS PostgreSQL, Amazon Redshift et Amazon S3 ainsi que les bases de données MySQL et PostgreSQL de votre Virtual Private Cloud (VPC) associées à Amazon EC2. AWS Glue apporte une intégration clé en main à Amazon Athena, Amazon EMR, Amazon Redshift Spectrum ainsi qu'à toute application compatible du metastore Apache Hive.
  2. Reconnaissance automatique de schéma et de partition : AWS Glue analyse automatiquement vos sources de données, identifie les formats de données et propose des schémas et des transformations. Les robots peuvent aider à automatiser la création de tableaux et le chargement automatique de partitions.
  3. Facilité de création de pipelines : le moteur ETL d'AWS Glue génère du code Python personnalisable, réutilisable et portable. Vous pouvez modifier le code à l'aide de votre IDE ou de votre portable préféré et le partager aux autres grâce à GitHub. Lorsque votre tâche ETL est prête, vous pouvez prévoir de la lancer sur l'infrastructure d'augmentation entièrement gérée Spark d'AWS Glue. AWS Glue n'a pas recours à un serveur ; c'est lui qui gère l'allocation, la configuration et le dimensionnement des ressources nécessaires pour exécuter les tâches ETL, ce qui vous permet d'intégrer étroitement un ETL à votre flux de travail.

Cliquez ici pour en savoir plus sur le catalogue de données Glue.

Q : Y a-t-il un guide pas à pas pour mettre à niveau vers le catalogue de données AWS ?

Oui. Vous pourrez trouver le guide pas à pas en cliquant ici

Q : Dans quelles régions Amazon Athena est-il disponible ?

Consultez la section Produits et services régionaux pour plus d'informations sur la disponibilité du service Amazon Athena par région.

Q : Quelle est la différence entre Amazon Athena, Amazon EMR et Amazon Redshift ?

Les services de requête tels qu'Amazon Athena, les entrepôts de données tels qu'Amazon Redshift et les infrastructures de traitement de données sophistiquées telles qu'Amazon EMR répondent tous à des besoins et des cas d'utilisation différents. Vous devez donc sélectionner l'outil le plus approprié pour vos tâches. Amazon Redshift offre les performances de requête les plus rapides pour la création de rapports et les charges de travail d'aide à la décision des entreprises, particulièrement lors de l'utilisation de SQL complexe avec de nombreuses jointures et sous-requêtes. Amazon EMR permet d'exécuter de manière simple et économique des infrastructures de traitement hautement distribuées telles que Hadoop, Spark et Presto, lorsque comparé à des déploiements sur site. Amazon EMR offre une grande flexibilité : vous pouvez ainsi exécuter des applications et du code personnalisés et définir des paramètres spécifiques pour le calcul, la mémoire, le stockage et l'application afin d'optimiser vos exigences d'analyse. Amazon Athena représente la solution la plus conviviale pour exécuter des requêtes ponctuelles sur des données stockées dans S3, sans avoir à configurer ou gérer de serveurs.

Q : Quand dois-je utiliser un entrepôt de données d'entreprise complet comme Amazon Redshift plutôt qu'un service de requête comme Amazon Athena ?

Un entrepôt de données tel qu'Amazon Redshift représente la meilleure solution si vous devez rassembler des données provenant de nombreuses sources différentes (par exemple, systèmes d'inventaire, systèmes financiers et systèmes de ventes au détail) dans un même format et les stocker, pendant de longues périodes, afin de créer des rapports d'activité sophistiqués.

Les entrepôts de données collectent les données dans l'ensemble de l'entreprise et constituent la « seule source fiable » pour la création et l'analyse de rapports. Les entrepôts de données extraient les données de nombreuses sources, puis les formatent et les organisent afin de les stocker. Ils prennent en charge des requêtes rapides complexes qui génèrent des rapports d'activité. Le moteur de requête d'Amazon Redshift a été optimisé afin de fonctionner de manière performante dans ce cas d'utilisation, dans lequel vous devez exécuter des requêtes complexes qui joignent un nombre élevé de tables de données extrêmement volumineuses. TPC-DS est une référence standard conçue pour répliquer ce cas d'utilisation et Redshift exécute ces requêtes jusqu'à 20 fois plus rapidement que des services de requête optimisés pour des données non structurées. Il convient de choisir Amazon Redshift lorsque vous devez exécuter des requêtes sur les données hautement structurées de très grandes tables.

En comparaison, des services de requête tels qu'Amazon Athena facilitent l'exécution de requêtes directement dans les tables d'Amazon S3, sans qu'il soit nécessaire de formater les données ni gérer l'infrastructure. Par exemple, Athena convient parfaitement si vous voulez exécuter une requête rapide sur quelques journaux web pour résoudre un problème affectant votre site. Les services de requête vous permettent de commencer rapidement. Vous définissez simplement une table pour vos données, puis commencez la requête à l'aide de la syntaxe SQL standard.

Vous pouvez utiliser les deux services simultanément. Si vous préparez vos données dans Amazon S3 avant de les charger dans Amazon Redshift, ces données peuvent également être enregistrées et interrogées à l'aide d'Amazon Athena.

Q : Quand dois-je utiliser Amazon EMR plutôt qu'Amazon Athena ?

Amazon EMR fait bien plus qu'exécuter des requêtes SQL. Avec EMR, vous pouvez exécuter un grand nombre de tâches de traitement de données avec montée en charge pour des applications telles que l'apprentissage machine, l'analyse graphique, la transformation de données, la diffusion de données et quasiment toutes les opérations que vous pouvez coder. Choisissez Amazon EMR si vous utilisez du code personnalisé pour traiter et analyser des ensembles de données extrêmement volumineux avec les infrastructures de traitement de Big Data les plus récentes telles que Spark, Hadoop, Presto ou Hbase. Amazon EMR vous permet de contrôler entièrement la configuration de vos clusters et les logiciels installés sur ceux-ci.

Utilisez Amazon Athena si vous voulez exécuter des requêtes SQL ponctuelles interactives sur Amazon S3, sans avoir à gérer l'infrastructure ni les clusters.

Q : Est-il possible d'utiliser Amazon Athena pour interroger des données traitées à l'aide d'Amazon EMR ?

Oui, Amazon Athena prend en charge un grand nombre des formats de données pris en charge par Amazon EMR. Le catalogue de données Athena est compatible avec le metastore de Hive. Si vous utilisez EMR et que vous disposez déjà d'un metastore Hive, il vous suffit d'exécuter vos instructions DDL sur Amazon Athena, puis vous pouvez commencer l'interrogation des données immédiatement, sans affecter vos travaux Amazon EMR.

Q : Comment puis-je créer des tables et des schémas pour mes données dans Amazon S3 ?

Amazon Athena utilise Apache Hive DDL pour définir les tables. Vous pouvez exécuter des instructions DDL à l'aide de la console Athena, via un pilote JDBC, via l'API ou à l'aide de l'assistant de création de tables Athena. Si vous utilisez les catalogues de données AWS Glue couplés à Athena, vous pouvez également utiliser les robots Glue pour déduire automatiquement les schémas et les partitions. Un robot AWS Glue se connecte à une banque de données, progresse à travers une liste classée par priorité de classificateurs pour extraire le schéma de vos données et d'autres statistiques, puis alimente le catalogue de données Glue avec ces métadonnées. Les robots peuvent être exécutés régulièrement pour détecter la présence de nouvelles données ainsi que des changements aux données existantes, y compris les changements apportés à la définition à la table. Les robots ajoutent automatiquement de nouvelles tables, de nouvelles partitions aux tables existantes et de nouvelles versions des définitions des tables. Vous pouvez personnaliser les robots Glue pour classer vos propres types de fichiers.

Lorsque vous créez un nouveau schéma de table dans Amazon Athena, il est stocké dans le catalogue de données et utilisé lors de l'exécution des requêtes, mais il ne modifie pas les données stockées dans S3. Athena utilise une approche appelée « schéma sur lecture » qui vous permet de projeter le schéma sur les données lorsque vous exécutez une requête. Cela élimine la nécessité de charger ou transformer les données. En savoir plus sur la création de tables.

Q : Quels sont les formats de données pris en charge par Amazon Athena ?

Amazon Athena prend en charge une vaste gamme de formats de données comme CSV, TSV, JSON et les fichiers texte, ainsi que des formats en colonnes open source comme Apache ORC et Apache Parquet. Athena prend également en charge les données compressées utilisant les formats Snappy, Zlib, LZO et GZIP. La compression et le partitionnement des données et l'utilisation de formats en colonnes vous permettent d'améliorer les performances et de réduire les coûts.

Q : Quels sont les types de données pris en charge par Amazon Athena ?

Amazon Athena prend en charge des types de données simples comme INTEGER, DOUBLE, VARCHAR et des types de données complexes comme MAPS, ARRAY et STRUCT.  

Q : Est-il possible d'exécuter n'importe quelle requête Hive sur Athena ?

Amazon Athena utilise Hive uniquement pour le Langage de définition de données (DDL) et pour la création/modification et suppression de tables et/ou de partitions. Pour obtenir la liste complète des instructions prises en charge, cliquez ici. Athena utilise Presto lors de l'exécution de requêtes SQL sur Amazon S3. Vous pouvez exécuter des instructions SQL SELECT compatibles avec ANSI pour interroger vos données dans Amazon S3.

A : Qu'est-ce qu'un SerDe ?

SerDe est l'acronyme de Sérialiseur/Désérialiseur. Il s'agit de bibliothèques qui indiquent à Hive comment interpréter les formats de données. Les instructions DLL Hive exigent la spécification d'un SerDe, afin d'indiquer au système comment interpréter les données que vous désignez. Amazon Athena utilise des SerDe pour interpréter les données lues à partir d'Amazon S3. Le concept de SerDe d'Athena est identique à celui utilisé dans Hive. Amazon Athena prend en charge les SerDe suivants :

  1. Journaux web Apache : « org.apache.hadoop.hive.serde2.RegexSerDe »
  2. CSV : « org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe »
  3. TSV : « org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe »
  4. Délimiteurs personnalisés : « org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe »
  5. Parquet : « org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe »
  6. Orc : « org.apache.hadoop.hive.ql.io.orc.OrcSerde »
  7. JSON : « org.apache.hive.hcatalog.data.JsonSerDe » OU org.openx.data.jsonserde.JsonSerDe

Q : Puis-je ajouter mon propre SerDe (Sérialiseur/Désérialiseur) à Amazon Athena ?

Il n'est pas possible d'ajouter votre propre SerDe à Amazon Athena pour l'instant. Vos commentaires nous sont précieux, aussi si vous souhaitez suggérer l'ajout d'autres SerDe, contactez l'équipe Athena à l'adresse Athena-feedback@amazon.com

Q : J'ai créé des fichiers Parquet/ORC à l'aide de Spark/Hive. Est-il possible d'exécuter des requêtes sur ces fichiers via Athena ?

Oui, les fichiers Parquet et ORC créés via Spark peuvent être lus dans Athena.

Q : J'utilise des données provenant de Kinesis Firehose. Comment puis-je exécuter des requêtes sur ces données à l'aide d'Athena ?

Si les données Kinesis Firehose sont stockées dans Amazon S3, vous pouvez les interroger à l'aide d'Amazon Athena. Il vous suffit de créer un schéma pour les données dans Athena et de commencer l'interrogation. Nous vous recommandons de répartir les données dans des partitions afin d'optimiser les performances. Il est possible d'ajouter des partitions créées par Kinesis Firehose à l'aide d'instructions DDL ALTER TABLE. En savoir plus sur les partitions.

Q : Amazon Athena prend-il en charge le partitionnement des données ?

Oui. Amazon Athena vous permet de partitionner vos données sur n'importe quelle colonne. Les partitions permettent de limiter les données analysées par chaque requête, ce qui optimise les performances et réduit les coûts. Pour spécifier le schéma de partionnement, utilisez la clause PARTITIONED BY dans l'instruction CREATE TABLE. En savoir plus sur le partitionnement de données.

Q : Comment puis-je ajouter de nouvelles données à une table existante dans Amazon Athena ?

Si vos données sont réparties dans des partitions, vous devez exécuter une requête de métadonnées (ALTER TABLE ADD PARTITION) pour ajouter la partition à Athena lorsque les nouvelles données sont disponibles dans Amazon S3. Si vos données ne sont pas partitionnées, il vous suffit d'ajouter les nouvelles données (ou les nouveaux fichiers) au préfixe existant pour que celles-ci soient automatiquement ajoutées à Athena. En savoir plus sur le partitionnement de données.

Q : J'ai déjà des pétoctets de données de journaux dans Amazon S3. Puis-je utiliser Amazon Athena pour les interroger ?

Oui, Amazon Athena vous permet d'exécuter facilement des requêtes SQL standard sur vos données de journaux existantes. Athena interroge les données directement à partir d'Amazon S3 et il n'est donc pas nécessaire de les déplacer ou les charger. Définissez simplement votre schéma à l'aide d'instructions DDL, puis commencez immédiatement l'interrogation des données.

Q : Quels sont les types de requêtes pris en charge par Amazon Athena ?

Amazon Athena prend en charge les requêtes SQL ANSI. Amazon Athena utilise Presto, un moteur SQL distribué, en mémoire et de format open source, et il peut gérer des analyses complexes, y compris des jointures de grande taille, des fonctions de fenêtrage et des tables.

Q : Est-il possible d'utiliser Amazon QuickSight avec Amazon Athena ?

Oui. Amazon Athena s'intègre à Amazon QuickSight, ce qui vous permet d'afficher facilement les données stockées dans Amazon S3.

Q : Athena prend-il en charge d'autres outils décisionnels et clients SQL ?

Oui. Amazon Athena inclut un pilote JDBC que vous pouvez utiliser avec d'autres outils d'aide à la décision et clients SQL. En savoir plus sur l'utilisation d'un pilote JDBC avec Athena.

Q : Athena prend-il en charge les fonctions définies par l'utilisateur (UDF) ?

Athena ne prend pas en charge les fonctions définies par l'utilisateur personnalisées pour l'instant. Si vous souhaitez la prise en charge de fonctions définies par l'utilisateur personnalisées, adressez-nous un e-mail à l'adresse athena-feedback@amazon.com afin de nous faire part de vos besoins.

Q : Comment accéder aux fonctions prises en charge par Amazon Athena ?

Cliquez ici pour en savoir plus sur les fonctions prises en charge par Amazon Athena.

Q : Comment puis-je améliorer les performances de mes requêtes ?

Vous pouvez améliorer les performances d'une requête en compressant, partitionnant ou convertissant vos données à des formats en colonnes. Amazon Athena prend en charge des formats de données en colonnes open source tels qu'Apache Parquet et Apache ORC. La conversion des données dans un format en colonnes compressé permet de réduire vos coûts et d'optimiser les performances des requêtes, car Athena analyse moins de données dans S3 lors de l'exécution de la requête.

Q : Comment puis-je contrôler l'accès à mes données ?

Amazon Athena vous permet de contrôler l'accès à vos données à l'aide de stratégies AWS IAM (Identity and Access Management), de listes de contrôle d'accès (ACL) et de stratégies de compartiment Amazon S3. A l'aide des stratégies IAM, vous pouvez accorder aux utilisateurs IAM un contrôle IAM précis de vos compartiments S3. En contrôlant l'accès aux données dans S3, vous pouvez empêcher les utilisateurs de les interroger à l'aide d'Athena.

Athena peut-elle consulter des donnée chiffrées dans Amazon S3 ?

Oui, vous pouvez consulter des données qui sont chiffrées à l'aide d'un chiffrement côté serveur avec les clés de chiffrement gérées Amazon S3, d'un chiffrement côté serveur avec les clés gérées d'AWS Key Management Service (KMS) et d'un chiffrement côté client avec les clés gérées par KMS. Amazon Athena s'intègre également à KMS et vous propose une option de chiffrement de vos ensembles de résultats.

Q : Athena est-elle une solution hautement disponible ?

Oui. Amazon Athena est une solution hautement disponible qui exécute des requêtes à l'aide de ressources de calcul situées dans différentes installations, en acheminant correctement les requêtes lorsqu'une installation spécifique n'est pas disponible. Athena utilise Amazon S3 comme banque de données sous-jacente, ce qui garantit des données hautement disponibles et durables. Amazon S3 fournit une infrastructure durable pour stocker les données importantes et est conçu pour offrir une durabilité de 99,999999999 % des objets. Vos données sont stockées de manière redondante sur plusieurs installations et sur plusieurs appareils au sein de chaque installation.

Q : Est-il possible d'accorder un accès entre comptes au compartiment S3 d'un autre utilisateur ?

Oui, vous pouvez accorder un accès entre comptes à Amazon S3.

Q : Comment est facturé Amazon Athena ?

Amazon Athena est facturé par requête et les frais sont basés sur la quantité de données analysées par la requête. Vous pouvez stocker les données dans de nombreux formats sur Amazon S3. Les coûts sont moindres lorsque les données sont compressées, partitionnées ou converties à des formats de stockage en colonnes, car vous analysez moins de données. Lorsque les données sont converties à un format en colonnes, Athena lit uniquement les colonnes nécessaires pour traiter la requête. Pour plus d'informations, consultez la page de tarification d'Athena

Q : Pourquoi les frais sont-ils moins élevés lorsque j'utilise un format en colonnes ?

Amazon Athena vous facture en fonction de la quantité de données analysées pour chaque requête. Amazon Athena analyse moins de données lorsqu'elles sont compressées. Lorsque vos données sont converties à des formats en colonnes, Athena lit uniquement les colonnes nécessaires pour traiter les données. Le partitionnement des données permet également à Athena de réduire la quantité de données analysées. Cela vous permet à la fois de réduire vos coûts et d'améliorer les performances. Consultez l'exemple de tarification pour plus d'informations.

Q : Comment puis-je réduire mes coûts ?

Vous pouvez réduire le coût de vos requêtes de 30 % à 90 % et obtenir de meilleures performances en compressant ou partitionnant vos données, ou en les convertissant à des formats en colonnes. Chacune de ces opérations réduit la quantité de données qu'Amazon Athena doit analyser pour exécuter une requête. Amazon Athena prend en charge Apache Parquet et ORC, deux des formats en colonnes open source les plus utilisés. Vous pouvez vérifier la quantité de données analysées pour chaque requête sur la console Athena.  

Q : Les requêtes ayant échoué sont-elles facturées par Amazon Athena ?

Non, vous n'êtes pas facturé lorsque les requêtes échouent.

Q : Les requêtes annulées sont-elles facturées par Amazon Athena ?

Oui, si vous annulez manuellement une requête, vous êtes facturé pour la quantité de données analysées jusqu'à l'annulation de la requête.

Q : Quels sont les autres frais associé à Amazon Athena ?

Amazon Athena interroge les données directement à partir d'Amazon S3 et, par conséquent, vos données sources sont facturées aux tarifs S3. Lorsqu'Amazon Athena exécute une requête, les résultats sont stockés dans le compartiment S3 de votre choix et vous êtes facturé pour ces jeux de résultats conformément aux tarifs S3 standard. Nous vous recommandons de surveiller ces compartiments et d'utiliser des stratégies de cycle de vie pour contrôler la quantité de données conservées.

Q : Mon utilisation du catalogue de données AWS Glue sera-t-elle facturée ?

Oui, vous serez facturé séparément pour l'utilisation du catalogue de données AWS Glue. Cliquez ici pour en savoir plus sur la tarification du catalogue de données Glue.