Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Mise en route
Ce tutoriel vous guide dans l'utilisation d'Amazon Athena pour l'interrogation de données. Vous allez créer une table basée sur des exemples de données stockées dans Amazon Simple Storage Service, interroger la table et vérifier les résultats de la requête.
Le tutoriel utilise des ressources en temps réel. Les requêtes que vous exécutez vous sont donc facturées. Vous ne payez pas pour l'échantillon de données dans l'emplacement que ce tutoriel utilise, mais si vous téléchargez vos propres fichiers de données sur Simple Storage Service (Amazon S3), des frais s'appliquent.
Prérequis
-
Si vous ne l'avez pas encore fait, créez un Compte AWS.
-
En utilisant le même compte Région AWS (par exemple, US West (Oregon)) et le même compte que celui que vous utilisez pour Athena, suivez les étapes pour créer un compartiment dans Amazon S3 contenant les résultats de vos requêtes Athena. Vous allez configurer ce compartiment pour qu'il soit l'emplacement de sortie de votre requête.
Étape 1 : Créer une base de données
Vous devez d'abord créer une base de données dans Athena.
Pour créer une base de données Athena
Ouvrez la console Athena à l’adresse https://console.aws.amazon.com/athena/
. -
S'il s'agit de votre première visite sur la console Athena dans votre Région AWS actuelle, choisissez Explore the query editor (Découvrir l'éditeur de requêtes) pour ouvrir l'éditeur de requêtes. Sinon, Athena s'ouvre dans l'éditeur de requêtes.
-
Choisissez Modifier les paramètres pour configurer l'emplacement des résultats de la requête dans Amazon S3.
-
Pour Gestion des paramètres, procédez de l'une des manières suivantes :
-
Dans la zone de texte Location of query result (Emplacement des résultats de la requête), saisissez le chemin d'accès au compartiment que vous avez créé dans Simple Storage Service (Amazon S3) pour les résultats de votre requête. Préfixez le chemin avec
s3://
. -
Choisissez Parcourir S3, choisissez le compartiment Simple Storage Service (Amazon S3) que vous avez créé pour votre région actuelle, puis sélectionnez Choisir.
-
-
Choisissez Enregistrer.
-
Choisissez Editor (Éditeur) pour passer à l'éditeur de requête.
-
À droite du panneau de navigation, vous pouvez utiliser l'éditeur de requête Athena pour saisir et exécuter des requêtes et des instructions.
-
Pour créer une base de données nommée
mydatabase
, saisissez l'instruction CREATE DATABASE suivante.CREATE DATABASE mydatabase
-
Choisissez Run (Exécuter) ou appuyez sur
Ctrl+ENTER
. -
Dans la liste des Database (Base de données) à gauche, choisissez
mydatabase
pour en faire votre base de données actuelle.
Étape 2 : créer une table
Maintenant que vous avez une base de données, vous pouvez créer une table Athena pour celle-ci. Le tableau que vous créez sera basé sur des exemples de données de CloudFront journal Amazon dans l'emplacement s3://athena-examples-
où myregion
/cloudfront/plaintext/myregion
est votre emplacement actuel Région AWS.
Les données de l'exemple de journal sont au format TSV (valeurs séparées par des tabulations), ce qui signifie qu'un caractère de tabulation est utilisé comme délimiteur pour séparer les champs. Les données ressemblent à l'exemple suivant. Pour plus de lisibilité, les onglets de l'extrait ont été convertis en espaces et le champ final a été raccourci.
2014-07-05 20:00:09 DFW3 4260 10.0.0.15 GET eabcd12345678.cloudfront.net /test-image-1.jpeg 200 - Mozilla/5.0[...]
2014-07-05 20:00:09 DFW3 4252 10.0.0.15 GET eabcd12345678.cloudfront.net /test-image-2.jpeg 200 - Mozilla/5.0[...]
2014-07-05 20:00:10 AMS1 4261 10.0.0.15 GET eabcd12345678.cloudfront.net /test-image-3.jpeg 200 - Mozilla/5.0[...]
Pour permettre à Athéna de lire ces données, vous pouvez créer une CREATE
EXTERNAL TABLE
déclaration simple comme celle-ci. L'instruction qui crée la table définit les colonnes qui correspondent aux données, spécifie comment les données sont délimitées et spécifie l'emplacement Simple Storage Service (Amazon S3) qui contient les exemples de données. Notez qu'Athena prévoit d'analyser tous les fichiers d'un dossier, la LOCATION
clause indique l'emplacement du dossier Amazon S3, et non un fichier spécifique.
N'utilisez pas cet exemple pour l'instant car il comporte une limitation importante qui sera expliquée sous peu.
CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_logs (
`Date` DATE,
Time STRING,
Location STRING,
Bytes INT,
RequestIP STRING,
Method STRING,
Host STRING,
Uri STRING,
Status INT,
Referrer STRING,
ClientInfo STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
LOCATION 's3://athena-examples-my-region
/cloudfront/plaintext/';
L'exemple crée une table appelée cloudfront_logs
et spécifie un nom et un type de données pour chaque champ. Ces champs deviennent les colonnes de la table. Comme il date
s'agit d'un mot réservé, il est masqué par des caractères backtick (`). ROW FORMAT DELIMITED
signifie qu'Athena utilisera une bibliothèque par défaut appelée LazySimpleSerDepour effectuer le travail réel d'analyse des données. L'exemple spécifie également que les champs sont séparés par des tabulations (FIELDS TERMINATED BY '\t'
) et que chaque registre dans le fichier se termine par un saut de ligne (LINES TERMINATED BY '\n
). Enfin, la clause LOCATION
indique le chemin d'accès dans Simple Storage Service (Amazon S3) où se trouvent les données à lire.
Si vous avez vos propres données séparées par des tabulations ou des virgules, vous pouvez utiliser une CREATE
TABLE
déclaration comme dans l'exemple qui vient d'être présenté, à condition que vos champs ne contiennent pas d'informations imbriquées. Toutefois, si une colonne de ClientInfo
ce type contient des informations imbriquées qui utilisent un séparateur différent, une approche différente est requise.
Extraction de données depuis le terrain ClientInfo
En regardant les exemples de données, voici un exemple complet du champ final ClientInfo
:
Mozilla/5.0%20(Android;%20U;%20Windows%20NT%205.1;%20en-US;%20rv:1.9.0.9)%20Gecko/2009040821%20IE/3.0.9
Comme vous pouvez le voir, ce champ est à valeurs multiples. Comme l'exemple d'CREATE
TABLE
instruction qui vient d'être présenté spécifie les onglets comme délimiteurs de champs, il ne peut pas diviser les différents composants du ClientInfo
champ en colonnes distinctes. Une nouvelle CREATE TABLE
déclaration est donc requise.
Pour créer des colonnes à partir des valeurs contenues dans le ClientInfo
champ, vous pouvez utiliser une expression régulièreCREATE TABLE
, utilisez une syntaxe comme la suivante. Cette syntaxe indique à Athena d'utiliser la bibliothèque Régex SerDe et l'expression rationnelle que vous spécifiez.
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ("input.regex" = "
regular_expression
")
Les expressions rationnelles peuvent être utiles pour créer des tables à partir de données CSV ou TSV complexes, mais elles peuvent être difficiles à écrire et à gérer. Heureusement, il existe d'autres bibliothèques que vous pouvez utiliser pour des formats tels que JSON, Parquet et ORC. Pour plus d’informations, consultez SerDe et formats de données pris en charge.
Vous êtes maintenant prêt à créer la table dans l'éditeur de requête Athena. L'instruction CREATE
TABLE
et la regex sont fournies pour vous.
Pour créer une table dans Athena
-
Dans le panneau de navigation, pour Database (Base de données), assurez-vous que
mydatabase
est sélectionnée. -
Pour vous donner plus d'espace dans l'éditeur de requêtes, vous pouvez choisir l'icône de flèche pour réduire le panneau de navigation.
-
Pour créer un onglet pour une nouvelle requète, choisissez le signe plus (+) dans l'éditeur de requête. Vous pouvez ouvrir jusqu'à dix onglets de requête à la fois.
-
Pour fermer un ou plusieurs onglets de requête, choisissez la flèche à côté du signe plus. Pour fermer tous les onglets en même temps, choisissez la flèche, puis choisissez Close all tabs (Fermer tous les onglets).
-
Dans le volet de requête, saisissez l'instruction
CREATE EXTERNAL TABLE
suivante. La regex extrait les informations relatives au système d'exploitation, au navigateur et à la version du navigateur du champClientInfo
des données du journal.Note
L'expression régulière utilisée dans l'exemple suivant est conçue pour fonctionner avec les données de CloudFront journal d'échantillons accessibles au public sur le site
athena-examples
Amazon S3 et n'est fournie qu'à titre indicatif. Pour d'autres up-to-date expressions régulières qui interrogent à la fois des fichiers CloudFront journaux standard et en temps réel, consultez. Interrogation des journaux Amazon CloudFrontCREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_logs ( `Date` DATE, Time STRING, Location STRING, Bytes INT, RequestIP STRING, Method STRING, Host STRING, Uri STRING, Status INT, Referrer STRING, os STRING, Browser STRING, BrowserVersion STRING ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ( "input.regex" = "^(?!#)([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+[^\(]+[\(]([^\;]+).*\%20([^\/]+)[\/](.*)$" ) LOCATION 's3://athena-examples-
myregion
/cloudfront/plaintext/'; -
Dans l'
LOCATION
instruction, remplacezmyregion
par celle Région AWS que vous utilisez actuellement (par exemple,us-west-1
). -
Cliquez sur Run (Exécuter).
La table
cloudfront_logs
est créée et apparaît sous la liste Tables pour la base de donnéesmydatabase
.
Étape 3 : Interrogation des données
Maintenant que la table cloudfront_logs
a été créée dans Athena à partir des données de Simple Storage Service (Amazon S3), vous pouvez exécuter des requêtes SQL sur la table et en voir les résultats dans Athena. Pour plus d'informations sur l'utilisation de SQL dans Athena, voir Référence SQL pour Athena.
Pour exécuter une requête
-
Choisissez le signe plus (+) pour ouvrir un nouvel onglet de requête et saisissez l'instruction SQL suivante dans le volet de requête.
SELECT os, COUNT(*) count FROM cloudfront_logs WHERE date BETWEEN date '2014-07-05' AND date '2014-08-05' GROUP BY os
-
Cliquez sur Run (Exécuter).
Les résultats se présentent comme suit :
-
Pour enregistrer les résultats de la requête dans un fichier
.csv
, choisissez Download results (Télécharger les résultats). -
Pour afficher ou exécuter des requêtes précédentes, choisissez l'onglet Recent queries (Requêtes récentes).
-
Pour télécharger les résultats d'une requête précédente depuis l'onglet Recent queries (Requêtes récentes), sélectionnez la requête, puis choisissez Download results (Télécharger les résultats). Les requêtes sont conservées pendant 45 jours.
-
Pour télécharger une ou plusieurs chaînes de requêtes SQL récentes dans un fichier CSV, choisissez Download CSV (Télécharger CSV).
Pour plus d’informations, consultez Utilisation des résultats des requêtes, des requêtes récentes et des fichiers de sortie.
Enregistrement de vos requêtes
Vous pouvez enregistrer les requêtes que vous créez ou modifier dans l'éditeur de requêtes avec un nom. Athena stocke ces requêtes sur l'onglet Saved queries (Requêtes enregistrées). Vous pouvez utiliser l'onglet Saved queries (Requêtes enregistrées) pour rappeler, exécuter, renommer ou supprimer vos requêtes enregistrées. Pour plus d’informations, consultez Utilisation de requêtes enregistrées.
Raccourcis clavier et suggestions de saisie anticipée
L'éditeur de requêtes Athena fournit de nombreux raccourcis clavier pour des actions telles que l'exécution d'une requête, le formatage d'une requête, les opérations de ligne ainsi que la recherche et le remplacement. Pour plus d'informations et une liste complète des raccourcis, consultez Améliorer la productivité en utilisant les raccourcis clavier dans l'éditeur de requêtes Amazon Athena
L'éditeur de requêtes Athena prend en charge les suggestions de code de saisie anticipée pour une expérience de création de requêtes plus rapide. Pour vous aider à écrire des requêtes SQL avec une précision et une efficacité accrues, il propose les fonctionnalités suivantes :
-
Au fur et à mesure que vous tapez, des suggestions apparaissent en temps réel pour les mots-clés, les variables locales, les extraits et les éléments du catalogue.
-
Lorsque vous tapez le nom d'une base de données ou d'une table suivi d'un point, l'éditeur affiche facilement une liste de tables ou de colonnes parmi lesquelles choisir.
-
Lorsque vous passez le pointeur sur une suggestion d'extrait, un résumé présente un bref aperçu de la syntaxe et de l'utilisation de l'extrait.
-
Pour améliorer la lisibilité du code, les mots-clés et leurs règles de mise en surbrillance ont également été mis à jour pour s'aligner sur la dernière syntaxe de Trino et Hive.
Cette caractéristique est activée par défaut. Pour activer ou désactiver cette fonctionnalité, utilisez les préférences de l'éditeur de code (icône en forme de roue dentée) en bas à droite de la fenêtre de l'éditeur de requêtes.
Connexion à d'autres sources de données
Ce tutoriel a utilisé une source de données dans Simple Storage Service (Amazon S3) au format CSV. Pour plus d'informations sur l'utilisation d'Athena avec AWS Glue, consultez. Utilisation AWS Glue pour se connecter à des sources de données dans Amazon S3 Vous pouvez également connecter Athena à diverses sources de données en utilisant des pilotes ODBC et JDBC, des métastores Hive externes et des connecteurs de sources de données Athena. Pour plus d'informations, voir Connexion aux sources de données.