Utilizzo delle query di Athena - Amazon AppStream 2.0

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo delle query di Athena

Questa sezione fornisce SQL le query che puoi eseguire in Athena per analizzare i dati dei report di utilizzo nel tuo bucket Amazon S3.

Per creare un report consolidato di tutte le sessioni in un determinato mese, eseguire la seguente query:

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

È inoltre possibile eseguire operazioni di unione tra le tabelle di applicazioni e di sessioni nella query. Ad esempio, per visualizzare i diversi utenti che hanno lanciato le singole applicazioni in un determinato mese, eseguire la seguente query:

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

I risultati delle query di Athena vengono archiviati come file.csv in un bucket Amazon S3 nell'account denominato aws-athena-query-results-account-id-without-hyphens-region-code. Per semplificare l'individuazione dei risultati delle query, selezionare Save as (Salva come) e fornire un nome per la query prima di eseguirla. Puoi anche scegliere l'icona di download nel riquadro Risultati di Athena per scaricare i risultati della query come file .csv.

Per migliorare le prestazioni e ridurre i costi, Athena usa il partizionamento per ridurre la quantità di dati scansionati nelle query. Per ulteriori informazioni, consulta la pagina relativa al partizionamento di dati. I report sull'utilizzo sono partizionati nel bucket Amazon S3 per anno, mese e giorno. È possibile limitare le query a determinate partizioni di intervalli di date utilizzando i campi year, month e day come condizioni nella query. Ad esempio, la seguente query è in grado di acquisire solo i report delle sessioni per la settimana del 19 maggio 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

Al contrario, la query seguente produce risultati identici ma, poiché non è limitata a nessuna partizione, è in grado di acquisire tutti i report sulle sessioni archiviati nel bucket 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

Se una sessione copre più di un giorno, i record di sessione e delle applicazioni appaiono rispettivamente, nei report delle sessioni e delle applicazioni corrispondenti al giorno in cui termina la sessione. Per questo motivo, se è necessario trovare record che riguardano tutte le sessioni attive durante un determinato intervallo di date, considerare di espandere il set della partizione in base alla durata massima della sessione che è stata configurata per i parchi istanza.

Ad esempio, per visualizzare tutte le sessioni attive per un determinato parco istanze durante un mese di calendario, dove il parco istanze aveva una durata massima di sessione pari a 100 ore, eseguire la seguente query per espandere di cinque giorni la propria partizione.

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

Il AWS CloudFormation modello che ha creato AWS Glue i crawler ha inoltre creato e salvato diverse query di esempio nel tuo account Athena che puoi utilizzare per analizzare i tuoi dati di utilizzo. Queste query di esempio includono:

  • Report di sessione mensili aggregati

  • Lunghezza di sessione media per stack

  • Numero di sessioni al giorno

  • Ore totali di streaming per utente

    Nota

    I costi di utilizzo on demand vengono arrotondati per eccesso all'ora successiva per ogni sessione.

  • Utenti distinti per app

Per utilizzare una di queste query, eseguire la procedura seguente.

  1. Apri la console Athena all'indirizzo https://console.aws.amazon.com/athena/.

  2. Scegliere Saved Queries (Query salvate). Dovrebbero essere visualizzate le cinque query sopra citate. Il nome di ogni query inizia con ".» AS2 Ad esempio, "AS2_users_per_app_curr_mo».

  3. Per eseguire una query, scegliere il nome della query anziché l'opzione accanto al nome.

  4. Il testo della query viene visualizzato nell'apposito riquadro. Scegli Esegui query.

Per visualizzare queste query in un modello separato, consulta -usage-data_template.yml nel Code Sample Catalog. AWS CloudFormation athena-sample-queries-appstream AWS