Utilisation des requêtes Athena - Amazon AppStream 2.0

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.

Utilisation des requêtes Athena

Cette section fournit des SQL requêtes que vous pouvez exécuter dans Athena pour analyser les données des rapports d'utilisation dans votre compartiment Amazon S3.

Pour créer un rapport de synthèse de toutes les sessions au cours d'un mois donné, exécutez la requête suivante :

SELECT * FROM "appstream-usage"."sessions" WHERE year='four-digit-year' AND month='two-digit-month'

Vous pouvez également effectuer des opérations conjointes entre les tables applications et sessions dans votre requête. Par exemple, pour afficher les différents utilisateurs qui ont lancé chaque application au cours d'un mois donné, exécutez la requête suivante :

SELECT DISTINCT apps.application_name, sessions.user_id FROM "appstream-usage"."applications" apps INNER JOIN "appstream-usage"."sessions" sessions ON (apps.user_session_id = sessions.user_session_id AND sessions.year='four-digit-year' AND sessions.month='two-digit-month') WHERE apps.year='four-digit-year' AND apps.month='two-digit-month' ORDER BY 1, 2

Les résultats des requêtes Athena sont stockés sous forme de fichiers .csv dans un compartiment Amazon S3 de votre compte qui est nommé aws-athena-query-results-account-id-without-hyphens-region-code. Pour faciliter la localisation des résultats de la requête, choisissez Save as (Enregistrer sous) et donnez un nom à votre requête avant de l'exécuter. Vous pouvez également choisir l’icône de téléchargement dans le volet Résultats Athena pour télécharger les résultats de la requête sous la forme d’un fichier .csv.

Pour améliorer les performances et réduire les coûts, Athena utilise le partitionnement afin de réduire la quantité de données analysées dans les requêtes. Pour en savoir plus, consultez Partitionnement de données. Les rapports d’utilisation sont partitionnées dans vos compartiments Amazon S3 par année, par mois et par jour. Vous pouvez limiter vos requêtes à certaines partitions de plage de dates en utilisant les champs year (année), month (mois) et day (jour) comme conditions dans vos requêtes. Par exemple, la requête suivante intègre uniquement les rapports de sessions pour la semaine du 19 mai 2019.

SELECT SUBSTRING(session_start_time, 1, 10) AS report_date, COUNT(DISTINCT user_session_id) AS num_sessions FROM "appstream-usage"."sessions" WHERE year='2019' AND month='05' AND day BETWEEN '19' and '25' GROUP BY 1 ORDER BY 1

En revanche, la requête suivante produit des résultats identiques, mais n’étant pas limitée à une partition, elle intègre tous les rapports de sessions stockés dans votre compartiment Amazon S3.

SELECT SUBSTRING(session_start_time, 1, 10) AS report_date, COUNT(DISTINCT user_session_id) AS num_sessions FROM "appstream-usage"."sessions" WHERE session_end_time BETWEEN '2019-05-19' AND '2019-05-26' GROUP BY 1 ORDER BY 1

Si une session s’étend sur plus d’une journée, les enregistrements de session et d’application apparaissent respectivement dans les rapports de sessions et d’applications correspondant à la journée où la session s’est terminée. Pour cette raison, si vous avez besoin de trouver des enregistrements qui se rapportent à toutes les sessions qui étaient actives au cours d'une période donnée, pensez à étendre l'ensemble des partitions de votre requête par la durée maximale de session que vous avez configurée pour vos flottes.

Par exemple, pour afficher toutes les sessions actives pour une flotte donnée au cours d’un mois civil, où la durée maximale d’une session était de 100 heures, exécutez la requête suivante pour étendre de cinq jours l’ensemble de partitions défini.

SELECT * FROM "appstream-usage"."sessions" WHERE fleet_name = 'fleet_name' AND session_start_time BETWEEN '2019-05-01' AND '2019-06-01' AND year='2019' AND (month='05' OR (month='06' AND day<='05')) ORDER BY session_start_time

Le AWS CloudFormation modèle qui a créé les AWS Glue robots d'exploration a également créé et enregistré plusieurs exemples de requêtes dans votre compte Athena que vous pouvez utiliser pour analyser vos données d'utilisation. Ces exemples de requêtes incluent les suivantes :

  • Rapport de session mensuel regroupé

  • Durée moyenne de la session par pile

  • Nombre de sessions par jour

  • Total des heures de streaming par utilisateur

    Note

    Les frais d’utilisation à la demande sont arrondies à l’heure supérieure pour chaque session.

  • Différents utilisateurs par application

Pour utiliser l'une de ces requêtes, suivez les étapes ci-dessous.

  1. Ouvrez la console à l'adresse https://console.aws.amazon.com/athena/.

  2. Choisissez Saved Queries (Requêtes enregistrées). Les cinq requêtes notées avant cette procédure doivent s'afficher. Le nom de chaque requête commence par « »AS2. Par exemple, « AS2 _users_per_app_curr_mo ».

  3. Pour exécuter une requête, choisissez le nom de la requête plutôt que l'option située en regard du nom.

  4. Le texte de la requête s'affiche dans le volet de requête. Choisissez Exécuter la requête.

Pour afficher ces requêtes dans un AWS CloudFormation modèle distinct, consultez athena-sample-queries-appstream-usage-data_template.yml dans le catalogue d'exemples de code.AWS