使用 Athena 查詢 - Amazon AppStream 2.0

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Athena 查詢

本節提供您可以在 Athena 中執行的SQL查詢,以分析 Amazon S3 儲存貯體中的用量報告資料。

若要建立所有工作階段在給定月份的合併報告,請執行下列查詢:

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

您也可以在查詢中的應用程式工作階段表格之間執行加入操作。例如,若要檢視在給定月份啟動每個應用程式的不同使用者,請執行以下查詢:

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

Athena 查詢結果會以 .csv 檔案的形式儲存在名為 aws-athena-query-results-account-id-without-hyphens-region-code 的帳戶中的 Amazon S3 儲存貯體內。為了能夠簡單地找到查詢結果,請選擇 Save as (另存新檔) 並為查詢提供名稱,然後才執行查詢。您也可以選擇 Athena 結果窗格中的下載圖示,將查詢結果下載為 .csv 檔案。

為了提高效能並降低成本,Athena 會使用分割來降低查詢所掃描的資料量。如需詳細資訊,請參閱分割資料。在 Amazon S3 儲存貯體中,用量報告會依年、月和日來分割。您可以在查詢中使用 year (年)month (月)day (日) 欄位作為條件,將查詢限縮在某個日期範圍的分割。例如,以下查詢只會擷取 2019 年 5 月 19 日當週的工作階段報告。

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

相反地,以下查詢雖會產生相同結果,但因為未限縮在任何分割,所以會擷取 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

如果工作階段跨越多天,則工作階段和應用程式記錄會分別出現在工作階段結束當日所對應的工作階段和應用程式報告內。因此,如果您需要尋找給定日期範圍內與所有作用中工作階段相關聯的記錄,請考慮按照您為機群所設定的工作階段最大長度來擴大查詢的分割集合。

例如,若要檢視給定機群 (該機群的工作階段持續時間上限為 100 小時) 在一個日曆月內的所有作用中工作階段,請執行以下查詢來將分割集合擴大 5 天。

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

建立 AWS Glue 爬蟲程式的 AWS CloudFormation 範本也會在您的 Athena 帳戶中建立並儲存數個範例查詢,供您用來分析用量資料。這些範例查詢包括下列項目:

  • 每月的彙總工作階段報告

  • 每個堆疊的平均工作階段長度

  • 每天的工作階段數量

  • 每位使用者的總串流時數

    注意

    每個工作階段的隨需用量費用會四捨五入到下一個小時。

  • 每個應用程式的不同使用者

若要使用上述任何查詢,請執行以下步驟。

  1. https://console.aws.amazon.com/athena/ 中開啟 Athena 主控台。

  2. 選擇 Saved Queries (儲存的查詢)。隨即應該會顯示此程序之前所記下的 5 個查詢。每個查詢的名稱以「」開頭AS2。例如,"AS2_users_per_app_curr_mo"。

  3. 若要執行查詢,請選擇查詢名稱而非名稱旁的選項。

  4. 查詢的文字便會出現在查詢窗格中。選擇 Run query (執行查詢)。

若要在個別 AWS CloudFormation 範本中檢視這些查詢,請參閱 Code Sample Catalog 中的 athena-sample-queries-appstream-usage-data_template.ymlAWS